From 5cb1cfa4e8a1c130c53d51b7ed9f46eac70d2ddb Mon Sep 17 00:00:00 2001 From: APickledWalrus Date: Tue, 31 Aug 2021 05:14:50 -0400 Subject: [PATCH] Update Docs Website (#4310) --- .DS_Store | Bin 6148 -> 0 bytes assets/icon.png | Bin 0 -> 14704 bytes classes.html | 2 +- conditions.html | 2 +- css/highlightjs.min.css | 2 + css/styles.css | 705 +++- docs.json | 2025 +++++------ effects.html | 2 +- events.html | 2 +- expressions.html | 2 +- functions.html | 2 +- index.html | 23 +- js/highlight.js | 1359 +++++++ js/highlight.js.LICENSE | 11 + js/main.js | 255 ++ old/classes.html | 1781 --------- old/conditions.html | 1789 --------- old/css/styles.css | 172 - old/docs.json | 5792 ----------------------------- old/effects.html | 1989 ---------- old/events.html | 4289 ---------------------- old/expressions.html | 7609 --------------------------------------- old/functions.html | 1079 ------ old/index.html | 61 - old/text.html | 237 -- text.html | 3 +- tutorials.html | 1 + 27 files changed, 3216 insertions(+), 25978 deletions(-) delete mode 100644 .DS_Store create mode 100644 assets/icon.png create mode 100644 css/highlightjs.min.css create mode 100644 js/highlight.js create mode 100644 js/highlight.js.LICENSE create mode 100644 js/main.js delete mode 100644 old/classes.html delete mode 100644 old/conditions.html delete mode 100644 old/css/styles.css delete mode 100644 old/docs.json delete mode 100644 old/effects.html delete mode 100644 old/events.html delete mode 100644 old/expressions.html delete mode 100644 old/functions.html delete mode 100644 old/index.html delete mode 100644 old/text.html create mode 100644 tutorials.html diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0{Iwm29~K_M;YiZd~@!8kFSVl1reWLOs}Ygw7C&@!w@5jB1_+)a$7m9o17 z=B~TCj+wiSnFN|uPL^5PRT2c)Vw_BvU2U;;j*_l2tow2$;b-#4e5}m-L!4}6SZ|OQ zWWKMa$$Zn^0mCec;O8~t=NDxblRyZF3X6#d@h}VW3kvY@3-Sqw@Cpb>iU>*y2r>Wl z#R{uApv@(<6_oy33x1PfwRCdAN%HaG@puGY2x0GF!6zUgAwiZQD98&VcpcsBoJ?GK z?HsTCLxKXv(agaL=VWDX$4r)JVruW~B*O}t{`m^FxWC2PIsRoPFc_b!364(y!B2jr ze+*Pp`_G5k+WtM-(Miz-R{2Zce^;=hjvEfcr;Ty6cXlwtD7s+moUZ(1F`T8nlf9#* z{ePg_-;e)|hG?_D7sNR`VE4^~Hsix!F}5Jv5ylGa>xYxP>3}hDvUkw2x5xftqcs1q zBD0_%LWr3YX=R7D$2(plYxLIyjDm?1MuwHVYrOozyn+%s0%GJ{6BOa*7n0=X|8uAs z_yO9)$>hH`*dA?V?)Kjqs-`A++s@I+#Lf(JTS0~ultNfpp(TZd1O&u{O+|SHg~bJV zMMZ=~c_k!7#d!rJ1SJH;1Vl{*g@yL@g82&eX3k_wkmvvDwrG1Zkny)QCD9mRevFs| zKd+#oTlnff>6e^1Xp#o{e7AoM@k{6B{|+M7G!O&l;cEWpzLrE~H9N6I^zxcuj;|Mxcj|DfuB znbpkF#LfZ(fs>Dw{4#vx5cB7z@cr-m_0Rp*!MHl9nz&&c9RGTMc@v9&TH>GM_Q$B3 z*n(d;+Wf1->^~q&*?;gaR{VG8s#)1#%p6S2otQNp>@6HjY;CRVESS|y&=_V#6GylI zK=6Mx>+je7Q+d9BF8yy_Z{H&S5`_O@B#7+fAOB7%@XOyx31bHab%2z^G&DIyK_Phm zw!#e^*ZBECd+c3g;@+ZA?ff0?L)pYH+&OvURyVsJM#b@}snAfOGS2&k-%v{Vplz8t zC$7!NAA3Yp{>)=deSs#*WSY@A>FZ}yq9qlmEOkyi3e-M;yux)O=fIJI}f|=P^oQO?Nu0g4Fch+@g&D^L%?UW-mg@t`{#=E2#``Vq=p=yta zh=_7SJH=r{)E$XE=fjUb;D_9<(op6Y*CvX}-jkP2YMWZh%D#`N*O&M6SiuOsn4X?~ zDP|w-m%}yfB$=QtC3ocU2iyJ<+i!1^3ko`BSGagintz^JO4hVYy@=rEWeBDvX1vnm z9H{Z?FPY~?=9O)8^0m4X3QMqkg=USXYKQYnxPH!l4!eSoo1DVv-9sW{X1KEcz!{%^ zG2MhN4BVM4MuYf%FE6hT4{&S5!8g+9ZO~|i&d0+eOB+uD0(6mDUVdA&YHDi1p`lkJ zZg>0Z1YlbUk;A3-!&?ir8lhB^QBCO0%}pI-fniEYiqa{C)5IX~#ysO%@71}!Q6p@` zo6hOPL`D_`4-XIVOQJb+w7NQ+XC);i$y1&w)O8i<)_El#_peJ;iD`|ONby)3J;)x> zgch{YyXWCiiP6g<_|9IEa#3AdkQZhUS^vf{Fom=)Fj95-a`f?sn*paTY>T`%4Gs=2 zA2)r=F62N{OdrY=8(`Zn+`;D$ZxbG@;SM2{n&Cyb61q z(LlMThbih)W}|(kFeA|ul-fDn)6-KQKz$Kcc|5xL_dJ)RHZfsg^fMKP>BR zH4}UQHD7Q)M_nnDa*e6LwlX(2_{f(0XQQ}+0)cM-S4t;;T2uSWSFBy*y)?2b_W1GR z<+ptIG&D5WXp`xNT#q;v!^@tzs-BVe+JzF&;>UURc$hL9V`w%)L8ZhtKt4G$^IEt6 zgWslyx{a=q-wGerHbs3&{5rDPVcek{C+@jH!oUDU`u0Bu%*YHB^Bvi4=OG6bJG zbt)_Gpsx9Kq=%1>Pr}L9=d)*VZRSO`wzm37*a|gi#!v-TLw2i^hbq2L+zr=3CSTuq zBGptQkL{Pm{h-*edvZ5j-D>A@0Z(>irGfJ~>n^J@y5s(jk5XHEbyZw|=Y$wOn;lJ? zq_*DveghVPPHnKS#7B$`B~6sh%%v zhNqXnQHkE&-Azm5=+@29!H;;uE9F__Um&4i@r19NT_tv4{BC5~MO<3u>;DTr1ufw z-<6bg=77h*cAvt<}Vg;Fb1jOun^c9zQT;;z4#+d`dq2P?m) zbXcmW1kG?6zCqNXT1hz-$DbM^@Z+CPck8}72+w&5Gjnq~DF4bX#j+$>FMa1@>)ib% zx0IB0kiJYE)!7L*x&oW2@%<&mL?vMjV`HYJrSd=`YX0QwduZ>nPAoooczaT8pl_VE z0$+TU_Sg|EZb9jR^t7~hcHyyH3F@ICA+U$6FI#q3OKWve4PO;gIwU!lB>HTR zG3mzq{^e)9R-Pv3^6Ki$7FLH)SW!`-gB&s92=I_i>h-eYFM8;erLQk{1L6`DHFb7g zUAO9~HG@*SOvC}l5n5e;Y=6(@F?TrUhKxdD5%oKD{wK0j-b7M7WX0n|h6XWMpJ=JqD5_94Dvb_9W83iKIC1&$Gam z4VOFKaz1wA+;M-|^&gKFTNutz9zN*%JGORwX#?~|mEmr5+Vcdj>3^-rmZ3i>__PA| zX|>$A+(FU#*isRXji;yQg9i^JmVDi+hoYmS6O6)Dx zu=~j&louAq#>U*KBon0Y>dwcWbb==5gQlIOD}7&#?Ed(0sGGf+oiQ|jIgEkwFzqux zrKum&PWrr(u)^bsJfihg<)etX%Wxt_hK8_r2J_63gJwhK)1Lo_1Qd^BU&-_ z%{aX6MSh0hp4|_f-nBk(1Y$gqs7F>xw{ES>FPPFeOEjOv_ii@uc_)v1?ReLoUt&U4 zxoSBdQ+g2>_Z4rnzPsy9mh&EmpU?E-r`P#*^4Q^nL?&&O^v=6??`CE5D}YzwNmZ+> zE<_sxj=E|WNHu9Czk{LSqhgWf**2fuq8Zwg58;rg?H>>#@gB;5^(3t8J`sh~iD9m& ztV9iMc<*kzb+gAlAg3mBK!zAXV4fkJCKeaj4N7*iQ-(HY&F!f%Fkn7+Gp3$`IygyG~!zVwttc(OeMvh?0mYn%6dbx6J5th1asnW zZGOe!ouB<=XHid-Zeq4}2Gz#0t`1eL4S9ek5X6Q(Qz{O(fIrC!3Tkgjl?KE7)+lb| zKxhAtMc07=*Ytj`g5`N@coE(BZi-Wf>IaK^wI&?O`%CS!^G59rhvxGt4ky4GjKNAa ztIxaK%^s9hmQN9vr#p#ORh3m1pLDD5+ojnfA!8zHaVj=Po>bD*6^ogqbxwD5Xm#su zM>UQ;bR63msSn6fX}_MV+5V0ka-vqlXAa&|aC9uPVPfp>?OofP&97wB?eFi$&wo#? z2>impz@QWJ%Gazh#Oix@EAz}9A)x_d?+pyuZE2se(H;{Uue@meKAfC^OHK=w&Ztv` z1~$({KiqqG=9$8$PoH#<2Z90H00!vRlo$LA6`NN?0z?N%C^A66R)Nz?Ij2HRSNyllUS={y2-M-9Sc# z9|nXpp|vSHhKB6)?wOfgq5JJ7_~a3-D1K40E*QNySzJnN1SuM0+gFGoMDr4B+s|;{ z=p-M~&&*l0pI~1`V`{fk4~!7s+8Wq}v`zJwJ5E(D)KoqkQ;J)1mfv@Az#Jc8G)F)s zQAVh!X~IF>QI`Is9iX-PCsg^>s|+c+X`8!S3nKH@3$wFhZ*?ZF@)=cWqUw)tjz?&q zDSHm3D-O4}U+-;^M+?5_>ABafOV52i$ZAup>Ex3D4;dd1h%EqP`vI#?zO;8RGSre` zV&vvMdz|XzNkAESkTv9=%6P24>9p$B<>WYOc5IW@Z|nH6Baf$A6ULP961H(uCk!9G z!sD@HcAm|A1J&v$Zx$yXd#& zum(4ArA3P4s$-ZF)UrlV;>kqWf1@=liYdUVbdhX>C>S)_vgZS4ktkzO(!6*)vVf zHx)EOO&rqIzs$uQ#wlYOEq!r&+@Xy^{QTGHwvQLsN}WB95xfBCvK*qH9_LvAG#jUh za$moGb(sGy68DRnC5BL3QbL*&9qcRdn(4Z>zktWJ+F?0<{^!bUKmCo5g(;(PI8Ens z_oLB*P2z!Dr-@N|(INr@9mB)<6*Pyy$|MvXkU+d&`K1wASpCeYfU8%pmiK1Pe8wO8 zXeyBB=v=hvwf+7zr2cGVexiiqlg1B7En$ZFnHlZ-6roJ_IlxN=1U@tf5funtH>!;6 z#V^&skz);eP*$vOSv!k}AzT*6U3Wg0F}L9E;i236DgtTjn1TzUN1x55`9_iu}1ViL09JYz$&u2Q>hGjT4=tUYQzWw z5}|@Du?4K+-_h%TmxROBRR_ji>9?g^I~Uo6wi_sWIQEGuZt2A7LRyl+hakpje2|MYd+-IY?|{id{SGw7F`ml zpN{!7kqb~1R#Zwx#%pP^1-!B15;6lL{F9bga9=e)?K*4NTOJkXb1NY@{AstQmc8w^ zJyi`2n`O1Uil(Nf?|yZgFdemzNiXLV+^^ zPz?=TTU+ZLp(;r7-prh#HEdj1n-%H1e(ToJ&Y}!O0*d;DYFeJVy>+K+Z^i`UsQ`bP z0BWY5pAb>TL4)k-VhQS4RV<$n>LO^bZEZftBUV|@7)&4?XkesBNRuY%yS>gkZ%pgNrijQ$J67-kg} z-OYCtNn6o;gcA#H94p|NU0)m%oLI3XB+2<0IUhqzEV_EHRSsw7nVxniH#9IXNY>Ou zDSNRD1he1u1{mt#P*_`QoZ>5fErvioPr79~%rxybkBlX9k8T*L_*HHMriXoF?o_}^#fh$xdEhXz@?M9~5S`)pw#n^DhbjO38d&SLlm@oVEiFaHglY#ij>Yg9 zlT#-1z-$Oc@64Gq`pXTD#ajd0-g^L7b&&<)9hQ-^udE;A@^3MQT0D4gJ&1dz?2D-# z?A&+M1?OKsZpij9z-%P22wO`#)18o)$VP;w@8xw=oV z$C4qheCBoLACn(+B`xSOa&y)4xv%)sz>c<1ofy1ujwnwlHWf)zmk>ZY%H;W~!cR}e zb6wNFVlgC@tS9v(@EVbANn?v&Uj}P<7IVuAE{bBIPa$AsZj*TERt~`?I<_ zIzDXl-QnjQF!tGT1_(6vDfnWRO2(`5ay{o`8IN${bEJq~*xkI+(wHENtk!opybob8 zVWh^YlcSscmE>|<`%P2*(5MIcWggW=F-(0WwnC-juiMiM&gS=K_hN)-JKc2>tRRek zD|bu>V|+lZ1jz@?nd(KS4%%ivvXaSa0l>ZYo5?eUM?IYPbny66BMpiu)-XyRLUsc@ z@+tK|#8f&>htF_55S-^&#_{LgDyF9=8s+!y*hULkw3cN}?ErU!L>(ngsnU!RFC@EE_9{1xcFKdUQDdt8S7l32KBT{Y3?2Hk4pfX&XWZgBGN^N zgR z^I-sQjbnY4c;I8tUrkUiEh+IPHC^TQ3W_-2gz$5nFYeWed2q^0%HnXRJ5OR0n1B6O zJ+*Gk+p|EEY44&Q_Ai0UzHn2AR5&JxGo3;2C)! zD1oyAtoFwrf9OoawoWYpe+1lAMf`|EX7e4&fO^TH60X=DvoLScXv2wak(?Y=j?VAj zvnm3)erGD8a$gp^XOm`uFU1DlT2zr;y76xtq!S zBWDaj_hEv_nf=rQY>+Ro&~HZ%`d;Te>#&qMa3Yd05xAxO=);4XH|q&}wbBOda^BnG zFI%juN9?OtqGxEE*{&`>1%P!zFHnc8``fo~9UaLPG^Ijvfc_v)=vx>nPCI>{Knfu4 z^3%Vm_nP>8OeVbP&5V5X>-_wMm0siCcaE9nCl?%Jw!M9X8FW#_V)QRw9z3}GUj)UNAgx~TkgC%l>2EL%4R%ITUvVhtx6AZ>sK{(C`)fzeQHnH zVW@o_yLG!Rdx1nCQ0UqsGb(X(-&?u#u7)tme0h_32acv!EuHGDRvu&h;KJJ4%1UP5 z!E-<(pYs}`nEbKgzT##6=7D~w;0iq`LntiEZStpIyqBGsd3$!@w@&x7*`1)ile2Tj z29c}a{vU2Jk+XAiU7LX;uF_=g3=)hy8Bm(Ky2g6qpFQCJ*3$#W6^iMUt&O|F3>bZC zt*H^>qAQ@f%mwD~+vMye5HdsSd;R+GF&VbB6&hzK5+Ex|0r;=U?j9c22>2uWr_{cK zK7zH^cf3icWB|G|tqQ(b?K^LJO6H-E%*>N#uR~FiP?w?HtE>cIf4s_Q;m<6@lc|%H z$d|}6uovi=U;ThzTv}QcS!q-J?%mJb!=8R4(({Vv7`^)XdbUcV@87>WE#$qk-RjB&W+UTTo!31e z#WQv8teJh+eci!%B|~!Gxqh+$YOjdvd5lX6>YY_%qpcXuouXZItpd=F?u{H?5c?6N ziR^TzAugQ=sPD}~r5vk81NRPC$zo#$ap}}WT<(n>)!7?md{2iLV$@vSN9eMvt9Jlh zN~7MN)YtgQ0;B+Rb=>I<*$3!YE}cr(zLv}6ic$d~SnM1?4yOkCn`;nQ4G~Cc@+xmRb|d^j%nK%V*H6zcCS4m1v3q1~3sm|#?Ig{ZpA^L5C2K6q zkPsiw)-y}yyAA}nBVwdraM=Ff@kLjCeSO+zAE90`Er>m^6JAun!yTrqs;WwM?qhdL z0j)dN3Tjh^siz0W_lyDW7~8b4hIexM{OrUdM>jC|HJoUxwzm#Ka7a1g5UFHzj(hU(6!ATzz5JX9rMTZOa~1r-%S zjIlRN(xEFfTy*t>iu{O^u*6@%wJQND3L$k+3QzQ0=|<++b{Iq#d+%&Qp<1&s`7+I@ zE4B%(Z(soMs1_(RF%2OD&a*Ca-;z-gsjn9oADTgn0N=3Rqe@6j^xj^7DEd8Hv{oI*+dbJx%Ujg+1f* z%dq=NII(o`;>F$^J>bhKbhGbW=+r*|kUtLEEDdt%8X9c{zh=6#FETL1GtIt{Idz=| zy25OEj{leThpXRIP#~cL0<1r+{M>Nu@a#$!!lE48zYF9QbTt5=4lf{4>N2pCwR<}Y z{xsmNNE9KEfEJX0dY$=I1@i zl&3b+RPRmH=#!YsHqf@Q$)*_va7@si8$`0HlNMubeo=>%)UIwQ(I1wGW`N`JVnjS2$s-z zOrB#&y@vPAn4-xF%mc#U;&ghFi?ef7ZDQM0LP;*1HZDYF0`wt|vp|{(7rV+B3S<-| zOQM{QtgI~b(17P2^4^+HOH1SGv62SZI`g!`XdzG!iAF&z05X($Li zg6)l^a|WYe8(!nGH^Xn&8$D%xW_xm>8<&f!T&-Rk%Kpal1ufXw*(v`NiiX;i9)qIG zVUBzp!#bj+OB>rzA;Zy|jfAG5-Ea-GUCyw4++3NRm?fbN^RB*Zk@eobPuVdrFqgvx zzW}JG6c7@+VjREKT%DZ!!L1S0%&*ym{>a{9s1MfKI($&7)vn3B2&f}oV(GQB$JZ8y zV|dFTwup*~-jjCZGQvV>PilKIK$G9g?bFbQ2yMI)V_a;lyODFGDM`AFan4$I~u}eoeSc%(?5W&3>zRy9#)P z4NWfM&GPEjt9Fm*K1n$J)U2n57OPPW8E~C1^VzHM)Y|>YbH&FKnDWK%0OjP9+ab0E z_O62cjdx~{RB|qx%hTavxnlrFxPqs*w9juVx{)dH;)s6Sc03qtrg@Hy3BYtq^&uMQySX_U=FohBu5GMEbBc zFjW-g2l_-Z;TK1chHaNBGe(a@Ki}g*8rAee@m%A!WNuO1u%}b#3vGHPpY6qSvmE?nr?%3?1^oErjE6_xw)%rS=r@>r19J3 zXh+8-$b|kheb|zelq)fW-yVM$gmOTyXmYaUC4h&JGs;H!rBL+OFdp}Z>~X$1?U_t zofZ$;@T^g08^wMuFl*$hsT?>b|5TH6d@eB1<~f~IloU|kSWElw-M}G@}pnYPd?`E;oi;j<~%HCp0|~P@Y6ROVHqZTA+G?g}j}r%^t7=t#g>b zbAEPqmfIWUtt3zB=IXh(vnFOYpv)1mP_t#%6vvIY5ZXBGIu;zx4!zCs@D58S2p5pb zHb?}%yO}yoAKu<4Wkh60F*QQ}1nv=xdz|aF>Mz0Q&Ck!18qtE&o`pdR6DtJ&M+Q6U@g3wsO${%7yHlV(r(y zSykTww~E3<#^;L%+gae7ICM9ji04*?M|*7KJzr@qcoI(i4xJ>G^aJ)jsCN$gs533X zqwvk|=^9Cr^TbfO-EWyAU{TUG^V#F)7M7kcl@1W7&$*d)wYUE`E75o)+Ovl}{*Xal z@|)jgs_q*`EtxePMGnXt*M%3hhPzZ0rJf7&5ilm863wGL;~H$;rhY{m=vT#zCx%5y zUDP%lTAFGj7z_X2Bqrc5&$2kCl0(|?lTLS5++&#hHk7QePB1CpM< z)P;WDE6{=jsKFj_d#Z=c?W5Fin_CpMi|zM!O%gog?DZcWw3mC9eFUctVUi&q`gX$^KpJ8Q+|BcOZ%P5$L@AVW_S3jMYi&)CBJ^_LV+N?f1JB9p zY!f8=Q^leG&AYn@^bNT-{DNG+-uW)!=a&M7ouR!`EW^Nx+`rHY`VzH5XSN7gEwSF>X4801DeRT!)L#4kYrQ;_w z#CZtTSnTrFPJ<7v%l!9qp^bMlBOQa1s;(rz@o1y~{)C2=_Sy2v3aZ*&;i~7kFc{y$$L5Q72NeJZ!s*v;J_FJZL<7-zhsYH4z zrULFgx3@mmC&cm*I0?huSHaAnU^yKK>tqBjmX%oWkv)P#x%?HtnPB2Y3Z#0*_b@*8z-PGCA zQa>6XO>KJfcJlW&^U;FW?)Dev81HTNsvlydp}ZfB>0c!$f4Dv{<>%m=6ryyJdQFqF ztG5>q0T(CE(-`@>!_wLQZXu6KqEM?+$YBH<{(Sc6be$l%pJw&!-lCI%sNw{Zs9VgP z#SMo7f5S%rL#-EYdPYLV;w}h?inTpNS97FK95^8?kZ5ySncsM#d=zT{eUg0Kmw$FR zM9(cOBzZh=(~3VN__8H>s#5wPPfu4@q%zz1#2YfXDa}}F>j53HrZs44^_NUEwS4^O z$8XQ6OKGzGxE{JEoM++Gm)Mf8vQTPy%htq4k-KIH>OR2B&a*vD_K}Y5&|!<>ae;ew zqah7}XpS`POcFlKEA51^K^7uOTCc`o;*J|d6JO%o!1I^^xTZytJ2c^u_PTV)U8T9O zegObUip*s)(y5JghF&c<@(~hR$;wp3}LXw%b=vW*{0;gSUqa{ zS3!emfs{-OJS}(E0(X*%Xi)_`_nAc?$vB(T@uH=DyxGYUb$~!|Cfa|LZUA@ zO!7h4qh^#YdoD)W+99#MLL)zm@OUE2qEBM9tPc5X^$#Pg4^6z+zIE$XL$Zz)u*|Ya zdvw5t%D6PB_ahuWjJnfQbE>hg$YLU6>#L;V#JS@Zt?}1(k2G=rp%N{P zCmKR=2RG~Dkz7Vw+(-ZlXx%4Nsdt{>2~S_wel-=inR&u#^y9M^FJ7PpH@cC=kfQAY z)k3^~=)M_$MG0Zv?*dq(s&!|yA*k@;hr%2;>a~uJj*=2l2qAOdSn|DgA<{#;w850b zFkkL7C=o&BFHbIj0aZ9tWAb}vb;|6AYer{*jf4As5|?G&NNCQp;TH=5f+LOG6pcO( z4h_i)2^Bq0e36`-9F8jZCQ>$ly+|LdM7Od{;id`IREc?J?<~-+fJ_P>50$$Qmdry< zme2JtT9u9VgrPR$Nw^Wi5N!AD?Fd9P=a5wZzpaDU^mo_!H-5Z@GqqL^9ZvW<x+;Hl4LwMYD3u%nUQyHX>Ss&1l{a)ll!_l9-O+{IDzP@ z>euP%jczgw!RPl_t{JH^T5H3lMm&D4%8bIh*4W#`p*-I45?sauex}cE@7gtOZ=s1` z(PYhxnfbHnbxx9~fi;vvXW&vxOw?yO$X+m2UR0sEkei2~zs_K2S3)&6H)q&&M6y21 zQA}mxsTLb81iID(Jo(poL*^8Dr`NWibp@Cwuu*3MgItnL&RADr158fn41vpmlq}kr zkxNvN*RNc;;$Ya=@%1ZduCE9#S&ZI55en}N=^LH7M#o>Mp+vu-^Eo^{@~K{;o5A+n zX@RLCOkk9>!<%)riB9>Rd}F!BPPzC7E?M`~H*aVgsAqAEvs$F8u)Z&66sdb+=lcX5 zYb!ZDjP5A5rpSTm*5C#~YYCTyz?2m)$=4sc(MCww1xKCufPhFj^YraL!G>D#egv0< z@}yDDs5+;2V|fzq-JEUQxgyUV2fCKk$d4qMdyC23=cwmKE#|~SrS*5i;hKQEyE{ZY zxb5)0s%Ia+>_vmr+wEu9!##!Psx(x(V|+(W^%mN00qb$D7Hd#~ zg&Pyn!z-i-0$d@?UROm(ylX{d1wu3!7~uJ$j!@I48x+JHb3?_oO}&hb<+KYy)p+Wy zo?7xmN|>KHd892t3RxKBMw#zq!gsW{w`b?q zWK}4gxg_Jh47Wd|oPIucJd@-0Gx~;FQ;_EurU=?#rIuJe%trhaUo?N&q2y2TGSZD` z+at^aS~jHH)^Nfi)^w|vTBRCdg5}T7zlJt!($1U(RJ+zTHrx>=x&+|WTV9F*^V5n+a literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html index 521add9d6fb..ad9a75fa4a9 100644 --- a/classes.html +++ b/classes.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

Types

Attribute Type 🔗
Patterns:
  • generic max health, generic follow range, generic knockback resistance, generic movement speed, generic flying speed, generic attack damage, generic attack knockback, generic attack speed, generic armor, generic armor toughness, generic luck, horse jump strength, zombie spawn reinforcements
Since: 2.5
Represents the type of an attribute. Note that this type does not contain any numerical values.See attribute types for more info.
Examples:
Biome 🔗
Patterns:
  • Biome names; you can use F3 ingame
Since: 1.4.4
All possible biomes Minecraft uses to generate a world.
Examples:
biome at the player is desert
Block 🔗
Patterns:
Since: 1.0
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.
Examples:
Block Data 🔗
Patterns:
Since: 2.5
Block data is the detailed information about a block, referred to in Minecraft as BlockStates, allowing for the manipulation of different aspects of the block, including shape, waterlogging, direction the block is facing, and so much more. Information regarding each block's optional data can be found on Minecraft's Wiki. Find the block you're looking for and scroll down to 'Block States'. Different states must be separated by a semicolon (see examples). The 'minecraft:' namespace is optional, as well as are underscores.
Examples:
set block at player to campfire[lit=false]
set target block of player to oak stairs[facing=north;waterlogged=true]
set block at player to grass_block[snowy=true]
set loop-block to minecraft:chest[facing=north]
set block above player to oak_log[axis=y]
set target block of player to minecraft:oak_leaves[distance=2;persistent=false]
Boolean 🔗
Patterns:
  • true/yes/on or false/no/off
Since: 1.0
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.
Examples:
set {config.%player%.use mod} to false
Cat Type 🔗
Patterns:
  • tabby, black, red, siamese, british shorthair, calico, persian, ragdoll, white, jellie, all black
Since: 2.4
Represents the race/type of a cat entity.
Examples:
Chunk 🔗
Patterns:
Since: 2.0
A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world.
Examples:
Click Type 🔗
Patterns:
  • 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, swap offhand, unknown
Since: 2.2-dev16b, 2.2-dev35 (renamed to click type)
Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side.
Examples:
Colour 🔗
Patterns:
  • 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
Since:
Wool, dye and chat colours.
Examples:
color of the sheep is red or black
set the colour of the block to green
message "You're holding a <%color of tool%>%color of tool% wool block"
Command Sender 🔗
Patterns:
  • use <a href='expressions.html#LitConsole'>the console</a> for the console
  • see <a href='#player'>player</a> for players.
Since: 1.0
A player or the console.
Examples:
on command /pm:
    command sender is not the console
    chance of 10%
    give coal to the player
    message "You got a piece of coal for sending that PM!"
Damage Cause 🔗
Patterns:
  • 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, freeze
Since: 2.0
The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc. 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.
Examples:
Date 🔗
Patterns:
Since: 1.4
A date is a certain point in the real world's time which can currently only be obtained with now. See time and timespan for the other time types of Skript.
Examples:
set {_yesterday} to now
subtract a day from {_yesterday}
# now {_yesterday} represents the date 24 hours before now
Difficulty 🔗
Patterns:
  • peaceful, easy, medium, hard
Since: 2.3
The difficulty of a world.
Examples:
Direction 🔗
Patterns:
  • see <a href='../expressions.html#ExprDirection'>direction (expression)</a>
Since: 2.0
A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc. Locations and some blocks also have a direction, but without a length. Please note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments.
Examples:
set the block below the victim to a chest
loop blocks from the block infront of the player to the block 10 below the player:
    set the block behind the loop-block to water
Enchantment 🔗
Patterns:
  • 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, Soul Speed, Looting, Efficiency, Mending, Riptide, Quick Charge, Fortune, Loyalty, Channeling
Since: 1.4.6
An enchantment, e.g. 'sharpness' or 'fortune'. Unlike enchantment type this type has no level, but you usually don't need to use this type anyway.
Examples:
Enchantment Offer 🔗
Patterns:
Since: 2.5
The enchantmentoffer in an enchant prepare event.
Examples:
on enchant prepare:
    set enchant offer 1 to sharpness 1
    set the cost of enchant offer 1 to 10 levels
Enchantment Type 🔗
Patterns:
  • <code>&lt;enchantment&gt; [&lt;level&gt;]</code>
Since: 1.4.6
An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'.
Examples:
enchant the player's tool with sharpness 5
helmet is enchanted with waterbreathing
Entity 🔗
Patterns:
  • player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc.
Since: 1.0
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.
Examples:
entity is a zombie or creeper
player is an op
projectile is an arrow
shoot a fireball from the player
Entity Type 🔗
Patterns:
  • <i>Detailed usage will be added eventually</i>
Since: 1.3
The type of an entity, e.g. player, wolf, powered creeper, etc.
Examples:
victim is a cow
spawn a creeper
Entity Type with Amount 🔗
Patterns:
  • &lt;<a href='#number'>number</a>&gt; &lt;entity type&gt;
Since: 1.3
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.
Examples:
spawn 5 creepers behind the player
Experience 🔗
Patterns:
  • <code>[&lt;number&gt;] ([e]xp|experience [point[s]])</code>
Since: 2.0
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.
Examples:
give 10 xp to the player
Firework Effect 🔗
Patterns:
Since: 2.4
A configuration of effects that defines the firework when exploded which can be used in the launch firework effect. See the firework effect expression for detailed patterns.
Examples:
launch flickering trailing burst firework colored blue and green at player
launch trailing flickering star coloured purple, yellow, blue, green and red fading to pink at target entity
launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1
Firework Type 🔗
Patterns:
  • ball, large ball, star, burst, creeper
Since: 2.4
The type of a fireworkeffect.
Examples:
Game Mode 🔗
Patterns:
  • creative/survival/adventure/spectator
Since: 1.0
The game modes survival, creative, adventure and spectator.
Examples:
player's gamemode is survival
set the player argument's game mode to creative
Gamerule 🔗
Patterns:
  • doFireTick, maxCommandChainLength, fireDamage, reducedDebugInfo, disableElytraMovementCheck, announceAdvancements, drowningDamage, commandBlockOutput, forgiveDeadPlayers, doMobSpawning, maxEntityCramming, disableRaids, doWeatherCycle, doDaylightCycle, showDeathMessages, doTileDrops, universalAnger, playersSleepingPercentage, doInsomnia, doImmediateRespawn, naturalRegeneration, doMobLoot, fallDamage, keepInventory, doEntityDrops, doLimitedCrafting, mobGriefing, randomTickSpeed, spawnRadius, freezeDamage, doTraderSpawning, logAdminCommands, spectatorsGenerateChunks, sendCommandFeedback, doPatrolSpawning
Since: 2.5
A gamerule
Examples:
Gamerule Value 🔗
Patterns:
Since: 2.5
A wrapper for the value of a gamerule for a world.
Examples:
Gene 🔗
Patterns:
  • normal, lazy, worried, playful, brown, weak, aggressive
Since: 2.4
Represents a Panda's main or hidden gene. See genetics for more info.
Examples:
Heal Reason 🔗
Patterns:
  • peaceful regeneration, satiated, eating, end crystal, magic, magic regen, wither spawning, withering, unknown
Since: 2.5
The heal reason in a heal event.
Examples:
Inventory 🔗
Patterns:
Since: 1.0
An inventory of a player or block. Inventories have many effects and conditions regarding the items contained. 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).
Examples:
Inventory Action 🔗
Patterns:
  • 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
Since: 2.2-dev16
What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly.
Examples:
Inventory Slot 🔗
Patterns:
Since:
Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. 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). 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.
Examples:
set tool of player to dirt
delete helmet of the victim
set the colour of the player's tool to green
enchant the player's chestplate with projectile protection 5
Inventory Type 🔗
Patterns:
  • 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, smithing 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, composter inventory
Since: 2.2-dev32
Minecraft has several different inventory types with their own use cases.
Examples:
Item / Material 🔗
Patterns:
  • <code>[&lt;number&gt; [of]] &lt;alias&gt; [of &lt;enchantment&gt; &lt;level&gt;]</code>, Where &lt;alias&gt; must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')
Since: 1.0
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). You don't usually need this type except when you want to make a command that only accepts an exact item. Please note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments.
Examples:
set {_item} to type of the targeted block
{_item} is a torch
Item Type 🔗
Patterns:
  • <code>[&lt;number&gt; [of]] [all/every] &lt;alias&gt; [of &lt;enchantment&gt; [&lt;level&gt;] [,/and &lt;more enchantments...&gt;]]</code>
Since: 1.0
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. 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.
Examples:
give 4 torches to the player
add all slabs to the inventory of the block
player's tool is a diamond sword of sharpness
remove a pickaxes of fortune 4 from {stored items::*}
set {_item} to 10 of every upside-down stair
block is dirt or farmland
Living Entity 🔗
Patterns:
  • see <a href='#entity'>entity</a>, but ignore inanimate objects
Since: 1.0
A living entity, i.e. a mob or player, not inanimate entities like projectiles or dropped items.
Examples:
spawn 5 powered creepers
shoot a zombie from the creeper
Location 🔗
Patterns:
Since: 1.0
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.
Examples:
Metadata Holder 🔗
Patterns:
Since: 2.2-dev36
Something that can hold metadata (e.g. an entity or block)
Examples:
set metadata value "super cool" of player to true
Money 🔗
Patterns:
  • <code>&lt;number&gt; $</code> or <code>$ &lt;number&gt;</code>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'
Since: 2.0
A certain amount of money. Please note that this differs from numbers as it includes a currency symbol or name, but usually the two are interchangeable, e.g. you can both add 100$ to the player's balance and add 100 to the player's balance.
Examples:
add 10£ to the player's account
remove Fr. 9.95 from the player's money
set the victim's money to 0
increase the attacker's balance by the level of the victim * 100
Number 🔗
Patterns:
  • [-]###[.###]</code> (any amount of digits; very large numbers will be truncated though)
Since: 1.0
A number, e.g. 2.5, 3, or -9812454. Please note that many expressions only need integers, i.e. will discard any fractional parts of any numbers without producing an error.
Examples:
set the player's health to 5.5
set {_temp} to 2*{_temp} - 2.5
Object 🔗
Patterns:
Since: 1.0
The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions.
Examples:
Offline Player 🔗
Patterns:
Since:
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.
Examples:
Player 🔗
Patterns:
Since: 1.0
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 their inventory) on an offline player. 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.
Examples:
Potion Effect 🔗
Patterns:
  • speed of tier 1 for 10 seconds
Since: 2.5.2
A potion effect, including the potion effect type, tier and duration.
Examples:
Potion Effect Type 🔗
Patterns:
  • 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
Since:
A potion effect type, e.g. 'strength' or 'swiftness'.
Examples:
apply swiftness 5 to the player
apply potion of speed 2 to the player for 60 seconds
remove invisibility from the victim
Projectile 🔗
Patterns:
  • arrow, fireball, snowball, thrown potion, etc.
Since: 1.0
A projectile, e.g. an arrow, snowball or thrown potion.
Examples:
projectile is a snowball
shoot an arrow at speed 5 from the player
Region 🔗
Patterns:
  • "region name"
Since: 2.1
A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones. Please note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like "region name" in scripts may or may not work.
Examples:
Resource Pack State 🔗
Patterns:
  • successfully load, decline, download fail, accept
Since: 2.4
The state in a resource pack request response event.
Examples:
Server Icon 🔗
Patterns:
Since: 2.3
A server icon that was loaded using the load server icon effect.
Examples:
Sound Category 🔗
Patterns:
  • master category, music category, record category, weather category, block category, hostile category, neutral category, player category, ambient category, voice category
Since: 2.4
The category of a sound, they are used for sound options of Minecraft. See the play sound and stop sound effects.
Examples:
Spawn Reason 🔗
Patterns:
  • 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, explosion, raid, patrol, beehive, piglin zombification, command, customized, default
Since: 2.3
The spawn reason in a spawn event.
Examples:
Teleport Cause 🔗
Patterns:
  • ender pearl, command, plugin, nether portal, end portal, spectate, gateway, chorus, unknown
Since: 2.2-dev35
The teleport cause in a teleport event.
Examples:
Text 🔗
Patterns:
  • simple: "..."
  • quotes: "...""..."
  • expressions: "...%expression%..."
  • percent signs: "...%%..."
Since: 1.0
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). 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. Please read the article on Texts and Variable Names to learn more.
Examples:
broadcast "Hello World!"
message "Hello %player%"
message "The id of ""%type of tool%"" is %id of tool%."
Time 🔗
Patterns:
  • <code>##:##</code>
  • <code>##[:##][ ]am/pm</code>
Since: 1.0
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. See date and timespan for the other time types of Skript.
Examples:
at 20:00:
    time is 8 pm
    broadcast "It's %time%"
Timeperiod 🔗
Patterns:
  • <code>##:## - ##:##</code>
  • dusk/day/dawn/night
Since: 1.0
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. This type might be removed in the future as you can use 'time of world is between x and y' as a replacement.
Examples:
time in world is night
Timespan 🔗
Patterns:
  • <code>&lt;number&gt; [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] &lt;more...&gt;</code>]
  • <code>[###:]##:##[.####]</code> ([hours:]minutes:seconds[.milliseconds])
Since: 1.0
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'. See date and time for the other time types of Skript.
Examples:
every 5 minecraft days:
    wait a minecraft second and 5 ticks
every 10 mc days and 12 hours:
    halt for 12.7 irl minutes, 12 hours and 120.5 seconds
Tree Type 🔗
Patterns:
  • <code>[any] &lt;general tree/mushroom type&gt;</code>, e.g. tree/any jungle tree/etc.
  • <code>&lt;specific tree/mushroom species&gt;</code>, e.g. red mushroom/small jungle tree/big regular tree/etc.
Since:
A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect.
Examples:
grow any regular tree at the block
grow a huge red mushroom above the block
Type 🔗
Patterns:
  • See the type name patterns of all types - including this one
Since: 2.0
Represents a type, e.g. number, object, item type, location, block, world, entity type, etc. This is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player.
Examples:
{variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5
{variable} is a type # check whether the variable contains a type, e.g. number or player
{variable} is an object # will always succeed if the variable is set as everything is an object, even types.
disable PvP in the event-world
kill the loop-entity
Vector 🔗
Patterns:
  • vector(x, y, z)
Since: 2.2-dev23
Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities.
Examples:
Visual Effect 🔗
Patterns:
  • smoke, potion break, ender signal, mobspawner flames, arrow particles, jumping rabbit, 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, 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, hurt by explosion, explosion, large explosion, huge explosion, firework's spark, water bubble, water splash, water wake, suspended, void fog, critical hit, magical critical hit, smoke particle, large smoke, spell, spell, potion swirl, transparent potion swirl, witch spell, water drip, lava drip, angry villager, happy villager, small smoke, note, portal, flying glyph, flame, lava pop, cloud, coloured dust, snowball break, snow shovel, slime, heart, barrier, item crack, block break, block dust, water drop, mob appearance, dragon breath, end rod, damage indicator, sweep attack, falling dust, totem, spit, squid ink, bubble pop, current down, bubble column up, nautilus, dolphin, sneeze, campfire cosy smoke, campfire signal smoke, composter, flash, falling lava, landing lava, falling water, dripping honey, falling honey, landing honey, falling nectar, soul fire flame, ash, crimson spore, warped spore, soul, dripping obsidian tear, falling obsidian tear, landing obsidian tear, reverse portal, white ash, light, falling spore blossom, spore blossom air, small flame, snowflake, dripping dripstone lava, falling dripstone lava, dripping dripstone water, falling dripstone water, glow squid ink, glow, wax on, wax off, electric spark, scrape
Since: 2.1
A visible effect, e.g. particles.
Examples:
show wolf hearts on the clicked wolf
play mob spawner flames at the targeted block to the player
Weather Type 🔗
Patterns:
  • clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm
Since: 1.0
The weather types sunny, rainy, and thundering.
Examples:
is raining
is sunny in the player's world
message "It is %weather in the argument's world% in %world of the argument%"
World 🔗
Patterns:
  • <code>"world_name"</code>, e.g. "world"
Since: 1.0, 2.2 (alternate syntax)
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.
Examples:
broadcast "Hello!" to the world "world_nether"
\ No newline at end of file + Skript Documentation - 2.6-beta3

Types

Attribute Type

🔗
Patterns:
  • generic max health, generic follow range, generic knockback resistance, generic movement speed, generic flying speed, generic attack damage, generic attack knockback, generic attack speed, generic armor, generic armor toughness, generic luck, horse jump strength, zombie spawn reinforcements
Since: 2.5
Represents the type of an attribute. Note that this type does not contain any numerical values.See attribute types for more info.

Examples:

Missing examples.

Biome

🔗
Patterns:
  • Biome names; you can use F3 ingame
Since: 1.4.4
All possible biomes Minecraft uses to generate a world.

Examples:

biome at the player is desert

Block

🔗
Patterns:
  • Missing patterns.
Since: 1.0
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.

Examples:

Missing examples.

Block Data

🔗
Patterns:
  • Missing patterns.
Since: 2.5
Block data is the detailed information about a block, referred to in Minecraft as BlockStates, allowing for the manipulation of different aspects of the block, including shape, waterlogging, direction the block is facing, and so much more. Information regarding each block's optional data can be found on Minecraft's Wiki. Find the block you're looking for and scroll down to 'Block States'. Different states must be separated by a semicolon (see examples). The 'minecraft:' namespace is optional, as well as are underscores.

Examples:

set block at player to campfire[lit=false]
set target block of player to oak stairs[facing=north;waterlogged=true]
set block at player to grass_block[snowy=true]
set loop-block to minecraft:chest[facing=north]
set block above player to oak_log[axis=y]
set target block of player to minecraft:oak_leaves[distance=2;persistent=false]

Boolean

🔗
Patterns:
  • true/yes/on or false/no/off
Since: 1.0
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.

Examples:

set {config.%player%.use mod} to false

Cat Type

🔗
Patterns:
  • tabby, black, red, siamese, british shorthair, calico, persian, ragdoll, white, jellie, all black
Since: 2.4
Represents the race/type of a cat entity.

Examples:

Missing examples.

Chunk

🔗
Patterns:
  • Missing patterns.
Since: 2.0
A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world.

Examples:

Missing examples.

Click Type

🔗
Patterns:
  • 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, swap offhand, unknown
Since: 2.2-dev16b, 2.2-dev35 (renamed to click type)
Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side.

Examples:

Missing examples.

Colour

🔗
Patterns:
  • 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
Since: Unknown
Wool, dye and chat colours.

Examples:

color of the sheep is red or black
set the colour of the block to green
message "You're holding a <%color of tool%>%color of tool% wool block"

Command Sender

🔗
Patterns:
Since: 1.0
A player or the console.

Examples:

command /push [<player>]:
    trigger:
        if arg-1 is not set:
            if command sender is console:
                send "You can't push yourself as a console :\" to sender
                stop
            push sender upwards with force 2
            send "Yay!"
        else:
            push arg-1 upwards with force 2
            send "Yay!" to sender and arg-1

Damage Cause

🔗
Patterns:
  • 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, freeze
Since: 2.0
The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc. 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.

Examples:

Missing examples.

Date

🔗
Patterns:
  • Missing patterns.
Since: 1.4
A date is a certain point in the real world's time which can currently only be obtained with now. See time and timespan for the other time types of Skript.

Examples:

set {_yesterday} to now
subtract a day from {_yesterday}
# now {_yesterday} represents the date 24 hours before now

Difficulty

🔗
Patterns:
  • peaceful, easy, medium, hard
Since: 2.3
The difficulty of a world.

Examples:

Missing examples.

Direction

🔗
Patterns:
Since: 2.0
A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc. Locations and some blocks also have a direction, but without a length. Please note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments.

Examples:

set the block below the victim to a chest
loop blocks from the block infront of the player to the block 10 below the player:
    set the block behind the loop-block to water

Enchantment

🔗
Patterns:
  • 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, Soul Speed, Looting, Efficiency, Mending, Riptide, Quick Charge, Fortune, Loyalty, Channeling
Since: 1.4.6
An enchantment, e.g. 'sharpness' or 'fortune'. Unlike enchantment type this type has no level, but you usually don't need to use this type anyway.

Examples:

Missing examples.

Enchantment Offer

🔗
Patterns:
  • Missing patterns.
Since: 2.5
The enchantmentoffer in an enchant prepare event.

Examples:

on enchant prepare:
    set enchant offer 1 to sharpness 1
    set the cost of enchant offer 1 to 10 levels

Enchantment Type

🔗
Patterns:
  • <enchantment> [<level>]
Since: 1.4.6
An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'.

Examples:

enchant the player's tool with sharpness 5
helmet is enchanted with waterbreathing

Entity

🔗
Patterns:
  • player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc.
Since: 1.0
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.

Examples:

entity is a zombie or creeper
player is an op
projectile is an arrow
shoot a fireball from the player

Entity Type

🔗
Patterns:
  • Detailed usage will be added eventually
Since: 1.3
The type of an entity, e.g. player, wolf, powered creeper, etc.

Examples:

victim is a cow
spawn a creeper

Entity Type with Amount

🔗
Patterns:
Since: 1.3
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.

Examples:

spawn 5 creepers behind the player

Experience

🔗
Patterns:
  • [<number>] ([e]xp|experience [point[s]])
Since: 2.0
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.

Examples:

give 10 xp to the player

Firework Effect

🔗
Patterns:
  • Missing patterns.
Since: 2.4
A configuration of effects that defines the firework when exploded which can be used in the launch firework effect. See the firework effect expression for detailed patterns.

Examples:

launch flickering trailing burst firework colored blue and green at player
launch trailing flickering star coloured purple, yellow, blue, green and red fading to pink at target entity
launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1

Firework Type

🔗
Patterns:
  • ball, large ball, star, burst, creeper
Since: 2.4
The type of a fireworkeffect.

Examples:

Missing examples.

Game Mode

🔗
Patterns:
  • creative/survival/adventure/spectator
Since: 1.0
The game modes survival, creative, adventure and spectator.

Examples:

player's gamemode is survival
set the player argument's game mode to creative

Gamerule

🔗
Patterns:
  • doFireTick, maxCommandChainLength, fireDamage, reducedDebugInfo, disableElytraMovementCheck, announceAdvancements, drowningDamage, commandBlockOutput, forgiveDeadPlayers, doMobSpawning, maxEntityCramming, disableRaids, doWeatherCycle, doDaylightCycle, showDeathMessages, doTileDrops, universalAnger, playersSleepingPercentage, doInsomnia, doImmediateRespawn, naturalRegeneration, doMobLoot, fallDamage, keepInventory, doEntityDrops, doLimitedCrafting, mobGriefing, randomTickSpeed, spawnRadius, freezeDamage, doTraderSpawning, logAdminCommands, spectatorsGenerateChunks, sendCommandFeedback, doPatrolSpawning
Since: 2.5
A gamerule

Examples:

Missing examples.

Gamerule Value

🔗
Patterns:
  • Missing patterns.
Since: 2.5
A wrapper for the value of a gamerule for a world.

Examples:

Missing examples.

Gene

🔗
Patterns:
  • normal, lazy, worried, playful, brown, weak, aggressive
Since: 2.4
Represents a Panda's main or hidden gene. See genetics for more info.

Examples:

Missing examples.

Heal Reason

🔗
Patterns:
  • peaceful regeneration, satiated, eating, end crystal, magic, magic regen, wither spawning, withering, unknown
Since: 2.5
The heal reason in a heal event.

Examples:

Missing examples.

Inventory

🔗
Patterns:
  • Missing patterns.
Since: 1.0
An inventory of a player or block. Inventories have many effects and conditions regarding the items contained. 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).

Examples:

Missing examples.

Inventory Action

🔗
Patterns:
  • 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
Since: 2.2-dev16
What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly.

Examples:

Missing examples.

Inventory Slot

🔗
Patterns:
  • Missing patterns.
Since: Unknown
Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. 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). 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.

Examples:

set tool of player to dirt
delete helmet of the victim
set the colour of the player's tool to green
enchant the player's chestplate with projectile protection 5

Inventory Type

🔗
Patterns:
  • 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, smithing 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, composter inventory
Since: 2.2-dev32
Minecraft has several different inventory types with their own use cases.

Examples:

Missing examples.

Item / Material

🔗
Patterns:
  • [<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')
Since: 1.0
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). You don't usually need this type except when you want to make a command that only accepts an exact item. Please note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments.

Examples:

set {_item} to type of the targeted block
{_item} is a torch

Item Type

🔗
Patterns:
  • [<number> [of]] [all/every] <alias> [of <enchantment> [<level>] [,/and <more enchantments...>]]
Since: 1.0
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. 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.

Examples:

give 4 torches to the player
add all slabs to the inventory of the block
player's tool is a diamond sword of sharpness
remove a pickaxes of fortune 4 from {stored items::*}
set {_item} to 10 of every upside-down stair
block is dirt or farmland

Living Entity

🔗
Patterns:
  • see entity, but ignore inanimate objects
Since: 1.0
A living entity, i.e. a mob or player, not inanimate entities like projectiles or dropped items.

Examples:

spawn 5 powered creepers
shoot a zombie from the creeper

Location

🔗
Patterns:
  • Missing patterns.
Since: 1.0
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.

Examples:

Missing examples.

Metadata Holder

🔗
Patterns:
  • Missing patterns.
Since: 2.2-dev36
Something that can hold metadata (e.g. an entity or block)

Examples:

set metadata value "super cool" of player to true

Money

🔗
Patterns:
  • <number> $ or $ <number>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'
Since: 2.0
A certain amount of money. Please note that this differs from numbers as it includes a currency symbol or name, but usually the two are interchangeable, e.g. you can both add 100$ to the player's balance and add 100 to the player's balance.

Examples:

add 10£ to the player's account
remove Fr. 9.95 from the player's money
set the victim's money to 0
increase the attacker's balance by the level of the victim * 100

Number

🔗
Patterns:
  • [-]###[.###] (any amount of digits; very large numbers will be truncated though)
Since: 1.0
A number, e.g. 2.5, 3, or -9812454. Please note that many expressions only need integers, i.e. will discard any fractional parts of any numbers without producing an error.

Examples:

set the player's health to 5.5
set {_temp} to 2*{_temp} - 2.5

Object

🔗
Patterns:
  • Missing patterns.
Since: 1.0
The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions.

Examples:

Missing examples.

Offline Player

🔗
Patterns:
  • Missing patterns.
Since: Unknown
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.

Examples:

Missing examples.

Player

🔗
Patterns:
  • Missing patterns.
Since: 1.0
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 their inventory) on an offline player. 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.

Examples:

Missing examples.

Potion Effect

🔗
Patterns:
  • speed of tier 1 for 10 seconds
Since: 2.5.2
A potion effect, including the potion effect type, tier and duration.

Examples:

Missing examples.

Potion Effect Type

🔗
Patterns:
  • 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
Since: Unknown
A potion effect type, e.g. 'strength' or 'swiftness'.

Examples:

apply swiftness 5 to the player
apply potion of speed 2 to the player for 60 seconds
remove invisibility from the victim

Projectile

🔗
Patterns:
  • arrow, fireball, snowball, thrown potion, etc.
Since: 1.0
A projectile, e.g. an arrow, snowball or thrown potion.

Examples:

projectile is a snowball
shoot an arrow at speed 5 from the player

Region

🔗
Patterns:
  • "region name"
Since: 2.1
A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones. Please note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like "region name" in scripts may or may not work.

Examples:

Missing examples.

Resource Pack State

🔗
Patterns:
  • successfully load, decline, download fail, accept
Since: 2.4
The state in a resource pack request response event.

Examples:

Missing examples.

Server Icon

🔗
Patterns:
  • Missing patterns.
Since: 2.3
A server icon that was loaded using the load server icon effect.

Examples:

Missing examples.

Sound Category

🔗
Patterns:
  • master category, music category, record category, weather category, block category, hostile category, neutral category, player category, ambient category, voice category
Since: 2.4
The category of a sound, they are used for sound options of Minecraft. See the play sound and stop sound effects.

Examples:

Missing examples.

Spawn Reason

🔗
Patterns:
  • 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, explosion, raid, patrol, beehive, piglin zombification, spawn reasons.frozen, command, customized, default
Since: 2.3
The spawn reason in a spawn event.

Examples:

Missing examples.

Teleport Cause

🔗
Patterns:
  • ender pearl, command, plugin, nether portal, end portal, spectate, gateway, chorus, unknown
Since: 2.2-dev35
The teleport cause in a teleport event.

Examples:

Missing examples.

Text

🔗
Patterns:
  • simple: "..."
  • quotes: "...""..."
  • expressions: "...%expression%..."
  • percent signs: "...%%..."
Since: 1.0
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). 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. Please read the article on Texts and Variable Names to learn more.

Examples:

broadcast "Hello World!"
message "Hello %player%"
message "The id of ""%type of tool%"" is %id of tool%."

Time

🔗
Patterns:
  • ##:##
  • ##[:##][ ]am/pm
Since: 1.0
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. See date and timespan for the other time types of Skript.

Examples:

at 20:00:
    time is 8 pm
    broadcast "It's %time%"

Timeperiod

🔗
Patterns:
  • ##:## - ##:##
  • dusk/day/dawn/night
Since: 1.0
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. This type might be removed in the future as you can use 'time of world is between x and y' as a replacement.

Examples:

time in world is night

Timespan

🔗
Patterns:
  • <number> [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] <more...>]
  • [###:]##:##[.####] ([hours:]minutes:seconds[.milliseconds])
Since: 1.0
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'. See date and time for the other time types of Skript.

Examples:

every 5 minecraft days:
    wait a minecraft second and 5 ticks
every 10 mc days and 12 hours:
    halt for 12.7 irl minutes, 12 hours and 120.5 seconds

Tree Type

🔗
Patterns:
  • [any] <general tree/mushroom type>, e.g. tree/any jungle tree/etc.
  • <specific tree/mushroom species>, e.g. red mushroom/small jungle tree/big regular tree/etc.
Since: Unknown
A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect.

Examples:

grow any regular tree at the block
grow a huge red mushroom above the block

Type

🔗
Patterns:
  • See the type name patterns of all types - including this one
Since: 2.0
Represents a type, e.g. number, object, item type, location, block, world, entity type, etc. This is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player.

Examples:

{variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5
{variable} is a type # check whether the variable contains a type, e.g. number or player
{variable} is an object # will always succeed if the variable is set as everything is an object, even types.
disable PvP in the event-world
kill the loop-entity

Vector

🔗
Patterns:
  • vector(x, y, z)
Since: 2.2-dev23
Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities.

Examples:

Missing examples.

Visual Effect

🔗
Patterns:
  • smoke, potion break, ender signal, mobspawner flames, arrow particles, jumping rabbit, 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, 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, hurt by explosion, explosion, large explosion, huge explosion, firework's spark, water bubble, water splash, water wake, suspended, void fog, critical hit, magical critical hit, smoke particle, large smoke, spell, spell, potion swirl, transparent potion swirl, witch spell, water drip, lava drip, angry villager, happy villager, small smoke, note, portal, flying glyph, flame, lava pop, cloud, coloured dust, snowball break, snow shovel, slime, heart, barrier, item crack, block break, block dust, water drop, mob appearance, dragon breath, end rod, damage indicator, sweep attack, falling dust, totem, spit, squid ink, bubble pop, current down, bubble column up, nautilus, dolphin, sneeze, campfire cosy smoke, campfire signal smoke, composter, flash, falling lava, landing lava, falling water, dripping honey, falling honey, landing honey, falling nectar, soul fire flame, ash, crimson spore, warped spore, soul, dripping obsidian tear, falling obsidian tear, landing obsidian tear, reverse portal, white ash, light, falling spore blossom, spore blossom air, small flame, snowflake, dripping dripstone lava, falling dripstone lava, dripping dripstone water, falling dripstone water, glow squid ink, glow, wax on, wax off, electric spark, scrape
Since: 2.1
A visible effect, e.g. particles.

Examples:

show wolf hearts on the clicked wolf
play mob spawner flames at the targeted block to the player

Weather Type

🔗
Patterns:
  • clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm
Since: 1.0
The weather types sunny, rainy, and thundering.

Examples:

is raining
is sunny in the player's world
message "It is %weather in the argument's world% in %world of the argument%"

World

🔗
Patterns:
  • "world_name", e.g. "world"
Since: 1.0, 2.2 (alternate syntax)
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.

Examples:

broadcast "Hello!" to the world "world_nether"
\ No newline at end of file diff --git a/conditions.html b/conditions.html index 3b583fb9e2e..0c790a6e713 100644 --- a/conditions.html +++ b/conditions.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

Conditions

Alphanumeric 🔗
Patterns:
  • %texts% (is|are) alphanumeric
  • %texts% (isn't|is not|aren't|are not) alphanumeric
Since: 2.4
Checks if the given string is alphanumeric.
Examples:
if the argument is not alphanumeric:
    send "Invalid name!"
Can Build 🔗
Patterns:
Since: 2.0
Tests whether a player is allowed to build at a certain location. This condition requires a supported regions plugin to be installed.
Examples:
command /setblock :
    description: set the block at your crosshair to a different type
    trigger:
        player cannot build at the targeted block:
            message "You do not have permission to change blocks there!"
            stop
        set the targeted block to argument
Can Fly 🔗
Patterns:
Since: 2.3
Whether a player is allowed to fly.
Examples:
player can fly
Can Hold 🔗
Patterns:
Since: 1.0
Tests whether a player or a chest can hold the given item.
Examples:
block can hold 200 cobblestone
player has enough space for 64 feathers
Can See 🔗
Patterns:
Since: 2.3
Checks whether the given players can see another players.
Examples:
if the player can't see the player-argument:
    message "The player %player-argument% is not online!"
Chance 🔗
Patterns:
Since: 1.0
A condition that randomly succeeds or fails. Valid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1.
Examples:
chance of 50%:
    drop a diamond
chance of {chance}% # {chance} between 0 and 100
chance of {chance} # {chance} between 0 and 1
Comparison 🔗
Patterns:
  • [neither] %objects% ((is|are)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above)|\>) %objects%
  • [neither] %objects% ((is|are)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|\>=) %objects%
  • [neither] %objects% ((is|are)[((n't| not| neither)]) ((less|smaller|lower) than|below)|\<) %objects%
  • [neither] %objects% ((is|are)[((n't| not| neither)]) (less|smaller|lower|below) [than] or (equal to|the same as)|\<=) %objects%
  • [neither] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%
  • [neither] %objects% (is|are|=) [(equal to|the same as)] %objects%
  • [neither] %objects% (is|are) between %objects% and %objects%
  • [neither] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%
  • [neither] %objects% (was|were)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above) %objects%
  • [neither] %objects% (was|were)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%
  • [neither] %objects% (was|were)[((n't| not| neither)]) ((less|smaller|lower) than|below) %objects%
  • [neither] %objects% (was|were)[((n't| not| neither)]) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%
  • [neither] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%
  • [neither] %objects% (was|were) [(equal to|the same as)] %objects%
  • [neither] %objects% (was|were) between %objects% and %objects%
  • [neither] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%
  • [neither] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%
  • [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%
  • [neither] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller|lower) than|below) %objects%
  • [neither] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%
  • [neither] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%
  • [neither] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%
  • [neither] %objects% will be between %objects% and %objects%
  • [neither] %objects% (will not be|won't be) between %objects% and %objects%
Since: 1.0
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. 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.
Examples:
the clicked block is a stone slab or a double stone slab
time in the player's world is greater than 8:00
the creature is not an enderman or an ender dragon
Contains 🔗
Patterns:
Since: 1.0
Checks whether an inventory contains an item, a text contains another piece of text, or a list (e.g. {list variable::*} or 'drops') contains another object.
Examples:
block contains 20 cobblestone
player has 4 flint and 2 iron ingots
{list::*} contains 5
Damage Cause 🔗
Patterns:
  • [the] damage (was|is|has)[(n('|o)]t) [been] (caused|done|made) by %damage cause%
Since: 2.0
Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes.
Examples:
# make players use their potions of fire resistance whenever they take any kind of fire damage
on damage:
    damage was caused by lava, fire or burning
    victim is a player
    victim has a potion of fire resistance
    cancel event
    apply fire resistance to the victim for 30 seconds
    remove 1 potion of fire resistance from the victim
# prevent mobs from dropping items under certain circumstances
on death:
    entity is not a player
    damage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison
    clear drops
Event Cancelled 🔗
Patterns:
  • [the] event is cancel[l]ed
  • [the] event (is not|isn't) cancel[l]ed
Since: 2.2-dev36
Checks whether or not the event is cancelled.
Examples:
on click:
    if event is cancelled:
        broadcast "no clicks allowed!"
Exists/Is Set 🔗
Patterns:
  • %~objects% (exist[s]|(is|are) set)
  • %~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)
Since: 1.2
Checks whether a given expression or variable is set.
Examples:
{teams::%player's uuid%::preferred-team} is not set
on damage:
    projectile exists
    broadcast "%attacker% used a %projectile% to attack %victim%!"
Has AI 🔗
Patterns:
Since: 2.5
Checks whether an entity has AI.
Examples:
target entity has ai
Has Client Weather 🔗
Patterns:
  • %players% (has|have) [a] (client|custom) weather [set]
  • %players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]
Since: 2.3
Checks whether the given players have a custom client weather
Examples:
if the player has custom weather:
    message "Your custom weather is %player's weather%"
Has Custom Model Data 🔗
Patterns:
  • %item types% (has|have) [custom] model data
  • %item types% (doesn't|does not|do not|don't) have [custom] model data
Since: 2.5
Requirements: 1.14+
Check if an item has a custom model data tag
Examples:
player's tool has custom model data
Has Metadata 🔗
Patterns:
Since: 2.2-dev36
Checks whether a metadata holder has a metadata tag.
Examples:
if player has metadata value "healer":
Has Permission 🔗
Patterns:
Since: 1.0
Test whether a player has a certain permission.
Examples:
player has permission "skript.tree"
victim has the permission "admin":
    send "You're attacking an admin!" to attacker
Has Played Before 🔗
Patterns:
  • %offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)
  • %offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)
Since: 1.4
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.
Examples:
player has played on this server before
player hasn't played before
Has Resource Pack 🔗
Patterns:
  • %players% (has|have) [a] resource pack [(loaded|installed)]
  • %players% (doesn't|does not|do not|don't) have [a] resource pack [(loaded|installed)]
Since: 2.4
Requirements: Paper 1.9 or newer
Checks whether the given players have a server resource pack loaded. Please note that this can't detect player's own resource pack, only the resource pack that sent by the server.
Examples:
if the player has a resource pack loaded:
Has Scoreboard Tag 🔗
Patterns:
  • %entities% (has|have) [the] score[ ]board tag[s] %texts%
  • %entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %texts%
Since: 2.3
Checks whether the given entities has the given scoreboard tags.
Examples:
if the targeted armor stand has the scoreboard tag "test tag":
Ignition Process 🔗
Patterns:
  • [creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) going to explode
  • [creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) in the (ignition|explosion) process
  • creeper[s] %living entities% ((is|are)|(isn't|is not|aren't|are not)) ignited
Since: 2.5
Requirements: Paper 1.13 or newer
Checks if a creeper is going to explode.
Examples:
if the last spawned creeper is going to explode:
    loop all players in radius 3 of the last spawned creeper
        send "RUN!!!" to the loop-player
Is Alive 🔗
Patterns:
  • %entities% (is|are) (alive|dead)
  • %entities% (isn't|is not|aren't|are not) (alive|dead)
Since: 2.0, 2.4-alpha4 (non-living entity support)
Checks whether an entity is alive. Works for non-living entities too.
Examples:
if {villager-buddy::%player's uuid%} is not dead:

on shoot:
    while the projectile is alive:
Is Banned 🔗
Patterns:
Since: 1.4
Checks whether a player or IP is banned.
Examples:
player is banned
victim is not IP-banned
"127.0.0.1" is banned
Is Block 🔗
Patterns:
  • %item types% (is|are) ([a] block|blocks)
  • %item types% (isn't|is not|aren't|are not) ([a] block|blocks)
Since: 2.4
Checks whether an item is a block.
Examples:
player's held item is a block
{list::*} are blocks
Is Block Redstone Powered 🔗
Patterns:
  • %blocks% (is|are) redstone powered
  • %blocks% (is|are) indirectly redstone powered
  • %blocks% (is|are)(n't| not) redstone powered
  • %blocks% (is|are)(n't| not) indirectly redstone powered
Since: 2.5
Checks if a block is indirectly or directly powered by redstone
Examples:
if clicked block is redstone powered:
    send "This block is well-powered by redstone!"
if clicked block is indirectly redstone powered:
    send "This block is indirectly redstone powered."
Is Blocking 🔗
Patterns:
  • %players% (is|are) (blocking|defending) [with [a] shield]
  • %players% (isn't|is not|aren't|are not) (blocking|defending) [with [a] shield]
Since: unknown (before 2.1)
Checks whether a player is blocking with their shield.
Examples:
on damage of player:
    victim is blocking
    damage attacker by 0.5 hearts
Is Burning 🔗
Patterns:
  • %entities% (is|are) (burning|ignited|on fire)
  • %entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)
Since: 1.4.4
Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava.
Examples:
# increased attack against burning targets
victim is burning:
    increase damage by 2
Is Charged 🔗
Patterns:
Since: 2.5
Checks if a creeper is charged (powered).
Examples:
if the last spawned creeper is charged:
    broadcast "A charged creeper is at %location of last spawned creeper%"
Is Edible 🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is edible.
Examples:
steak is edible
player's tool is edible
Is Empty 🔗
Patterns:
Since: unknown (before 2.1)
Checks whether an inventory, an inventory slot, or a text is empty.
Examples:
player's inventory is empty
Is Enchanted 🔗
Patterns:
Since: 1.4.6
Checks whether an item is enchanted.
Examples:
tool of the player is enchanted with efficiency 2
helm, chestplate, leggings or boots are enchanted
Is Flammable 🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is flammable.
Examples:
wood is flammable
player's tool is flammable
Is Flying 🔗
Patterns:
  • %players% (is|are) flying
  • %players% (isn't|is not|aren't|are not) flying
Since: 1.4.4
Checks whether a player is flying.
Examples:
player is not flying
Is Fuel 🔗
Patterns:
Since: 2.5.1
Requirements: Minecraft 1.11.2+
Checks whether an item can be used as fuel in a furnace.
Examples:
on right click on furnace:
    if player's tool is not fuel:
        send "Please hold a valid fuel item in your hand"
        cancel event
Is Holding 🔗
Patterns:
Since: 1.0
Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead.
Examples:
player is holding a stick
victim isn't holding a sword of sharpness
Is Incendiary 🔗
Patterns:
  • %entities% ((is|are) incendiary|cause[s] a[n] (incendiary|fiery) explosion)
  • %entities% ((is not|are not|isn't|aren't) incendiary|(does not|do not|doesn't|don't) cause[s] a[n] (incendiary|fiery) explosion)
  • the [event(-| )]explosion (is|(is not|isn't)) (incendiary|fiery)
Since: 2.5
Checks if an entity will create fire when it explodes. This condition is also usable in an explosion prime event.
Examples:
on explosion prime:
    if the explosion is fiery:
        broadcast "A fiery explosive has been ignited!"
Is Interactable 🔗
Patterns:
Since: 2.5.2
Requirements: Minecraft 1.13+
Checks wether or not a block is interactable.
Examples:
on block break:
    if event-block is interactable:
        cancel event
        send "You cannot break interactable blocks!"
Is Invulnerable 🔗
Patterns:
  • %entities% (is|are) invulnerable
  • %entities% (isn't|is not|aren't|are not) invulnerable
Since: 2.5
Checks whether an entity is invulnerable.
Examples:
target entity is invulnerable
Is Leashed 🔗
Patterns:
Since: 2.5
Checks to see if an entity is currently leashed.
Examples:
target entity is leashed
Is Loaded 🔗
Patterns:
Since: 2.3, 2.5 (revamp with chunk at location/coords)
Checks whether or not a chunk/world is loaded. 'chunk at 1, 1' uses chunk coords, which are location coords divided by 16.
Examples:
if chunk at {home::%player's uuid%} is loaded:
if chunk 1, 10 in world "world" is loaded:
if world("lobby") is loaded:
Is Member/Owner of Region 🔗
Patterns:
Since: 2.1
Checks whether a player is a member or owner of a particular region. This condition requires a supported regions plugin to be installed.
Examples:
on region enter:
    player is the owner of the region
    message "Welcome back to %region%!"
    send "%player% just entered %region%!" to all members of the region
Is Normalized 🔗
Patterns:
  • %vectors% (is|are) normalized
  • %vectors% (isn't|is not|aren't|are not) normalized
Since: 2.5.1
Requirements: Minecraft 1.13.2+
Checks whether a vector is normalized i.e. length of 1
Examples:
vector of player's location is normalized
Is Occluding 🔗
Patterns:
Since: 2.5.1
Checks whether an item is a block and completely blocks vision.
Examples:
player's tool is occluding
Is Online 🔗
Patterns:
Since: 1.4
Checks whether a player is online.
Examples:
player is online
player-argument is offline
Is Passable 🔗
Patterns:
  • %blocks% (is|are) passable
  • %blocks% (isn't|is not|aren't|are not) passable
Since: 2.5.1
Requirements: Minecraft 1.13.2+
Checks whether a block is passable. A block is passable if it has no colliding parts that would prevent players from moving through it. Blocks like tall grass, flowers, signs, etc. are passable, but open doors, fence gates, trap doors, etc. are not because they still have parts that can be collided with.
Examples:
if player's targeted block is passable
Is Plugin Enabled 🔗
Patterns:
  • plugin[s] %texts% (is|are) enabled
  • plugin[s] %texts% (is|are)(n't| not) enabled
  • plugin[s] %texts% (is|are) disabled
Since: 2.6
Check if a plugin is enabled/disabled on the server. Plugin names can be found in the plugin's 'plugin.yml' file or by using the '/plugins' command, they are NOT the name of the plugin's jar file. When checking if a plugin is not enabled, this will return true if the plugin is either disabled or not on the server. When checking if a plugin is disabled, this will return true if the plugin is on the server and is disabled.
Examples:
if plugin "Vault" is enabled:
if plugin "WorldGuard" is not enabled:
if plugins "Essentials" and "Vault" are enabled:
if plugin "MyBrokenPlugin" is disabled:
Is Poisoned 🔗
Patterns:
Since: 1.4.4
Checks whether an entity is poisoned.
Examples:
player is poisoned:
    cure the player from poison
    message "You have been cured!"
Is Riding 🔗
Patterns:
Since: 2.0
Tests whether an entity is riding another or is in a vehicle.
Examples:
player is riding a saddled pig
Is Riptiding 🔗
Patterns:
Since: 2.5
Checks to see if an entity is currently using the Riptide enchantment.
Examples:
target entity is riptiding
Is Script Loaded 🔗
Patterns:
  • script[s] [%texts%] (is|are) loaded
  • script[s] [%texts%] (isn't|is not|aren't|are not) loaded
Since: 2.2-dev31
Check if the current script, or another script, is currently loaded.
Examples:
script is loaded
script "example.sk" is loaded
Is Silent 🔗
Patterns:
Since: 2.5
Checks whether an entity is silent i.e. its sounds are disabled.
Examples:
target entity is silent
Is Sleeping 🔗
Patterns:
  • %players% (is|are) sleeping
  • %players% (isn't|is not|aren't|are not) sleeping
Since: 1.4.4
Checks whether a player is sleeping.
Examples:
# cut your enemies' throats in their sleep >=)
on attack:
    attacker is holding a sword
    victim is sleeping
    increase the damage by 1000
Is Slime Chunk 🔗
Patterns:
  • %chunk% (is|are) ([a] slime chunk|slime chunks|slimey)
  • %chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)
Since: 2.3
Tests whether a chunk is a so-called slime chunk. Slimes can generally spawn in the swamp biome and in slime chunks. For more info, see the Minecraft wiki.
Examples:
command /slimey:
    trigger:
        if chunk at player is a slime chunk:
            send "Yeah, it is!"
        else:
            send "Nope, it isn't"
Is Sneaking 🔗
Patterns:
  • %players% (is|are) sneaking
  • %players% (isn't|is not|aren't|are not) sneaking
Since: 1.4.4
Checks whether a player is sneaking.
Examples:
# prevent mobs from seeing sneaking players if they are at least 4 meters apart
on target:
    target is sneaking
    distance of target and the entity is bigger than 4
    cancel the event
Is Solid 🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is solid.
Examples:
grass block is solid
player's tool isn't solid
Is Sprinting 🔗
Patterns:
  • %players% (is|are) sprinting
  • %players% (isn't|is not|aren't|are not) sprinting
Since: 1.4.4
Checks whether a player is sprinting.
Examples:
player is not sprinting
Is Swimming 🔗
Patterns:
Since: 2.3
Requirements: 1.13 or newer
Checks whether a living entity is swimming.
Examples:
player is swimming
Is Tameable 🔗
Patterns:
Since: 2.5
Check if an entity is tameable.
Examples:
on damage:
    if victim is tameable:
        cancel event
Is Transparent 🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is transparent. Note that this condition may not work for all blocks, due to the transparency list used by Spigot not being completely accurate.
Examples:
player's tool is transparent.
Is Unbreakable 🔗
Patterns:
Since: 2.5.1
Requirements: Minecraft 1.11+
Checks whether an item is unbreakable.
Examples:
if event-item is unbreakable
Is Wearing 🔗
Patterns:
Since: 1.0
Checks whether a player is wearing some armour.
Examples:
player is wearing an iron chestplate and iron leggings
player is wearing all diamond armour
Is Whitelisted 🔗
Patterns:
  • [the] server (is|is(n't| not)) white[ ]listed
  • %players% (is|are)[((n't| not)]) white[ ]listed
Since: 2.5.2
Whether or not the server or a player is whitelisted.
Examples:
if server is whitelisted:
if player is whitelisted
Is a Skript command 🔗
Patterns:
  • %text% (is|are) [a] s(k|c)ript (command|cmd)
  • %text% (isn't|is not|aren't|are not) [a] s(k|c)ript (command|cmd)
Since: 2.6
Checks whether a command/string is a custom Skript command.
Examples:
# Example 1
on command:
    command is a skript command

# Example 2
"sometext" is a skript command
Is in World 🔗
Patterns:
Since: 1.4
Checks whether an entity is in a specific world.
Examples:
player is in "world"
argument isn't in world "world_nether"
the player is in the world of the victim
Is of Type 🔗
Patterns:
Since: 1.4
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').
Examples:
tool is of type {selected type}
victim is of type {villager type}
Is on Ground 🔗
Patterns:
  • %entities% (is|are) on [the] ground
  • %entities% (isn't|is not|aren't|are not) on [the] ground
Since: 2.2-dev26
Checks whether an entity is on ground.
Examples:
player is not on ground
Matches 🔗
Patterns:
  • %texts% (match[es]|do[es](n't| not) match) %texts%
  • %texts% (partially match[es]|do[es](n't| not) partially match) %texts%
Since: 2.5.2
Checks whether the defined strings match the input regexes (Regular expressions).
Examples:
on chat:
    if message partially matches "\d":
        send "Message contains a digit!"
    if message doesn't match "[A-Za-z]+":
        send "Message doesn't only contain letters!"
Projectile Can Bounce 🔗
Patterns:
Since: 2.5.1
Whether or not a projectile can bounce.
Examples:
on shoot:
    send "Boing!" to all players if projectile can bounce
PvP 🔗
Patterns:
  • (is PvP|PvP is) enabled [in %worlds%]
  • (is PvP|PvP is) disabled [in %worlds%]
Since: 1.3.4
Checks the PvP state of a world.
Examples:
PvP is enabled
PvP is disabled in "world"
Region Contains 🔗
Patterns:
Since: 2.1
Checks whether a location is contained in a particular region. This condition requires a supported regions plugin to be installed.
Examples:
player is in the region {regions::3}
on region enter:
    region contains {flags.%world%.red}
    message "The red flag is near!"
Resource Pack 🔗
Patterns:
Since: 2.4
Usable in events: resource pack request response
Checks state of the resource pack in a resource pack request response event.
Examples:
on resource pack response:
    if the resource pack wasn't accepted:
        kick the player due to "You have to install the resource pack to play in this server!"
Starts/Ends With 🔗
Patterns:
  • %texts% (start|end)[s] with %texts%
  • %texts% (doesn't|does not|do not|don't) (start|end) with %texts%
Since: 2.2-dev36, 2.5.1 (multiple strings support)
Checks if a text starts or ends with another.
Examples:
if the argument starts with "test" or "debug":
    send "Stop!"
Time 🔗
Patterns:
Since: 2.0
Tests whether a given real time was more or less than some time span ago.
Examples:
command /command-with-cooldown:
    trigger:
        {command::%player's uuid%::last-usage} was less than a minute ago:
            message "Please wait a minute between uses of this command."
            stop
        set {command::%player's uuid%::last-usage} to now
        # ... actual command trigger here ...
Weather 🔗
Patterns:
Since: 1.0
Checks whether the weather in a world is of a specific type. I welcome any ideas how to write this condition differently.
Examples:
is thundering
is raining in "world" or "world2"
\ No newline at end of file + Skript Documentation - 2.6-beta3

Conditions

Alphanumeric

🔗
Patterns:
  • %texts% (is|are) alphanumeric
  • %texts% (isn't|is not|aren't|are not) alphanumeric
Since: 2.4
Checks if the given string is alphanumeric.

Examples:

if the argument is not alphanumeric:
    send "Invalid name!"

Can Build

🔗
Patterns:
Since: 2.0
Tests whether a player is allowed to build at a certain location. This condition requires a supported regions plugin to be installed.

Examples:

command /setblock <material>:
    description: set the block at your crosshair to a different type
    trigger:
        player cannot build at the targeted block:
            message "You do not have permission to change blocks there!"
            stop
        set the targeted block to argument

Can Fly

🔗
Patterns:
Since: 2.3
Whether a player is allowed to fly.

Examples:

player can fly

Can Hold

🔗
Patterns:
Since: 1.0
Tests whether a player or a chest can hold the given item.

Examples:

block can hold 200 cobblestone
player has enough space for 64 feathers

Can See

🔗
Patterns:
Since: 2.3
Checks whether the given players can see another players.

Examples:

if the player can't see the player-argument:
    message "<light red>The player %player-argument% is not online!"

Chance

🔗
Patterns:
Since: 1.0
A condition that randomly succeeds or fails. Valid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1.

Examples:

chance of 50%:
    drop a diamond
chance of {chance}% # {chance} between 0 and 100
chance of {chance} # {chance} between 0 and 1

Comparison

🔗
Patterns:
  • [(neither)] %objects% ((is|are)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above)|>) %objects%
  • [(neither)] %objects% ((is|are)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|>=) %objects%
  • [(neither)] %objects% ((is|are)[(n't| not| neither)] ((less|smaller|lower) than|below)|<) %objects%
  • [(neither)] %objects% ((is|are)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as)|<=) %objects%
  • [(neither)] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%
  • [(neither)] %objects% (is|are|=) [(equal to|the same as)] %objects%
  • [(neither)] %objects% (is|are) between %objects% and %objects%
  • [(neither)] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%
  • [(neither)] %objects% (was|were)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above) %objects%
  • [(neither)] %objects% (was|were)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%
  • [(neither)] %objects% (was|were)[(n't| not| neither)] ((less|smaller|lower) than|below) %objects%
  • [(neither)] %objects% (was|were)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as) %objects%
  • [(neither)] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%
  • [(neither)] %objects% (was|were) [(equal to|the same as)] %objects%
  • [(neither)] %objects% (was|were) between %objects% and %objects%
  • [(neither)] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%
  • [(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%
  • [(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%
  • [(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller|lower) than|below) %objects%
  • [(neither)] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%
  • [(neither)] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%
  • [(neither)] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%
  • [(neither)] %objects% will be between %objects% and %objects%
  • [(neither)] %objects% (will not be|won't be) between %objects% and %objects%
Since: 1.0
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. 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.

Examples:

the clicked block is a stone slab or a double stone slab
time in the player's world is greater than 8:00
the creature is not an enderman or an ender dragon

Contains

🔗
Patterns:
Since: 1.0
Checks whether an inventory contains an item, a text contains another piece of text, or a list (e.g. {list variable::*} or 'drops') contains another object.

Examples:

block contains 20 cobblestone
player has 4 flint and 2 iron ingots
{list::*} contains 5

Damage Cause

🔗
Patterns:
  • [the] damage (was|is|has)[n('|o)t] [been] (caused|done|made) by %damage cause%
Since: 2.0
Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes.

Examples:

# make players use their potions of fire resistance whenever they take any kind of fire damage
on damage:
    damage was caused by lava, fire or burning
    victim is a player
    victim has a potion of fire resistance
    cancel event
    apply fire resistance to the victim for 30 seconds
    remove 1 potion of fire resistance from the victim
# prevent mobs from dropping items under certain circumstances
on death:
    entity is not a player
    damage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison
    clear drops

Event Cancelled

🔗
Patterns:
  • [the] event is cancel[l]ed
  • [the] event (is not|isn't) cancel[l]ed
Since: 2.2-dev36
Checks whether or not the event is cancelled.

Examples:

on click:
    if event is cancelled:
        broadcast "no clicks allowed!"

Exists/Is Set

🔗
Patterns:
  • %~objects% (exist[s]|(is|are) set)
  • %~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)
Since: 1.2
Checks whether a given expression or variable is set.

Examples:

{teams::%player's uuid%::preferred-team} is not set
on damage:
    projectile exists
    broadcast "%attacker% used a %projectile% to attack %victim%!"

Has AI

🔗
Patterns:
Since: 2.5
Checks whether an entity has AI.

Examples:

target entity has ai

Has Client Weather

🔗
Patterns:
  • %players% (has|have) [a] (client|custom) weather [set]
  • %players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]
Since: 2.3
Checks whether the given players have a custom client weather

Examples:

if the player has custom weather:
    message "Your custom weather is %player's weather%"

Has Custom Model Data

🔗
Patterns:
  • %item types% (has|have) [custom] model data
  • %item types% (doesn't|does not|do not|don't) have [custom] model data
Since: 2.5
Requirements: 1.14+
Check if an item has a custom model data tag

Examples:

player's tool has custom model data

Has Metadata

🔗
Patterns:
Since: 2.2-dev36
Checks whether a metadata holder has a metadata tag.

Examples:

if player has metadata value "healer":

Has Permission

🔗
Patterns:
Since: 1.0
Test whether a player has a certain permission.

Examples:

player has permission "skript.tree"
victim has the permission "admin":
    send "You're attacking an admin!" to attacker

Has Played Before

🔗
Patterns:
  • %offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)
  • %offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)
Since: 1.4
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.

Examples:

player has played on this server before
player hasn't played before

Has Resource Pack

🔗
Patterns:
  • %players% (has|have) [a] resource pack [(loaded|installed)]
  • %players% (doesn't|does not|do not|don't) have [a] resource pack [(loaded|installed)]
Since: 2.4
Requirements: Paper 1.9 or newer
Checks whether the given players have a server resource pack loaded. Please note that this can't detect player's own resource pack, only the resource pack that sent by the server.

Examples:

if the player has a resource pack loaded:

Has Scoreboard Tag

🔗
Patterns:
  • %entities% (has|have) [the] score[ ]board tag[s] %texts%
  • %entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %texts%
Since: 2.3
Checks whether the given entities has the given scoreboard tags.

Examples:

if the targeted armor stand has the scoreboard tag "test tag":

Ignition Process

🔗
Patterns:
  • [creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) going to explode
  • [creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) in the (ignition|explosion) process
  • creeper[s] %living entities% ((is|are)|(isn't|is not|aren't|are not)) ignited
Since: 2.5
Requirements: Paper 1.13 or newer
Checks if a creeper is going to explode.

Examples:

if the last spawned creeper is going to explode:
    loop all players in radius 3 of the last spawned creeper
        send "RUN!!!" to the loop-player

Is Alive

🔗
Patterns:
  • %entities% (is|are) (alive|dead)
  • %entities% (isn't|is not|aren't|are not) (alive|dead)
Since: 2.0, 2.4-alpha4 (non-living entity support)
Checks whether an entity is alive. Works for non-living entities too.

Examples:

if {villager-buddy::%player's uuid%} is not dead:

on shoot:
    while the projectile is alive:

Is Banned

🔗
Patterns:
Since: 1.4
Checks whether a player or IP is banned.

Examples:

player is banned
victim is not IP-banned
"127.0.0.1" is banned

Is Block

🔗
Patterns:
  • %item types% (is|are) ([a] block|blocks)
  • %item types% (isn't|is not|aren't|are not) ([a] block|blocks)
Since: 2.4
Checks whether an item is a block.

Examples:

player's held item is a block
{list::*} are blocks

Is Block Redstone Powered

🔗
Patterns:
  • %blocks% (is|are) redstone powered
  • %blocks% (is|are) indirectly redstone powered
  • %blocks% (is|are)(n't| not) redstone powered
  • %blocks% (is|are)(n't| not) indirectly redstone powered
Since: 2.5
Checks if a block is indirectly or directly powered by redstone

Examples:

if clicked block is redstone powered:
    send "This block is well-powered by redstone!"
if clicked block is indirectly redstone powered:
    send "This block is indirectly redstone powered."

Is Blocking

🔗
Patterns:
  • %players% (is|are) (blocking|defending) [with [a] shield]
  • %players% (isn't|is not|aren't|are not) (blocking|defending) [with [a] shield]
Since: unknown (before 2.1)
Checks whether a player is blocking with their shield.

Examples:

on damage of player:
    victim is blocking
    damage attacker by 0.5 hearts

Is Burning

🔗
Patterns:
  • %entities% (is|are) (burning|ignited|on fire)
  • %entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)
Since: 1.4.4
Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava.

Examples:

# increased attack against burning targets
victim is burning:
    increase damage by 2

Is Charged

🔗
Patterns:
Since: 2.5
Checks if a creeper is charged (powered).

Examples:

if the last spawned creeper is charged:
    broadcast "A charged creeper is at %location of last spawned creeper%"

Is Edible

🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is edible.

Examples:

steak is edible
player's tool is edible

Is Empty

🔗
Patterns:
Since: unknown (before 2.1)
Checks whether an inventory, an inventory slot, or a text is empty.

Examples:

player's inventory is empty

Is Enchanted

🔗
Patterns:
Since: 1.4.6
Checks whether an item is enchanted.

Examples:

tool of the player is enchanted with efficiency 2
helm, chestplate, leggings or boots are enchanted

Is Flammable

🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is flammable.

Examples:

wood is flammable
player's tool is flammable

Is Flying

🔗
Patterns:
  • %players% (is|are) flying
  • %players% (isn't|is not|aren't|are not) flying
Since: 1.4.4
Checks whether a player is flying.

Examples:

player is not flying

Is Fuel

🔗
Patterns:
Since: 2.5.1
Requirements: Minecraft 1.11.2+
Checks whether an item can be used as fuel in a furnace.

Examples:

on right click on furnace:
    if player's tool is not fuel:
        send "Please hold a valid fuel item in your hand"
        cancel event

Is Holding

🔗
Patterns:
Since: 1.0
Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead.

Examples:

player is holding a stick
victim isn't holding a sword of sharpness

Is Incendiary

🔗
Patterns:
  • %entities% ((is|are) incendiary|cause[s] a[n] (incendiary|fiery) explosion)
  • %entities% ((is not|are not|isn't|aren't) incendiary|(does not|do not|doesn't|don't) cause[s] a[n] (incendiary|fiery) explosion)
  • the [event(-| )]explosion (is|(is not|isn't)) (incendiary|fiery)
Since: 2.5
Checks if an entity will create fire when it explodes. This condition is also usable in an explosion prime event.

Examples:

on explosion prime:
    if the explosion is fiery:
        broadcast "A fiery explosive has been ignited!"

Is Interactable

🔗
Patterns:
Since: 2.5.2
Requirements: Minecraft 1.13+
Checks wether or not a block is interactable.

Examples:

on block break:
    if event-block is interactable:
        cancel event
        send "You cannot break interactable blocks!"

Is Invulnerable

🔗
Patterns:
  • %entities% (is|are) invulnerable
  • %entities% (isn't|is not|aren't|are not) invulnerable
Since: 2.5
Checks whether an entity is invulnerable.

Examples:

target entity is invulnerable

Is Leashed

🔗
Patterns:
Since: 2.5
Checks to see if an entity is currently leashed.

Examples:

target entity is leashed

Is Loaded

🔗
Patterns:
Since: 2.3, 2.5 (revamp with chunk at location/coords)
Checks whether or not a chunk/world is loaded. 'chunk at 1, 1' uses chunk coords, which are location coords divided by 16.

Examples:

if chunk at {home::%player's uuid%} is loaded:
if chunk 1, 10 in world "world" is loaded:
if world("lobby") is loaded:

Is Member/Owner of Region

🔗
Patterns:
Since: 2.1
Checks whether a player is a member or owner of a particular region. This condition requires a supported regions plugin to be installed.

Examples:

on region enter:
    player is the owner of the region
    message "Welcome back to %region%!"
    send "%player% just entered %region%!" to all members of the region

Is Normalized

🔗
Patterns:
  • %vectors% (is|are) normalized
  • %vectors% (isn't|is not|aren't|are not) normalized
Since: 2.5.1
Requirements: Minecraft 1.13.2+
Checks whether a vector is normalized i.e. length of 1

Examples:

vector of player's location is normalized

Is Occluding

🔗
Patterns:
Since: 2.5.1
Checks whether an item is a block and completely blocks vision.

Examples:

player's tool is occluding

Is Online

🔗
Patterns:
Since: 1.4
Checks whether a player is online.

Examples:

player is online
player-argument is offline

Is Passable

🔗
Patterns:
  • %blocks% (is|are) passable
  • %blocks% (isn't|is not|aren't|are not) passable
Since: 2.5.1
Requirements: Minecraft 1.13.2+
Checks whether a block is passable. A block is passable if it has no colliding parts that would prevent players from moving through it. Blocks like tall grass, flowers, signs, etc. are passable, but open doors, fence gates, trap doors, etc. are not because they still have parts that can be collided with.

Examples:

if player's targeted block is passable

Is Plugin Enabled

🔗
Patterns:
  • plugin[s] %texts% (is|are) enabled
  • plugin[s] %texts% (is|are)(n't| not) enabled
  • plugin[s] %texts% (is|are) disabled
Since: 2.6
Check if a plugin is enabled/disabled on the server. Plugin names can be found in the plugin's 'plugin.yml' file or by using the '/plugins' command, they are NOT the name of the plugin's jar file. When checking if a plugin is not enabled, this will return true if the plugin is either disabled or not on the server. When checking if a plugin is disabled, this will return true if the plugin is on the server and is disabled.

Examples:

if plugin "Vault" is enabled:
if plugin "WorldGuard" is not enabled:
if plugins "Essentials" and "Vault" are enabled:
if plugin "MyBrokenPlugin" is disabled:

Is Poisoned

🔗
Patterns:
Since: 1.4.4
Checks whether an entity is poisoned.

Examples:

player is poisoned:
    cure the player from poison
    message "You have been cured!"

Is Riding

🔗
Patterns:
Since: 2.0
Tests whether an entity is riding another or is in a vehicle.

Examples:

player is riding a saddled pig

Is Riptiding

🔗
Patterns:
Since: 2.5
Checks to see if an entity is currently using the Riptide enchantment.

Examples:

target entity is riptiding

Is Script Loaded

🔗
Patterns:
  • script[s] [%texts%] (is|are) loaded
  • script[s] [%texts%] (isn't|is not|aren't|are not) loaded
Since: 2.2-dev31
Check if the current script, or another script, is currently loaded.

Examples:

script is loaded
script "example.sk" is loaded

Is Silent

🔗
Patterns:
Since: 2.5
Checks whether an entity is silent i.e. its sounds are disabled.

Examples:

target entity is silent

Is Sleeping

🔗
Patterns:
  • %players% (is|are) sleeping
  • %players% (isn't|is not|aren't|are not) sleeping
Since: 1.4.4
Checks whether a player is sleeping.

Examples:

# cut your enemies' throats in their sleep >=)
on attack:
    attacker is holding a sword
    victim is sleeping
    increase the damage by 1000

Is Slime Chunk

🔗
Patterns:
  • %chunk% (is|are) ([a] slime chunk|slime chunks|slimey)
  • %chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)
Since: 2.3
Tests whether a chunk is a so-called slime chunk. Slimes can generally spawn in the swamp biome and in slime chunks. For more info, see the Minecraft wiki.

Examples:

command /slimey:
    trigger:
        if chunk at player is a slime chunk:
            send "Yeah, it is!"
        else:
            send "Nope, it isn't"

Is Sneaking

🔗
Patterns:
  • %players% (is|are) sneaking
  • %players% (isn't|is not|aren't|are not) sneaking
Since: 1.4.4
Checks whether a player is sneaking.

Examples:

# prevent mobs from seeing sneaking players if they are at least 4 meters apart
on target:
    target is sneaking
    distance of target and the entity is bigger than 4
    cancel the event

Is Solid

🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is solid.

Examples:

grass block is solid
player's tool isn't solid

Is Sprinting

🔗
Patterns:
  • %players% (is|are) sprinting
  • %players% (isn't|is not|aren't|are not) sprinting
Since: 1.4.4
Checks whether a player is sprinting.

Examples:

player is not sprinting

Is Swimming

🔗
Patterns:
Since: 2.3
Requirements: 1.13 or newer
Checks whether a living entity is swimming.

Examples:

player is swimming

Is Tameable

🔗
Patterns:
Since: 2.5
Check if an entity is tameable.

Examples:

on damage:
    if victim is tameable:
        cancel event

Is Transparent

🔗
Patterns:
Since: 2.2-dev36
Checks whether an item is transparent. Note that this condition may not work for all blocks, due to the transparency list used by Spigot not being completely accurate.

Examples:

player's tool is transparent.

Is Unbreakable

🔗
Patterns:
Since: 2.5.1
Requirements: Minecraft 1.11+
Checks whether an item is unbreakable.

Examples:

if event-item is unbreakable

Is Wearing

🔗
Patterns:
Since: 1.0
Checks whether a player is wearing some armour.

Examples:

player is wearing an iron chestplate and iron leggings
player is wearing all diamond armour

Is Whitelisted

🔗
Patterns:
  • [the] server (is|is(n't| not)) white[ ]listed
  • %players% (is|are)[(n't| not)] white[ ]listed
Since: 2.5.2
Whether or not the server or a player is whitelisted.

Examples:

if server is whitelisted:
if player is whitelisted

Is a Skript command

🔗
Patterns:
  • %text% (is|are) [a] s(k|c)ript (command|cmd)
  • %text% (isn't|is not|aren't|are not) [a] s(k|c)ript (command|cmd)
Since: 2.6
Checks whether a command/string is a custom Skript command.

Examples:

# Example 1
on command:
    command is a skript command

# Example 2
"sometext" is a skript command

Is in World

🔗
Patterns:
Since: 1.4
Checks whether an entity is in a specific world.

Examples:

player is in "world"
argument isn't in world "world_nether"
the player is in the world of the victim

Is of Type

🔗
Patterns:
Since: 1.4
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').

Examples:

tool is of type {selected type}
victim is of type {villager type}

Is on Ground

🔗
Patterns:
  • %entities% (is|are) on [the] ground
  • %entities% (isn't|is not|aren't|are not) on [the] ground
Since: 2.2-dev26
Checks whether an entity is on ground.

Examples:

player is not on ground

Matches

🔗
Patterns:
  • %texts% (match[es]|do[es](n't| not) match) %texts%
  • %texts% (partially match[es]|do[es](n't| not) partially match) %texts%
Since: 2.5.2
Checks whether the defined strings match the input regexes (Regular expressions).

Examples:

on chat:
    if message partially matches "\d":
        send "Message contains a digit!"
    if message doesn't match "[A-Za-z]+":
        send "Message doesn't only contain letters!"

Projectile Can Bounce

🔗
Patterns:
Since: 2.5.1
Whether or not a projectile can bounce.

Examples:

on shoot:
    send "Boing!" to all players if projectile can bounce

PvP

🔗
Patterns:
  • (is PvP|PvP is) enabled [in %worlds%]
  • (is PvP|PvP is) disabled [in %worlds%]
Since: 1.3.4
Checks the PvP state of a world.

Examples:

PvP is enabled
PvP is disabled in "world"

Region Contains

🔗
Patterns:
Since: 2.1
Checks whether a location is contained in a particular region. This condition requires a supported regions plugin to be installed.

Examples:

player is in the region {regions::3}
on region enter:
    region contains {flags.%world%.red}
    message "The red flag is near!"

Resource Pack

🔗
Patterns:
Since: 2.4
Usable in events: resource pack request response
Checks state of the resource pack in a resource pack request response event.

Examples:

on resource pack response:
    if the resource pack wasn't accepted:
        kick the player due to "You have to install the resource pack to play in this server!"

Starts/Ends With

🔗
Patterns:
  • %texts% (start|end)[s] with %texts%
  • %texts% (doesn't|does not|do not|don't) (start|end) with %texts%
Since: 2.2-dev36, 2.5.1 (multiple strings support)
Checks if a text starts or ends with another.

Examples:

if the argument starts with "test" or "debug":
    send "Stop!"

Time

🔗
Patterns:
Since: 2.0
Tests whether a given real time was more or less than some time span ago.

Examples:

command /command-with-cooldown:
    trigger:
        {command::%player's uuid%::last-usage} was less than a minute ago:
            message "Please wait a minute between uses of this command."
            stop
        set {command::%player's uuid%::last-usage} to now
        # ... actual command trigger here ...

Weather

🔗
Patterns:
Since: 1.0
Checks whether the weather in a world is of a specific type. I welcome any ideas how to write this condition differently.

Examples:

is thundering
is raining in "world" or "world2"
\ No newline at end of file diff --git a/css/highlightjs.min.css b/css/highlightjs.min.css new file mode 100644 index 00000000000..e41d2e34833 --- /dev/null +++ b/css/highlightjs.min.css @@ -0,0 +1,2 @@ +/* Source: https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/styles/default.min.css */ +.hljs{display:block;overflow-x:auto;padding:.5em;background:#f0f0f0}.hljs,.hljs-subst{color:#444}.hljs-comment{color:#888}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#bc6060}.hljs-literal{color:#78a960}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/css/styles.css b/css/styles.css index 988261cef89..ceda06f36e9 100644 --- a/css/styles.css +++ b/css/styles.css @@ -1,252 +1,617 @@ +html { + scroll-behavior: smooth; +} + +::-webkit-scrollbar { + width: 5px; + height: 5px; +} + +::-webkit-scrollbar-track { + background-color: rgba(0, 0, 0, 0.03); + border-radius: 10px; +} + +::-webkit-scrollbar-thumb { + background-color: rgba(48, 48, 51, 0.2); + border-radius: 10px; +} + * { - margin: 0px; - padding: 0px; + margin: 0px; + padding: 0px; } body { - font-family: arial; - background-color: oldlace; - display: grid; - grid-template-rows: 100vh 100vh; - grid-template-columns: minmax(15em, 18em) minmax(80%, 100%); - overflow: hidden; + font-family: "Poppins", sans-serif; + background-color: oldlace; + display: grid; + /* + grid-template-rows: 100vh 100vh; + grid-template-columns: minmax(15em, 18em) minmax(80%, 100%); + */ + grid-template-columns: 16vw 84vw; + grid-template-rows: 55px 94vh; + overflow: hidden; +} + +.main-page { + grid-template-columns: 16vw 84vw; } a { - color: darkcyan; + color: darkcyan; + transition: all 0.1s; + text-decoration: none; +} + +a:hover { + color: rgb(0, 184, 184); } a:visited { - color: mediumorchid; + color: rgb(37, 89, 142); +} + + +/* Pattern right section list items */ + +.item-details:nth-child(1) ul li:nth-child(odd) { + background-color: rgba(0, 0, 0, 0.1); +} + +.item-details:nth-child(1) ul li:nth-child(even) { + background-color: rgba(0, 0, 0, 0.05); +} + +.no-list-style { + list-style: none; } #global-navigation { - grid-row-start: 1; - grid-row-end: 1; - grid-column-start: 2; - position: sticky; - top: 0em; - - background-color: tan; - padding: 1em; - padding-left: 0em; - height: 1.37em; - z-index: 9999; -} - -#global-navigation > a { - text-decoration: none; - color: #403200; - font-size: 120%; - font-weight: bold; + grid-row-start: 1; + grid-row-end: 1; + grid-column-start: 2; + position: sticky; + top: 0em; + background-color: #292929; + padding: 15px; + z-index: 100; + bottom: 0px; +} + +#global-navigation li { + display: inline; +} - padding: 0.8em; +#global-navigation a { + text-decoration: none; + color: #ffffff; + padding: 10px; + padding-bottom: 16px; + transition: all 0.1s; } -#global-navigation > a:hover { - color: black; - background-color: #c1a97c; +#global-navigation a:hover, +.active-tab { + color: #ffc107; + /*border-bottom: 3px solid #ff9800;*/ + box-shadow: inset 0 -3px 0 #ff9800; } #side-nav { - grid-row-start: 1; - grid-row-end: 1; - grid-column-start: 1; - grid-column-end: 1; - position: sticky; - top: 3.2em; + grid-row-start: 1; + grid-row-end: 1; + grid-column-start: 1; + grid-column-end: 1; + position: sticky; + top: 60px; + height: max-content; } #nav-title { - grid-row-start: 1; - grid-row-end: 1; - grid-column-start: 1; - grid-column-end: 1; - position: sticky; - top: 0em; - - text-decoration: none; - background-color: tan; - font-size: 130%; - font-weight: bold; + grid-row-start: 1; + grid-row-end: 1; + grid-column-start: 1; + grid-column-end: 1; + position: fixed; + border-left: solid 3px #ff9800; + text-decoration: none; + background-color: #353535; + font-size: 26px; + font-weight: bold; + color: #ff9800; + height: 35px; + padding: 10px; + padding-left: 25px; + z-index: 50; + transition: color 0.2s; + width: 100%; +} + +#nav-title { + font-size: clamp(1.25em, 1.35vw, 2em); +} - padding: 0.88em; - padding-top: 0.7em; - padding-left: 1em; - height: 1em; - z-index: 9999; +#nav-title:hover { + color: rgba(255, 152, 0, 0.9); } #nav-contents { - height: calc(100vh - 3.2em); - overflow: scroll; - overflow-x: hidden; - position: sticky; - top: 3.2em; + height: calc(100vh - 60px); + /* Fix the TOP css of #side-nav */ + width: 100%; + overflow: scroll; + overflow-x: hidden; + position: sticky; } #nav-contents > a { - display: inline-block; - width: 100%; - font-size: 110%; - background-color: navajowhite; - text-decoration: none; - color: #403200; + display: block; + font-size: 18px; + background-color: rgba(0, 0, 0, 0.03); + text-decoration: none; + color: #2f3e46; + margin: 6px 10px; + word-wrap: break-word; + padding: 5px 15px; + transition: background-color 0.1s, font 0.1s; + word-break: break-word; +} - padding: 0.3em; - padding-left: 1em; +#side-nav a:focus { + font-weight: bold; } -#nav-contents > a:hover { - color: black; - background-color: #c1a97c; +#nav-contents a:hover, +.active-item { + color: black; + background-color: rgba(0, 0, 0, 0.08); + border-left: solid 3px #ff9800; } #content { - grid-row-start: 1; - grid-row-end: 1; - grid-column-start: 2; - overflow: scroll; - overflow-x: hidden; - - padding: 0.22em; - position: sticky; - top: 3.3em; - height: calc(100vh - 3.6em); + grid-row-start: 1; + grid-row-end: 1; + grid-column-start: 2; + margin-left: 30px; + position: relative; + top: 110px; + height: calc(100vh - 110px); + /* Fixed the TOP CSS 110px due to body having overflow hidden and top = 110px so the last 110px is hidden, this will fix it */ + padding: 0.22em; + padding-right: 30px; + overflow-x: hidden; + overflow-y: scroll; } -#content > p { - margin-bottom: 0.7em; - max-width: 55em; +#content.no-left-panel { + grid-column-start: 1; + grid-column-end: none; + padding: 0 8vw; + margin-left: unset; +} + +#content-no-docs { + grid-row-start: 1; + grid-row-end: 1; + grid-column-start: 2; + margin-left: 30px; + position: relative; + top: 55px; + height: calc(100vh - 55px); + /* Fixed the TOP CSS 55px due to body having overflow hidden and top = 55px so the last 55px is hidden, this will fix it */ + padding: 0.22em; + padding-right: 30px; + overflow-x: hidden; + overflow-y: scroll; +} + +#content-no-docs.no-left-panel { + grid-column-start: 1; + grid-column-end: none; + padding: 0 8vw; + margin-left: unset; +} + +#side-nav.no-left-panel { + display: none; +} + +div p { + padding: 10px; } table { - width: 100%; - border-collapse: collapse; + width: 100%; + border-collapse: collapse; } .item-title { - font-size: 130%; - padding: 0.2em; - padding-top: 0.5em; - padding-left: 0.4em; - - color: #261908; + font-size: 14px; + font-weight: bold; + padding-bottom: 10px; + padding-top: 0.5em; + padding-left: 0; + color: #261908; } .item-title > a { - text-decoration: none; + text-decoration: none; + font-size: 100%; +} + +.item-content { + padding-bottom: 40px; + margin-bottom: 20px; + max-width: 80vw; + border-bottom: 1px solid rgba(0, 0, 0, 0.1); } .item-table-label { - background-color: burlywood; - border-color: burlywood; - border-style: solid; - border-right-style: none; - border-width: 1px; - - width: 10em; - padding: 0.3em; + background-color: #deb887; + text-align: center; + font-weight: bold; + color: rgba(0, 0, 0, 0.8); + width: 8em; + padding: 0.3em; +} + +.item-content .item-details:nth-child(odd) td:nth-child(2) { + background-color: rgba(0, 0, 0, 0.1); +} + +.item-content .item-details:nth-child(even) td:nth-child(2) { + background-color: rgba(0, 0, 0, 0.08); +} + + +/* OVERRIDE */ + +.item-content .item-details:nth-child(1) td:nth-child(1) { + background-color: rgba(185, 183, 180, .6); +} + +.item-content .item-details:nth-child(1) td:nth-child(2) { + background-color: unset; +} + + +/* OVERRIDE */ + +.item-content .item-details:nth-child(odd) .item-table-label { + background-color: rgba(185, 183, 180, .6); +} + +.item-content .item-details:nth-child(even) .item-table-label { + background-color: rgba(181, 180, 178, 0.45); } .item-details { - display: block; - border-collapse: collapse; + border-collapse: collapse; + width: 80vw; + max-width: 80vw; } -.item-details td:nth-child(2) { - border-style: solid; - border-left-style: none; - border-color: burlywood; - border-width: 1px; - width: 80%; - max-width: 20em; - padding-left: 0.2em; +.item-content tr:nth-child(1n + 2) td:nth-child(2) { + /* 1n+2 will choose all elements excpet the first */ + padding: 8px; + font-weight: 500; + color: rgba(0,0,0,.65); } .noleftpad { - padding-left: 0em !important; + padding-left: 0em !important; } td ul { - padding: 0em; - list-style-type: none; + padding: 0em; + list-style-type: none; } .item-description { - margin-top: 0.2em; - width: 82.5%; - max-width: 55em; - - line-height: 120%; - letter-spacing: 0.04px; - text-rendering: optimizelegibility; + padding: 15px; + background-color: rgba(217, 211, 204, 0.4); } .item-description > p { - margin-top: 0.7em; + margin-top: 0.7em; } .skript-code-block { - padding: 0.52em; - font-family: monospace; - width: 82.5%; - max-width: 69.6em; - background-color: gainsboro; + padding: 6px; + font-family: "Source Code Pro", monospace; } -.skript-code-block > a { - text-decoration: none; +.item-examples p { + background-color: rgb(255, 152, 0); + border-left: 3px solid rgba(255, 152, 0, 0.5); + padding: 5px; + color: rgba(0, 0, 0, 0.8); + width: max-content; + margin-top: 25px; } -ul > .skript-code-block { - width: 98.4%; +.item-examples .skript-code-block { + background-color: rgba(0, 0, 0, 0.08); + visibility: visible; + font-family: "Source Code Pro", monospace; + font-weight: 400; } -.item-examples { - padding-top: 0.5em; +.skript-code-block > a { + text-decoration: none; } .item-examples > .skript-code-block { - margin-left: 0.15em; - margin-top: 0.3em; + border-left: solid 3px #ff9800; + padding: 30px; + font-size: 0.9em; +} + +.box-title { + background-color: #ff9800; + width: max-content; + padding: 5px; + padding-right: 7px; + margin-top: 20px; + color: rgba(0, 0, 0, 0.8); } .box { - border-style: solid; - border-color: burlywood; - border-width: 2px; - border-top-width: 1em; - border-radius: 3px; - padding: 0.8em; - - background-color: wheat; -} - -@media (max-width: 600px) { - body { - grid-template-columns: 0px minmax(80%, 100%); - } - - #global-navigation { - height: 4.1em; - display: flex; - flex-wrap: wrap; - } - #global-navigation > a { - padding: 0.2em; - padding-top: 0.1em; - padding-bottom: 0.1em; - } - - #nav-title { - display: none; - } - #side-nav { - display: none; - } - - #content { - top: 5.63em; - } + border-left: 3px solid #ff9800; + padding: 15px; + background-color: rgba(0, 0, 0, 0.1) !important; + margin-bottom: 10px; } + +.box-title-red { + background-color: #ff4e4e; + width: max-content; + padding: 5px; + padding-right: 7px; + margin-top: 20px; + color: white; + font-weight: bold; +} + +.box-red { + border-left: 3px solid #ff4e4e; + padding: 15px; + background-color: rgba(0, 0, 0, 0.1); + margin-bottom: 10px; +} + +@media (max-width: 768px) { + body { + grid-template-columns: 20% minmax(80%, 100%); + } + + #nav-contents { + margin-top: 100px; + } + + #content { + padding-top: 0px !important; + margin-top: 50px; + margin-left: 10px; + /* !important to override home */ + } + + #global-navigation { + height: calc(4.1em + 2px); + /* +2px due to 18px padding botton not 16px */ + display: flex; + flex-wrap: wrap; + } + + #global-navigation > li { + padding-bottom: 18px; + } + + #global-navigation > a { + padding: 10px; + padding-top: 0.1em; + padding-bottom: 0.1em; + } + + #nav-contents > a { + font-size: 12px; + } + + .item-description { + font-size: 14px; + } + .item-table-label { + width: 5em; + } + + #search-bar { + top: calc(4.1em + 24px) !important; + } +} + +@media (max-width: 1024px) { + body { + grid-template-columns: 20% minmax(80%, 100%); + } + + #global-navigation > a { + padding: 10px; + padding-top: 0.1em; + padding-bottom: 0.1em; + } +} + +@media (max-width: 1200px) { + body { + grid-template-columns: 20% minmax(80%, 100%); + } + + #global-navigation li { + white-space: nowrap; + } + + #global-navigation { + display: flex; + } + + #global-navigation { + grid-column-start: 1; + grid-column-end: none; + } + + #global-navigation > a { + padding: 10px; + padding-top: 0.1em; + padding-bottom: 0.1em; + } + + #nav-title { + display: none; + } + + #search-bar { + left: 20% !important; + } +} + +.title { + margin-top: 32px; +} + +.subtitle { + padding-left: 20px !important; +} + +.left-margin { + margin-left: 20px !important; +} + +.colors-table { + width: 75%; + margin: 32px auto; + border-collapse: collapse; + font-size: 0.9em; + font-family: "Poppins", sans-serif; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); + /*border-radius: 5px;*/ +} + +.colors-table th, +.colors-table td { + padding: 12px 15px; +} + +.colors-table tbody tr { + border-bottom: 1px solid #dddddd; +} + +.colors-table tbody tr:nth-of-type(even) { + background-color: rgba(0, 0, 0, 0.02); +} + +.colors-table tbody tr:last-of-type { + border-bottom: 2px solid #ff9800; +} + +ol.custom-list { + margin-left: 16px; + list-style: none; + counter-reset: my-awesome-counter; +} + +ol.custom-list li { + counter-increment: my-awesome-counter; +} + +ol.custom-list li::before { + content: counter(my-awesome-counter) ". "; + font-weight: bold; +} + +code { + font-family: "Source Code Pro", monospace; +} + +pre { + font-family: "Source Code Pro", monospace; +} + +#notification-box { + background-color: rgb(36, 36, 36); + border-radius: 15px; + box-shadow: 0px 3px 10px 0px rgba(0, 0, 0, .2); + text-align: center; + color: rgb(40, 236, 40); + font-weight: bold; + transition: all .2s; + /*transition-delay: .3s;*/ + opacity: 0; + position: fixed; + left: 50%; + top: 92%; + padding: 10px; + transform: translate(-50%, -50%); +} + +.activate-notification { + opacity: 1 !important; + transform: translateY(-20px); +} + +.grid-container { + width: 100%; + display: inline-grid; + grid-template-columns: calc(33% - 1.7%) calc(33% - 1.7%) calc(33% - 1.7%); + grid-column-gap: 3%; + overflow: hidden; +} + +.link { + display: inline-block; +} + +.padding { + padding: 32px 0; +} + +.bottom-padding { + padding-bottom: 32px; +} + +.bottom-padding { + padding-bottom: 32px; +} + +.top-padding { + padding-top: 32px; +} + +.top-padding-2 { + padding-top: 64px; +} + +#search-bar { + padding: 12px; + border: none; + font-size: 18px; + position: fixed; + background: white; + width: calc(100% - 5px); /* -5px for the scrollbar */ + left: 16vw; + top: 55px; + box-shadow: 0 3px 5px 0 rgba(0, 0, 0, .05); +} + +#search-bar:focus { + outline: none; +} + +.pre { + white-space: pre; +} + +.pre-wrap { + white-space: pre-wrap; +} \ No newline at end of file diff --git a/docs.json b/docs.json index 6b6883676de..beee63091bb 100644 --- a/docs.json +++ b/docs.json @@ -1,5 +1,5 @@ { - "skriptVersion" : "2.6-beta1", + "skriptVersion" : "2.6-beta3", "classes" : [ { @@ -12,7 +12,7 @@ ], "since" : "2.5", "description" : "Represents the type of an attribute. Note that this type does not contain any numerical values.See attribute types for more info.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "biome", @@ -30,19 +30,20 @@ "id" : "block", "name" : "Block", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "1.0", "description" : "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.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "blockdata", "name" : "Block Data", "patterns" : [ - + "Missing patterns.", + "pattern_end" ], "since" : "2.5", @@ -62,7 +63,7 @@ "examples" : "set {config.%player%.use mod} to false" }, { - "id" : "cattype", + "id" : "CatType", "name" : "Cat Type", "patterns" : [ "tabby, black, red, siamese, british shorthair, calico, persian, ragdoll, white, jellie, all black", @@ -71,19 +72,19 @@ ], "since" : "2.4", "description" : "Represents the race/type of a cat entity.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "chunk", "name" : "Chunk", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "2.0", "description" : "A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "clicktype", @@ -95,7 +96,7 @@ ], "since" : "2.2-dev16b, 2.2-dev35 (renamed to click type)", "description" : "Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "color", @@ -105,7 +106,7 @@ "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "Wool, dye and chat colours.", "examples" : "color of the sheep is red or black\\nset the colour of the block to green\\nmessage \"You're holding a <%color of tool%>%color of tool% wool block\"" }, @@ -113,14 +114,14 @@ "id" : "commandsender", "name" : "Command Sender", "patterns" : [ - "use <a href='expressions.html#LitConsole'>the console</a> for the console", -"see <a href='#player'>player</a> for players.", + "use the console for the console", +"see player for players.", "pattern_end" ], "since" : "1.0", "description" : "A player or the console.", - "examples" : "on command /pm:\\n command sender is not the console\\n chance of 10%\\n give coal to the player\\n message \"You got a piece of coal for sending that PM!\"" + "examples" : "command /push [<player>]:\\n trigger:\\n if arg-1 is not set:\\n if command sender is console:\\n send \"You can't push yourself as a console :\\\" to sender\\n stop\\n push sender upwards with force 2\\n send \"Yay!\"\\n else:\\n push arg-1 upwards with force 2\\n send \"Yay!\" to sender and arg-1" }, { "id" : "damagecause", @@ -132,13 +133,13 @@ ], "since" : "2.0", "description" : "The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc.\\nPlease 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.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "date", "name" : "Date", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], @@ -156,13 +157,13 @@ ], "since" : "2.3", "description" : "The difficulty of a world.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "direction", "name" : "Direction", "patterns" : [ - "see <a href='../expressions.html#ExprDirection'>direction (expression)</a>", + "see direction (expression)", "pattern_end" ], @@ -180,13 +181,14 @@ ], "since" : "1.4.6", "description" : "An enchantment, e.g. 'sharpness' or 'fortune'. Unlike enchantment type this type has no level, but you usually don't need to use this type anyway.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "enchantmentoffer", "name" : "Enchantment Offer", "patterns" : [ - + "Missing patterns.", + "pattern_end" ], "since" : "2.5", @@ -197,7 +199,7 @@ "id" : "enchantmenttype", "name" : "Enchantment Type", "patterns" : [ - "<code>&lt;enchantment&gt; [&lt;level&gt;]</code>", + "<enchantment> [<level>]", "pattern_end" ], @@ -221,7 +223,7 @@ "id" : "entitydata", "name" : "Entity Type", "patterns" : [ - "<i>Detailed usage will be added eventually</i>", + "Detailed usage will be added eventually", "pattern_end" ], @@ -233,7 +235,7 @@ "id" : "entitytype", "name" : "Entity Type with Amount", "patterns" : [ - "&lt;<a href='#number'>number</a>&gt; &lt;entity type&gt;", + "<number> <entity type>", "pattern_end" ], @@ -245,7 +247,7 @@ "id" : "experience", "name" : "Experience", "patterns" : [ - "<code>[&lt;number&gt;] ([e]xp|experience [point[s]])</code>", + "[<number>] ([e]xp|experience [point[s]])", "pattern_end" ], @@ -257,7 +259,8 @@ "id" : "fireworkeffect", "name" : "Firework Effect", "patterns" : [ - + "Missing patterns.", + "pattern_end" ], "since" : "2.4", @@ -265,7 +268,7 @@ "examples" : "launch flickering trailing burst firework colored blue and green at player\\nlaunch trailing flickering star coloured purple, yellow, blue, green and red fading to pink at target entity\\nlaunch ball large coloured red, purple and white fading to light green and black at player's location with duration 1" }, { - "id" : "fireworktype", + "id" : "FireworkType", "name" : "Firework Type", "patterns" : [ "ball, large ball, star, burst, creeper", @@ -274,7 +277,7 @@ ], "since" : "2.4", "description" : "The type of a fireworkeffect.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "gamemode", @@ -298,19 +301,19 @@ ], "since" : "2.5", "description" : "A gamerule", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "gamerulevalue", "name" : "Gamerule Value", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "2.5", "description" : "A wrapper for the value of a gamerule for a world.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "gene", @@ -322,7 +325,7 @@ ], "since" : "2.4", "description" : "Represents a Panda's main or hidden gene. See genetics for more info.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "healreason", @@ -334,19 +337,19 @@ ], "since" : "2.5", "description" : "The heal reason in a heal event.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "inventory", "name" : "Inventory", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "1.0", "description" : "An inventory of a player or block. Inventories have many effects and conditions regarding the items contained.\\nAn 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).", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "inventoryaction", @@ -358,17 +361,17 @@ ], "since" : "2.2-dev16", "description" : "What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "slot", "name" : "Inventory Slot", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. \\nThe 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).\\nPlease 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.", "examples" : "set tool of player to dirt\\ndelete helmet of the victim\\nset the colour of the player's tool to green\\nenchant the player's chestplate with projectile protection 5" }, @@ -382,13 +385,13 @@ ], "since" : "2.2-dev32", "description" : "Minecraft has several different inventory types with their own use cases.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "itemstack", "name" : "Item / Material", "patterns" : [ - "<code>[&lt;number&gt; [of]] &lt;alias&gt; [of &lt;enchantment&gt; &lt;level&gt;]</code>, Where &lt;alias&gt; must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')", + "[<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')", "pattern_end" ], @@ -400,7 +403,7 @@ "id" : "itemtype", "name" : "Item Type", "patterns" : [ - "<code>[&lt;number&gt; [of]] [all/every] &lt;alias&gt; [of &lt;enchantment&gt; [&lt;level&gt;] [,/and &lt;more enchantments...&gt;]]</code>", + "[<number> [of]] [all/every] <alias> [of <enchantment> [<level>] [,/and <more enchantments...>]]", "pattern_end" ], @@ -412,7 +415,7 @@ "id" : "livingentity", "name" : "Living Entity", "patterns" : [ - "see <a href='#entity'>entity</a>, but ignore inanimate objects", + "see entity, but ignore inanimate objects", "pattern_end" ], @@ -424,19 +427,20 @@ "id" : "location", "name" : "Location", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "1.0", "description" : "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.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "metadataholder", "name" : "Metadata Holder", "patterns" : [ - + "Missing patterns.", + "pattern_end" ], "since" : "2.2-dev36", @@ -447,7 +451,7 @@ "id" : "money", "name" : "Money", "patterns" : [ - "<code>&lt;number&gt; $</code> or <code>$ &lt;number&gt;</code>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'", + "<number> $ or $ <number>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'", "pattern_end" ], @@ -459,7 +463,7 @@ "id" : "number", "name" : "Number", "patterns" : [ - "[-]###[.###]</code> (any amount of digits; very large numbers will be truncated though)", + "[-]###[.###] (any amount of digits; very large numbers will be truncated though)", "pattern_end" ], @@ -471,37 +475,37 @@ "id" : "object", "name" : "Object", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "1.0", "description" : "The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "offlineplayer", "name" : "Offline Player", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "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.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "player", "name" : "Player", "patterns" : [ - "", + "Missing patterns.", "pattern_end" ], "since" : "1.0", "description" : "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 their inventory) on an offline player.\\nYou 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.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "potioneffect", @@ -513,7 +517,7 @@ ], "since" : "2.5.2", "description" : "A potion effect, including the potion effect type, tier and duration.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "potioneffecttype", @@ -523,7 +527,7 @@ "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "A potion effect type, e.g. 'strength' or 'swiftness'.", "examples" : "apply swiftness 5 to the player\\napply potion of speed 2 to the player for 60 seconds\\nremove invisibility from the victim" }, @@ -543,13 +547,13 @@ "id" : "region", "name" : "Region", "patterns" : [ - ""region name"", + ""region name"", "pattern_end" ], "since" : "2.1", "description" : "A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones.\\nPlease note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like \"region name\" in scripts may or may not work.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "resourcepackstate", @@ -561,18 +565,19 @@ ], "since" : "2.4", "description" : "The state in a resource pack request response event.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "cachedservericon", "name" : "Server Icon", "patterns" : [ - + "Missing patterns.", + "pattern_end" ], "since" : "2.3", "description" : "A server icon that was loaded using the load server icon effect.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "soundcategory", @@ -584,19 +589,19 @@ ], "since" : "2.4", "description" : "The category of a sound, they are used for sound options of Minecraft. See the play sound and stop sound effects.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "spawnreason", "name" : "Spawn Reason", "patterns" : [ - "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, explosion, raid, patrol, beehive, piglin zombification, command, customized, default", + "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, explosion, raid, patrol, beehive, piglin zombification, spawn reasons.frozen, command, customized, default", "pattern_end" ], "since" : "2.3", "description" : "The spawn reason in a spawn event.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "teleportcause", @@ -608,16 +613,16 @@ ], "since" : "2.2-dev35", "description" : "The teleport cause in a teleport event.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "string", "name" : "Text", "patterns" : [ - "simple: "..."", -"quotes: "...""..."", -"expressions: "...%expression%..."", -"percent signs: "...%%..."", + "simple: "..."", +"quotes: "...""..."", +"expressions: "...%expression%..."", +"percent signs: "...%%..."", "pattern_end" ], @@ -629,8 +634,8 @@ "id" : "time", "name" : "Time", "patterns" : [ - "<code>##:##</code>", -"<code>##[:##][ ]am/pm</code>", + "##:##", +"##[:##][ ]am/pm", "pattern_end" ], @@ -642,7 +647,7 @@ "id" : "timeperiod", "name" : "Timeperiod", "patterns" : [ - "<code>##:## - ##:##</code>", + "##:## - ##:##", "dusk/day/dawn/night", "pattern_end" @@ -655,8 +660,8 @@ "id" : "timespan", "name" : "Timespan", "patterns" : [ - "<code>&lt;number&gt; [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] &lt;more...&gt;</code>]", -"<code>[###:]##:##[.####]</code> ([hours:]minutes:seconds[.milliseconds])", + "<number> [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] <more...>]", +"[###:]##:##[.####] ([hours:]minutes:seconds[.milliseconds])", "pattern_end" ], @@ -668,12 +673,12 @@ "id" : "structuretype", "name" : "Tree Type", "patterns" : [ - "<code>[any] &lt;general tree/mushroom type&gt;</code>, e.g. tree/any jungle tree/etc.", -"<code>&lt;specific tree/mushroom species&gt;</code>, e.g. red mushroom/small jungle tree/big regular tree/etc.", + "[any] <general tree/mushroom type>, e.g. tree/any jungle tree/etc.", +"<specific tree/mushroom species>, e.g. red mushroom/small jungle tree/big regular tree/etc.", "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect.", "examples" : "grow any regular tree at the block\\ngrow a huge red mushroom above the block" }, @@ -699,7 +704,7 @@ ], "since" : "2.2-dev23", "description" : "Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "visualeffect", @@ -729,7 +734,7 @@ "id" : "world", "name" : "World", "patterns" : [ - "<code>"world_name"</code>, e.g. "world"", + ""world_name", e.g. "world"", "pattern_end" ], @@ -746,8 +751,8 @@ "id" : "CondAlphanumeric", "name" : "Alphanumeric", "patterns" : [ - "%texts% (is|are) alphanumeric", -"%texts% (isn't|is not|aren't|are not) alphanumeric", + "%texts% (is|are) alphanumeric", +"%texts% (isn't|is not|aren't|are not) alphanumeric", "pattern_end" ], @@ -759,22 +764,22 @@ "id" : "CondCanBuild", "name" : "Can Build", "patterns" : [ - "%players% (can|(is|are) allowed to) build %directions% %locations%", -"%players% (can('t|not)|(is|are)(n't| not) allowed to) build %directions% %locations%", + "%players% (can|(is|are) allowed to) build %directions% %locations%", +"%players% (can('t|not)|(is|are)(n't| not) allowed to) build %directions% %locations%", "pattern_end" ], "since" : "2.0", "description" : "Tests whether a player is allowed to build at a certain location. This condition requires a supported regions plugin to be installed.", - "examples" : "command /setblock :\\n description: set the block at your crosshair to a different type\\n trigger:\\n player cannot build at the targeted block:\\n message \"You do not have permission to change blocks there!\"\\n stop\\n set the targeted block to argument" + "examples" : "command /setblock <material>:\\n description: set the block at your crosshair to a different type\\n trigger:\\n player cannot build at the targeted block:\\n message \"You do not have permission to change blocks there!\"\\n stop\\n set the targeted block to argument" }, { "id" : "CondCanFly", "name" : "Can Fly", "patterns" : [ - "%players% can fly", -"%players% (can't|cannot|can not) fly", + "%players% can fly", +"%players% (can't|cannot|can not) fly", "pattern_end" ], @@ -786,8 +791,8 @@ This condition requires a supported regions "id" : "CondCanHold", "name" : "Can Hold", "patterns" : [ - "%inventories% (can hold|ha(s|ve) [enough] space (for|to hold)) %item types%", -"%inventories% (can(no|')t hold|(ha(s|ve) not|ha(s|ve)n't|do[es]n't have) [enough] space (for|to hold)) %item types%", + "%inventories% (can hold|ha(s|ve) [enough] space (for|to hold)) %item types%", +"%inventories% (can(no|')t hold|(ha(s|ve) not|ha(s|ve)n't|do[es]n't have) [enough] space (for|to hold)) %item types%", "pattern_end" ], @@ -799,22 +804,22 @@ This condition requires a supported regions "id" : "CondCanSee", "name" : "Can See", "patterns" : [ - "%players% (is|are) [(in)]visible for %players%", -"%players% can see %players%", -"%players% (is|are)(n't| not) [(in)]visible for %players%", -"%players% can('t| not) see %players%", + "%players% (is|are) [(in)]visible for %players%", +"%players% can see %players%", +"%players% (is|are)(n't| not) [(in)]visible for %players%", +"%players% can('t| not) see %players%", "pattern_end" ], "since" : "2.3", "description" : "Checks whether the given players can see another players.", - "examples" : "if the player can't see the player-argument:\\n message \"The player %player-argument% is not online!\"" + "examples" : "if the player can't see the player-argument:\\n message \"<light red>The player %player-argument% is not online!\"" }, { "id" : "CondChance", "name" : "Chance", "patterns" : [ - "chance of %number%[\\%]", + "chance of %number%[(\\%)]", "pattern_end" ], @@ -827,30 +832,30 @@ Valid values are between 0% and 100%, or if the percent sign is omitted between "id" : "CondCompare", "name" : "Comparison", "patterns" : [ - "[neither] %objects% ((is|are)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above)|\\>) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|\\>=) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) ((less|smaller|lower) than|below)|\\<) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) (less|smaller|lower|below) [than] or (equal to|the same as)|\\<=) %objects%", -"[neither] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%", -"[neither] %objects% (is|are|=) [(equal to|the same as)] %objects%", -"[neither] %objects% (is|are) between %objects% and %objects%", -"[neither] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) ((less|smaller|lower) than|below) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%", -"[neither] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%", -"[neither] %objects% (was|were) [(equal to|the same as)] %objects%", -"[neither] %objects% (was|were) between %objects% and %objects%", -"[neither] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%", -"[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%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller|lower) than|below) %objects%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%", -"[neither] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%", -"[neither] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%", -"[neither] %objects% will be between %objects% and %objects%", -"[neither] %objects% (will not be|won't be) between %objects% and %objects%", + "[(neither)] %objects% ((is|are)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above)|>) %objects%", +"[(neither)] %objects% ((is|are)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|>=) %objects%", +"[(neither)] %objects% ((is|are)[(n't| not| neither)] ((less|smaller|lower) than|below)|<) %objects%", +"[(neither)] %objects% ((is|are)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as)|<=) %objects%", +"[(neither)] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%", +"[(neither)] %objects% (is|are|=) [(equal to|the same as)] %objects%", +"[(neither)] %objects% (is|are) between %objects% and %objects%", +"[(neither)] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%", +"[(neither)] %objects% (was|were)[(n't| not| neither)] ((greater|more|higher|bigger|larger) than|above) %objects%", +"[(neither)] %objects% (was|were)[(n't| not| neither)] (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%", +"[(neither)] %objects% (was|were)[(n't| not| neither)] ((less|smaller|lower) than|below) %objects%", +"[(neither)] %objects% (was|were)[(n't| not| neither)] (less|smaller|lower|below) [than] or (equal to|the same as) %objects%", +"[(neither)] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%", +"[(neither)] %objects% (was|were) [(equal to|the same as)] %objects%", +"[(neither)] %objects% (was|were) between %objects% and %objects%", +"[(neither)] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%", +"[(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%", +"[(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%", +"[(neither)] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller|lower) than|below) %objects%", +"[(neither)] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|lower|below) [than] or (equal to|the same as) %objects%", +"[(neither)] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%", +"[(neither)] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%", +"[(neither)] %objects% will be between %objects% and %objects%", +"[(neither)] %objects% (will not be|won't be) between %objects% and %objects%", "pattern_end" ], @@ -863,10 +868,10 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondContains", "name" : "Contains", "patterns" : [ - "%inventories% (has|have) %item types% [in [(the[ir]|his|her|its)] inventory]", -"%inventories% (doesn't|does not|do not|don't) have %item types% [in [(the[ir]|his|her|its)] inventory]", -"%inventories/texts/objects% contain[(s)] %item types/texts/objects%", -"%inventories/texts/objects% (doesn't|does not|do not|don't) contain %item types/texts/objects%", + "%inventories% (has|have) %item types% [in [(the[ir]|his|her|its)] inventory]", +"%inventories% (doesn't|does not|do not|don't) have %item types% [in [(the[ir]|his|her|its)] inventory]", +"%inventories/texts/objects% contain[(s)] %item types/texts/objects%", +"%inventories/texts/objects% (doesn't|does not|do not|don't) contain %item types/texts/objects%", "pattern_end" ], @@ -878,7 +883,7 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondDamageCause", "name" : "Damage Cause", "patterns" : [ - "[the] damage (was|is|has)[(n('|o)]t) [been] (caused|done|made) by %damage cause%", + "[the] damage (was|is|has)[n('|o)t] [been] (caused|done|made) by %damage cause%", "pattern_end" ], @@ -903,8 +908,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsSet", "name" : "Exists/Is Set", "patterns" : [ - "%~objects% (exist[s]|(is|are) set)", -"%~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)", + "%~objects% (exist[s]|(is|are) set)", +"%~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)", "pattern_end" ], @@ -916,8 +921,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondAI", "name" : "Has AI", "patterns" : [ - "%living entities% (has|have) (ai|artificial intelligence)", -"%living entities% (doesn't|does not|do not|don't) have (ai|artificial intelligence)", + "%living entities% (has|have) (ai|artificial intelligence)", +"%living entities% (doesn't|does not|do not|don't) have (ai|artificial intelligence)", "pattern_end" ], @@ -929,8 +934,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondHasClientWeather", "name" : "Has Client Weather", "patterns" : [ - "%players% (has|have) [a] (client|custom) weather [set]", -"%players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]", + "%players% (has|have) [a] (client|custom) weather [set]", +"%players% (doesn't|does not|do not|don't) have [a] (client|custom) weather [set]", "pattern_end" ], @@ -942,8 +947,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondHasCustomModelData", "name" : "Has Custom Model Data", "patterns" : [ - "%item types% (has|have) [custom] model data", -"%item types% (doesn't|does not|do not|don't) have [custom] model data", + "%item types% (has|have) [custom] model data", +"%item types% (doesn't|does not|do not|don't) have [custom] model data", "pattern_end" ], @@ -955,8 +960,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondHasMetadata", "name" : "Has Metadata", "patterns" : [ - "%metadata holders% (has|have) metadata [(value|tag)[s]] %texts%", -"%metadata holders% (doesn't|does not|do not|don't) have metadata [(value|tag)[s]] %texts%", + "%metadata holders% (has|have) metadata [(value|tag)[s]] %texts%", +"%metadata holders% (doesn't|does not|do not|don't) have metadata [(value|tag)[s]] %texts%", "pattern_end" ], @@ -968,8 +973,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondPermission", "name" : "Has Permission", "patterns" : [ - "%players/console% (has|have) [the] permission[s] %texts%", -"%players/console% (doesn't|does not|do not|don't) have [the] permission[s] %texts%", + "%players/console% (has|have) [the] permission[s] %texts%", +"%players/console% (doesn't|does not|do not|don't) have [the] permission[s] %texts%", "pattern_end" ], @@ -981,8 +986,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondPlayedBefore", "name" : "Has Played Before", "patterns" : [ - "%offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)", -"%offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)", + "%offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)", +"%offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)", "pattern_end" ], @@ -994,8 +999,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondHasResourcePack", "name" : "Has Resource Pack", "patterns" : [ - "%players% (has|have) [a] resource pack [(loaded|installed)]", -"%players% (doesn't|does not|do not|don't) have [a] resource pack [(loaded|installed)]", + "%players% (has|have) [a] resource pack [(loaded|installed)]", +"%players% (doesn't|does not|do not|don't) have [a] resource pack [(loaded|installed)]", "pattern_end" ], @@ -1007,8 +1012,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondHasScoreboardTag", "name" : "Has Scoreboard Tag", "patterns" : [ - "%entities% (has|have) [the] score[ ]board tag[s] %texts%", -"%entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %texts%", + "%entities% (has|have) [the] score[ ]board tag[s] %texts%", +"%entities% (doesn't|does not|do not|don't) have [the] score[ ]board tag[s] %texts%", "pattern_end" ], @@ -1020,9 +1025,9 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIgnitionProcess", "name" : "Ignition Process", "patterns" : [ - "[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) going to explode", -"[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) in the (ignition|explosion) process", -"creeper[s] %living entities% ((is|are)|(isn't|is not|aren't|are not)) ignited", + "[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) going to explode", +"[creeper[s]] %living entities% ((is|are)|(isn't|is not|aren't|are not)) in the (ignition|explosion) process", +"creeper[s] %living entities% ((is|are)|(isn't|is not|aren't|are not)) ignited", "pattern_end" ], @@ -1034,8 +1039,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsAlive", "name" : "Is Alive", "patterns" : [ - "%entities% (is|are) (alive|dead)", -"%entities% (isn't|is not|aren't|are not) (alive|dead)", + "%entities% (is|are) (alive|dead)", +"%entities% (isn't|is not|aren't|are not) (alive|dead)", "pattern_end" ], @@ -1047,10 +1052,10 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsBanned", "name" : "Is Banned", "patterns" : [ - "%offline players/texts% (is|are) banned", -"%players/texts% [(is|are) IP(-| )]banned", -"%offline players/texts% (isn't|is not|aren't|are not) banned", -"%players/texts% [(isn't|is not|aren't|are not) IP(-| )]banned", + "%offline players/texts% (is|are) banned", +"%players/texts% (is|are) IP[(-| )]banned", +"%offline players/texts% (isn't|is not|aren't|are not) banned", +"%players/texts% (isn't|is not|aren't|are not) IP[(-| )]banned", "pattern_end" ], @@ -1062,8 +1067,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsBlock", "name" : "Is Block", "patterns" : [ - "%item types% (is|are) ([a] block|blocks)", -"%item types% (isn't|is not|aren't|are not) ([a] block|blocks)", + "%item types% (is|are) ([a] block|blocks)", +"%item types% (isn't|is not|aren't|are not) ([a] block|blocks)", "pattern_end" ], @@ -1075,10 +1080,10 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsBlockRedstonePowered", "name" : "Is Block Redstone Powered", "patterns" : [ - "%blocks% (is|are) redstone powered", -"%blocks% (is|are) indirectly redstone powered", -"%blocks% (is|are)(n't| not) redstone powered", -"%blocks% (is|are)(n't| not) indirectly redstone powered", + "%blocks% (is|are) redstone powered", +"%blocks% (is|are) indirectly redstone powered", +"%blocks% (is|are)(n't| not) redstone powered", +"%blocks% (is|are)(n't| not) indirectly redstone powered", "pattern_end" ], @@ -1090,8 +1095,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsBlocking", "name" : "Is Blocking", "patterns" : [ - "%players% (is|are) (blocking|defending) [with [a] shield]", -"%players% (isn't|is not|aren't|are not) (blocking|defending) [with [a] shield]", + "%players% (is|are) (blocking|defending) [with [a] shield]", +"%players% (isn't|is not|aren't|are not) (blocking|defending) [with [a] shield]", "pattern_end" ], @@ -1103,8 +1108,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsBurning", "name" : "Is Burning", "patterns" : [ - "%entities% (is|are) (burning|ignited|on fire)", -"%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)", + "%entities% (is|are) (burning|ignited|on fire)", +"%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)", "pattern_end" ], @@ -1116,8 +1121,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsCharged", "name" : "Is Charged", "patterns" : [ - "%living entities% (is|are) (charged|powered)", -"%living entities% (isn't|is not|aren't|are not) (charged|powered)", + "%living entities% (is|are) (charged|powered)", +"%living entities% (isn't|is not|aren't|are not) (charged|powered)", "pattern_end" ], @@ -1129,8 +1134,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsEdible", "name" : "Is Edible", "patterns" : [ - "%item types% (is|are) edible", -"%item types% (isn't|is not|aren't|are not) edible", + "%item types% (is|are) edible", +"%item types% (isn't|is not|aren't|are not) edible", "pattern_end" ], @@ -1142,8 +1147,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsEmpty", "name" : "Is Empty", "patterns" : [ - "%inventories/slots/texts% (is|are) empty", -"%inventories/slots/texts% (isn't|is not|aren't|are not) empty", + "%inventories/slots/texts% (is|are) empty", +"%inventories/slots/texts% (isn't|is not|aren't|are not) empty", "pattern_end" ], @@ -1155,8 +1160,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsEnchanted", "name" : "Is Enchanted", "patterns" : [ - "%item types% (is|are) enchanted [with %enchantment type%]", -"%item types% (isn't|is not|aren't|are not) enchanted [with %enchantment type%]", + "%item types% (is|are) enchanted [with %enchantment type%]", +"%item types% (isn't|is not|aren't|are not) enchanted [with %enchantment type%]", "pattern_end" ], @@ -1168,8 +1173,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsFlammable", "name" : "Is Flammable", "patterns" : [ - "%item types% (is|are) flammable", -"%item types% (isn't|is not|aren't|are not) flammable", + "%item types% (is|are) flammable", +"%item types% (isn't|is not|aren't|are not) flammable", "pattern_end" ], @@ -1181,8 +1186,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsFlying", "name" : "Is Flying", "patterns" : [ - "%players% (is|are) flying", -"%players% (isn't|is not|aren't|are not) flying", + "%players% (is|are) flying", +"%players% (isn't|is not|aren't|are not) flying", "pattern_end" ], @@ -1194,8 +1199,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsFuel", "name" : "Is Fuel", "patterns" : [ - "%item types% (is|are) [furnace] fuel", -"%item types% (isn't|is not|aren't|are not) [furnace] fuel", + "%item types% (is|are) [furnace] fuel", +"%item types% (isn't|is not|aren't|are not) [furnace] fuel", "pattern_end" ], @@ -1207,14 +1212,14 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondItemInHand", "name" : "Is Holding", "patterns" : [ - "[%living entities%] ha(s|ve) %item types% in [main] hand", -"[%living entities%] (is|are) holding %item types% [in main hand]", -"[%living entities%] ha(s|ve) %item types% in off[(-| )]hand", -"[%living entities%] (is|are) holding %item types% in off[(-| )]hand", -"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in [main] hand", -"[%living entities%] (is not|isn't) holding %item types% [in main hand]", -"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in off[(-| )]hand", -"[%living entities%] (is not|isn't) holding %item types% in off[(-| )]hand", + "[%living entities%] ha(s|ve) %item types% in [main] hand", +"[%living entities%] (is|are) holding %item types% [in main hand]", +"[%living entities%] ha(s|ve) %item types% in off[(-| )]hand", +"[%living entities%] (is|are) holding %item types% in off[(-| )]hand", +"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in [main] hand", +"[%living entities%] (is not|isn't) holding %item types% [in main hand]", +"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in off[(-| )]hand", +"[%living entities%] (is not|isn't) holding %item types% in off[(-| )]hand", "pattern_end" ], @@ -1226,8 +1231,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIncendiary", "name" : "Is Incendiary", "patterns" : [ - "%entities% ((is|are) incendiary|cause[s] a[n] (incendiary|fiery) explosion)", -"%entities% ((is not|are not|isn't|aren't) incendiary|(does not|do not|doesn't|don't) cause[s] a[n] (incendiary|fiery) explosion)", + "%entities% ((is|are) incendiary|cause[s] a[n] (incendiary|fiery) explosion)", +"%entities% ((is not|are not|isn't|aren't) incendiary|(does not|do not|doesn't|don't) cause[s] a[n] (incendiary|fiery) explosion)", "the [event(-| )]explosion (is|(is not|isn't)) (incendiary|fiery)", "pattern_end" @@ -1240,8 +1245,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsInteractable", "name" : "Is Interactable", "patterns" : [ - "%item types% (is|are) interactable", -"%item types% (isn't|is not|aren't|are not) interactable", + "%item types% (is|are) interactable", +"%item types% (isn't|is not|aren't|are not) interactable", "pattern_end" ], @@ -1253,8 +1258,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsInvulnerable", "name" : "Is Invulnerable", "patterns" : [ - "%entities% (is|are) invulnerable", -"%entities% (isn't|is not|aren't|are not) invulnerable", + "%entities% (is|are) invulnerable", +"%entities% (isn't|is not|aren't|are not) invulnerable", "pattern_end" ], @@ -1266,8 +1271,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondLeashed", "name" : "Is Leashed", "patterns" : [ - "%living entities% (is|are) leashed", -"%living entities% (isn't|is not|aren't|are not) leashed", + "%living entities% (is|are) leashed", +"%living entities% (isn't|is not|aren't|are not) leashed", "pattern_end" ], @@ -1279,9 +1284,9 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsLoaded", "name" : "Is Loaded", "patterns" : [ - "chunk[s] %directions% [%locations%] (is|are)[((n't| not))] loaded", -"chunk [at] %number%, %number% (in|of) [world] %world% is[((n't| not))] loaded", -"[world[s]] %worlds% (is|are)[((n't| not))] loaded", + "chunk[s] %directions% [%locations%] (is|are)[((n't| not))] loaded", +"chunk [at] %number%, %number% (in|of) [world] %world% is[((n't| not))] loaded", +"[world[s]] %worlds% (is|are)[((n't| not))] loaded", "pattern_end" ], @@ -1293,8 +1298,8 @@ Note: This is the only element where not all patterns are shown. It has actually "id" : "CondIsMember", "name" : "Is Member/Owner of Region", "patterns" : [ - "%offline players% (is|are) ([a] member|[(the|an)] owner) of [[the] region] %regions%", -"%offline players% (is|are)(n't| not) ([a] member|[(the|an)] owner) of [[the] region] %regions%", + "%offline players% (is|are) ([a] member|[(the|an)] owner) of [[the] region] %regions%", +"%offline players% (is|are)(n't| not) ([a] member|[(the|an)] owner) of [[the] region] %regions%", "pattern_end" ], @@ -1307,8 +1312,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondIsVectorNormalized", "name" : "Is Normalized", "patterns" : [ - "%vectors% (is|are) normalized", -"%vectors% (isn't|is not|aren't|are not) normalized", + "%vectors% (is|are) normalized", +"%vectors% (isn't|is not|aren't|are not) normalized", "pattern_end" ], @@ -1320,8 +1325,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondIsOccluding", "name" : "Is Occluding", "patterns" : [ - "%item types% (is|are) occluding", -"%item types% (isn't|is not|aren't|are not) occluding", + "%item types% (is|are) occluding", +"%item types% (isn't|is not|aren't|are not) occluding", "pattern_end" ], @@ -1333,8 +1338,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondIsOnline", "name" : "Is Online", "patterns" : [ - "%offline players% (is|are) (online|offline)", -"%offline players% (isn't|is not|aren't|are not) (online|offline)", + "%offline players% (is|are) (online|offline)", +"%offline players% (isn't|is not|aren't|are not) (online|offline)", "pattern_end" ], @@ -1346,8 +1351,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondIsPassable", "name" : "Is Passable", "patterns" : [ - "%blocks% (is|are) passable", -"%blocks% (isn't|is not|aren't|are not) passable", + "%blocks% (is|are) passable", +"%blocks% (isn't|is not|aren't|are not) passable", "pattern_end" ], @@ -1361,9 +1366,9 @@ Blocks like tall grass, flowers, signs, etc. are passable, but open doors, fence "id" : "CondIsPluginEnabled", "name" : "Is Plugin Enabled", "patterns" : [ - "plugin[s] %texts% (is|are) enabled", -"plugin[s] %texts% (is|are)(n't| not) enabled", -"plugin[s] %texts% (is|are) disabled", + "plugin[s] %texts% (is|are) enabled", +"plugin[s] %texts% (is|are)(n't| not) enabled", +"plugin[s] %texts% (is|are) disabled", "pattern_end" ], @@ -1378,8 +1383,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsPoisoned", "name" : "Is Poisoned", "patterns" : [ - "%living entities% (is|are) poisoned", -"%living entities% (isn't|is not|aren't|are not) poisoned", + "%living entities% (is|are) poisoned", +"%living entities% (isn't|is not|aren't|are not) poisoned", "pattern_end" ], @@ -1391,8 +1396,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsRiding", "name" : "Is Riding", "patterns" : [ - "%entities% (is|are) riding [%entity types%]", -"%entities% (isn't|is not|aren't|are not) riding [%entity types%]", + "%entities% (is|are) riding [%entity types%]", +"%entities% (isn't|is not|aren't|are not) riding [%entity types%]", "pattern_end" ], @@ -1404,8 +1409,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsRiptiding", "name" : "Is Riptiding", "patterns" : [ - "%living entities% (is|are) riptiding", -"%living entities% (isn't|is not|aren't|are not) riptiding", + "%living entities% (is|are) riptiding", +"%living entities% (isn't|is not|aren't|are not) riptiding", "pattern_end" ], @@ -1417,8 +1422,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondScriptLoaded", "name" : "Is Script Loaded", "patterns" : [ - "script[s] [%texts%] (is|are) loaded", -"script[s] [%texts%] (isn't|is not|aren't|are not) loaded", + "script[s] [%texts%] (is|are) loaded", +"script[s] [%texts%] (isn't|is not|aren't|are not) loaded", "pattern_end" ], @@ -1430,8 +1435,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsSilent", "name" : "Is Silent", "patterns" : [ - "%entities% (is|are) silent", -"%entities% (isn't|is not|aren't|are not) silent", + "%entities% (is|are) silent", +"%entities% (isn't|is not|aren't|are not) silent", "pattern_end" ], @@ -1443,8 +1448,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsSleeping", "name" : "Is Sleeping", "patterns" : [ - "%players% (is|are) sleeping", -"%players% (isn't|is not|aren't|are not) sleeping", + "%players% (is|are) sleeping", +"%players% (isn't|is not|aren't|are not) sleeping", "pattern_end" ], @@ -1456,8 +1461,8 @@ When checking if a plugin is disabled, this will return true if the plugin is on "id" : "CondIsSlimeChunk", "name" : "Is Slime Chunk", "patterns" : [ - "%chunk% (is|are) ([a] slime chunk|slime chunks|slimey)", -"%chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)", + "%chunk% (is|are) ([a] slime chunk|slime chunks|slimey)", +"%chunk% (isn't|is not|aren't|are not) ([a] slime chunk|slime chunks|slimey)", "pattern_end" ], @@ -1471,8 +1476,8 @@ For more info, see players% (is|are) sneaking", -"%players% (isn't|is not|aren't|are not) sneaking", + "%players% (is|are) sneaking", +"%players% (isn't|is not|aren't|are not) sneaking", "pattern_end" ], @@ -1484,8 +1489,8 @@ For more info, see item types% (is|are) solid", -"%item types% (isn't|is not|aren't|are not) solid", + "%item types% (is|are) solid", +"%item types% (isn't|is not|aren't|are not) solid", "pattern_end" ], @@ -1497,8 +1502,8 @@ For more info, see players% (is|are) sprinting", -"%players% (isn't|is not|aren't|are not) sprinting", + "%players% (is|are) sprinting", +"%players% (isn't|is not|aren't|are not) sprinting", "pattern_end" ], @@ -1510,8 +1515,8 @@ For more info, see living entities% (is|are) swimming", -"%living entities% (isn't|is not|aren't|are not) swimming", + "%living entities% (is|are) swimming", +"%living entities% (isn't|is not|aren't|are not) swimming", "pattern_end" ], @@ -1523,8 +1528,8 @@ For more info, see living entities% (is|are) tameable", -"%living entities% (isn't|is not|aren't|are not) tameable", + "%living entities% (is|are) tameable", +"%living entities% (isn't|is not|aren't|are not) tameable", "pattern_end" ], @@ -1536,8 +1541,8 @@ For more info, see item types% (is|are) transparent", -"%item types% (isn't|is not|aren't|are not) transparent", + "%item types% (is|are) transparent", +"%item types% (isn't|is not|aren't|are not) transparent", "pattern_end" ], @@ -1549,8 +1554,8 @@ For more info, see item types% (is|are) unbreakable", -"%item types% (isn't|is not|aren't|are not) unbreakable", + "%item types% (is|are) unbreakable", +"%item types% (isn't|is not|aren't|are not) unbreakable", "pattern_end" ], @@ -1562,8 +1567,8 @@ For more info, see living entities% (is|are) wearing %item types%", -"%living entities% (isn't|is not|aren't|are not) wearing %item types%", + "%living entities% (is|are) wearing %item types%", +"%living entities% (isn't|is not|aren't|are not) wearing %item types%", "pattern_end" ], @@ -1576,7 +1581,7 @@ For more info, see players% (is|are)[((n't| not)]) white[ ]listed", +"%players% (is|are)[(n't| not)] white[ ]listed", "pattern_end" ], @@ -1588,8 +1593,8 @@ For more info, see text% (is|are) [a] s(k|c)ript (command|cmd)", -"%text% (isn't|is not|aren't|are not) [a] s(k|c)ript (command|cmd)", + "%text% (is|are) [a] s(k|c)ript (command|cmd)", +"%text% (isn't|is not|aren't|are not) [a] s(k|c)ript (command|cmd)", "pattern_end" ], @@ -1601,8 +1606,8 @@ For more info, see entities% (is|are) in [[the] world[s]] %worlds%", -"%entities% (isn't|is not|aren't|are not) in [[the] world[s]] %worlds%", + "%entities% (is|are) in [[the] world[s]] %worlds%", +"%entities% (isn't|is not|aren't|are not) in [[the] world[s]] %worlds%", "pattern_end" ], @@ -1614,8 +1619,8 @@ For more info, see item stacks/entities% (is|are) of type[s] %entity types/entity types%", -"%item stacks/entities% (isn't|is not|aren't|are not) of type[s] %entity types/entity types%", + "%item stacks/entities% (is|are) of type[s] %entity types/entity types%", +"%item stacks/entities% (isn't|is not|aren't|are not) of type[s] %entity types/entity types%", "pattern_end" ], @@ -1627,8 +1632,8 @@ For more info, see entities% (is|are) on [the] ground", -"%entities% (isn't|is not|aren't|are not) on [the] ground", + "%entities% (is|are) on [the] ground", +"%entities% (isn't|is not|aren't|are not) on [the] ground", "pattern_end" ], @@ -1640,8 +1645,8 @@ For more info, see texts% (match[es]|do[es](n't| not) match) %texts%", -"%texts% (partially match[es]|do[es](n't| not) partially match) %texts%", + "%texts% (match[es]|do[es](n't| not) match) %texts%", +"%texts% (partially match[es]|do[es](n't| not) partially match) %texts%", "pattern_end" ], @@ -1653,8 +1658,8 @@ For more info, see projectiles% can bounce", -"%projectiles% (can't|cannot|can not) bounce", + "%projectiles% can bounce", +"%projectiles% (can't|cannot|can not) bounce", "pattern_end" ], @@ -1666,8 +1671,8 @@ For more info, see worlds%]", -"(is PvP|PvP is) disabled [in %worlds%]", + "(is PvP|PvP is) enabled [in %worlds%]", +"(is PvP|PvP is) disabled [in %worlds%]", "pattern_end" ], @@ -1679,10 +1684,10 @@ For more info, see regions% contain[s] %directions% %locations%", -"%locations% (is|are) ([contained] in|part of) [[the] region] %regions%", -"[[the] region] %regions% (do|does)(n't| not) contain %directions% %locations%", -"%locations% (is|are)(n't| not) (contained in|part of) [[the] region] %regions%", + "[[the] region] %regions% contain[s] %directions% %locations%", +"%locations% (is|are) ([contained] in|part of) [[the] region] %regions%", +"[[the] region] %regions% (do|does)(n't| not) contain %directions% %locations%", +"%locations% (is|are)(n't| not) (contained in|part of) [[the] region] %regions%", "pattern_end" ], @@ -1695,8 +1700,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondResourcePack", "name" : "Resource Pack", "patterns" : [ - "[the] resource pack (was|is|has) [been] %resource pack state%", -"[the] resource pack (was|is|has)(n't| not) [been] %resource pack state%", + "[the] resource pack (was|is|has) [been] %resource pack state%", +"[the] resource pack (was|is|has)(n't| not) [been] %resource pack state%", "pattern_end" ], @@ -1708,8 +1713,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondStartsEndsWith", "name" : "Starts/Ends With", "patterns" : [ - "%texts% (start|end)[s] with %texts%", -"%texts% (doesn't|does not|do not|don't) (start|end) with %texts%", + "%texts% (start|end)[s] with %texts%", +"%texts% (doesn't|does not|do not|don't) (start|end) with %texts%", "pattern_end" ], @@ -1721,8 +1726,8 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondDate", "name" : "Time", "patterns" : [ - "%date% (was|were)( more|(n't| not) less) than %time span% [ago]", -"%date% (was|were)((n't| not) more| less) than %time span% [ago]", + "%date% (was|were)( more|(n't| not) less) than %time span% [ago]", +"%date% (was|were)((n't| not) more| less) than %time span% [ago]", "pattern_end" ], @@ -1734,7 +1739,7 @@ This condition requires a supported regions plugin to be installed.", "id" : "CondWeather", "name" : "Weather", "patterns" : [ - "is %weather types% [in %worlds%]", + "is %weather types% [in %worlds%]", "pattern_end" ], @@ -1752,7 +1757,7 @@ This condition requires a supported regions plugin to be installed.", "id" : "EffActionBar", "name" : "Action Bar", "patterns" : [ - "send [the] action bar [with text] %text% to %players%", + "send [the] action bar [with text] %text% to %players%", "pattern_end" ], @@ -1764,12 +1769,12 @@ This condition requires a supported regions plugin to be installed.", "id" : "EffBan", "name" : "Ban", "patterns" : [ - "ban %texts/offline players% [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", -"unban %texts/offline players%", -"ban %players% by IP [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", -"unban %players% by IP", -"IP(-| )ban %players% [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", -"(IP(-| )unban|un[-]IP[-]ban) %players%", + "ban %texts/offline players% [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", +"unban %texts/offline players%", +"ban %players% by IP [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", +"unban %players% by IP", +"IP(-| )ban %players% [(by reason of|because [of]|on account of|due to) %text%] [for %time span%]", +"(IP(-| )unban|un[-]IP[-]ban) %players%", "pattern_end" ], @@ -1787,7 +1792,7 @@ Consider using the kick effect after applying "id" : "EffBreakNaturally", "name" : "Break Block", "patterns" : [ - "break %blocks% [naturally] [using %item type%]", + "break %blocks% [naturally] [using %item type%]", "pattern_end" ], @@ -1802,7 +1807,7 @@ You can add a tool, which will spawn items based on how that tool would break th "id" : "EffBroadcast", "name" : "Broadcast", "patterns" : [ - "broadcast %objects% [(to|in) %worlds%]", + "broadcast %objects% [(to|in) %worlds%]", "pattern_end" ], @@ -1823,7 +1828,7 @@ message to all players instead of broadcasting it.", ], "since" : "2.2-dev34", "description" : "Only usable in commands. Makes it so the current command usage isn't counted towards the cooldown.", - "examples" : "command /nick :\\n executable by: players\\n cooldown: 10 seconds\\n trigger:\\n if length of arg-1 is more than 16:\\n # Makes it so that invalid arguments don't make you wait for the cooldown again\\n cancel the cooldown\\n send \"Your nickname may be at most 16 characters.\"\\n stop\\n set the player's display name to arg-1" + "examples" : "command /nick <text>:\\n executable by: players\\n cooldown: 10 seconds\\n trigger:\\n if length of arg-1 is more than 16:\\n # Makes it so that invalid arguments don't make you wait for the cooldown again\\n cancel the cooldown\\n send \"Your nickname may be at most 16 characters.\"\\n stop\\n set the player's display name to arg-1" }, { "id" : "EffCancelDrops", @@ -1855,28 +1860,28 @@ message to all players instead of broadcasting it.", "id" : "EffChange", "name" : "Change: Set/Add/Remove/Delete/Reset", "patterns" : [ - "(add|give) %objects% to %~objects%", -"increase %~objects% by %objects%", -"give %~objects% %objects%", -"set %~objects% to %objects%", -"remove (all|every) %objects% from %~objects%", -"(remove|subtract) %objects% from %~objects%", -"reduce %~objects% by %objects%", -"(delete|clear) %~objects%", -"reset %~objects%", + "(add|give) %objects% to %~objects%", +"increase %~objects% by %objects%", +"give %~objects% %objects%", +"set %~objects% to %objects%", +"remove (all|every) %objects% from %~objects%", +"(remove|subtract) %objects% from %~objects%", +"reduce %~objects% by %objects%", +"(delete|clear) %~objects%", +"reset %~objects%", "pattern_end" ], "since" : "1.0 (set, add, remove, delete), 2.0 (remove all)", "description" : "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.", - "examples" : "# set:\\nSet the player's display name to \"%name of player%\"\\nset the block above the victim to lava\\n# add:\\nadd 2 to the player's health # preferably use 'heal' for this\\nadd argument to {blacklist::*}\\ngive a diamond pickaxe of efficiency 5 to the player\\nincrease the data value of the clicked block by 1\\n# remove:\\nremove 2 pickaxes from the victim\\nsubtract 2.5 from {points::%uuid of player%}\\n# remove all:\\nremove every iron tool from the player\\nremove all minecarts from {entitylist::*}\\n# delete:\\ndelete the block below the player\\nclear drops\\ndelete {variable}\\n# reset:\\nreset walk speed of player\\nreset chunk at the targeted block" + "examples" : "# set:\\nSet the player's display name to \"<red>%name of player%\"\\nset the block above the victim to lava\\n# add:\\nadd 2 to the player's health # preferably use 'heal' for this\\nadd argument to {blacklist::*}\\ngive a diamond pickaxe of efficiency 5 to the player\\nincrease the data value of the clicked block by 1\\n# remove:\\nremove 2 pickaxes from the victim\\nsubtract 2.5 from {points::%uuid of player%}\\n# remove all:\\nremove every iron tool from the player\\nremove all minecarts from {entitylist::*}\\n# delete:\\ndelete the block below the player\\nclear drops\\ndelete {variable}\\n# reset:\\nreset walk speed of player\\nreset chunk at the targeted block" }, { "id" : "EffChargeCreeper", "name" : "Charge Creeper", "patterns" : [ - "make %living entities% [a[n]] (charged|powered|((un|non[-])charged|(un|non[-])powered)) [creeper[s]]", -"(charge|power|(uncharge|unpower)) %living entities%", + "make %living entities% [a[n]] (charged|powered|((un|non[-])charged|(un|non[-])powered)) [creeper[s]]", +"(charge|power|(uncharge|unpower)) %living entities%", "pattern_end" ], @@ -1888,8 +1893,8 @@ message to all players instead of broadcasting it.", "id" : "EffColorItems", "name" : "Colour Items", "patterns" : [ - "(dye|colo[u]r|paint) %item types% %color%", -"(dye|colo[u]r|paint) %item types% \\(%number%, %number%, %number%\\)", + "(dye|colo[u]r|paint) %item types% %color%", +"(dye|colo[u]r|paint) %item types% \\(%number%, %number%, %number%\\)", "pattern_end" ], @@ -1901,9 +1906,9 @@ message to all players instead of broadcasting it.", "id" : "EffCommand", "name" : "Command", "patterns" : [ - "[execute] [the] command %texts% [by %players/console%]", -"[execute] [the] %players/console% command %texts%", -"(let|make) %players/console% execute [[the] command] %texts%", + "[execute] [the] command %texts% [by %players/console%]", +"[execute] [the] %players/console% command %texts%", +"(let|make) %players/console% execute [[the] command] %texts%", "pattern_end" ], @@ -1915,8 +1920,8 @@ message to all players instead of broadcasting it.", "id" : "EffConnect", "name" : "Connect", "patterns" : [ - "connect %players% to [server] %text%", -"send %players% to server %text%", + "connect %players% to [server] %text%", +"send %players% to server %text%", "pattern_end" ], @@ -1940,9 +1945,9 @@ message to all players instead of broadcasting it.", "id" : "EffHealth", "name" : "Damage/Heal/Repair", "patterns" : [ - "damage %living entities/item types% by %number% [heart[s]] [with fake cause %damage cause%]", -"heal %living entities% [by %number% [heart[s]]]", -"repair %item types% [by %number%]", + "damage %living entities/item types% by %number% [heart[s]] [with fake cause %damage cause%]", +"heal %living entities% [by %number% [heart[s]]]", +"repair %item types% [by %number%]", "pattern_end" ], @@ -1954,7 +1959,7 @@ message to all players instead of broadcasting it.", "id" : "Delay", "name" : "Delay", "patterns" : [ - "(wait|halt) [for] %time span%", + "(wait|halt) [for] %time span%", "pattern_end" ], @@ -1978,8 +1983,7 @@ message to all players instead of broadcasting it.", "id" : "EffDrop", "name" : "Drop", "patterns" : [ - "drop %item types/experience points% [%directions% %locations%]", -"drop %item types/experience points% [%directions% %locations%] without velocity", + "drop %item types/experience points% [%directions% %locations%] [(without velocity)]", "pattern_end" ], @@ -1991,7 +1995,7 @@ message to all players instead of broadcasting it.", "id" : "EffScriptFile", "name" : "Enable/Disable/Reload Script File", "patterns" : [ - "(enable|load|reload|disable|unload) s(c|k)ript [file] %text%", + "(enable|load|reload|disable|unload) s(c|k)ript [file] %text%", "pattern_end" ], @@ -2003,8 +2007,8 @@ message to all players instead of broadcasting it.", "id" : "EffEnchant", "name" : "Enchant/Disenchant", "patterns" : [ - "enchant %~item types% with %enchantment types%", -"disenchant %~item types%", + "enchant %~item types% with %enchantment types%", +"disenchant %~item types%", "pattern_end" ], @@ -2016,8 +2020,8 @@ message to all players instead of broadcasting it.", "id" : "EffEquip", "name" : "Equip", "patterns" : [ - "equip [%living entity%] with %item types%", -"make %living entity% wear %item types%", + "equip [%living entity%] with %item types%", +"make %living entity% wear %item types%", "pattern_end" ], @@ -2044,11 +2048,11 @@ message to all players instead of broadcasting it.", "id" : "EffExplodeCreeper", "name" : "Explode Creeper", "patterns" : [ - "instantly explode [creeper[s]] %living entities%", -"explode [creeper[s]] %living entities% instantly", -"ignite creeper[s] %living entities%", -"start (ignition|explosion) [process] of [creeper[s]] %living entities%", -"stop (ignition|explosion) [process] of [creeper[s]] %living entities%", + "instantly explode [creeper[s]] %living entities%", +"explode [creeper[s]] %living entities% instantly", +"ignite creeper[s] %living entities%", +"start (ignition|explosion) [process] of [creeper[s]] %living entities%", +"stop (ignition|explosion) [process] of [creeper[s]] %living entities%", "pattern_end" ], @@ -2060,10 +2064,10 @@ message to all players instead of broadcasting it.", "id" : "EffExplosion", "name" : "Explosion", "patterns" : [ - "[(create|make)] [an] explosion (of|with) (force|strength|power) %number% [%directions% %locations%] [(with fire)]", -"[(create|make)] [a] safe explosion (of|with) (force|strength|power) %number% [%directions% %locations%]", -"[(create|make)] [a] fake explosion [%directions% %locations%]", -"[(create|make)] [an] explosion[ ]effect [%directions% %locations%]", + "[(create|make)] [an] explosion (of|with) (force|strength|power) %number% [%directions% %locations%] [(with fire)]", +"[(create|make)] [a] safe explosion (of|with) (force|strength|power) %number% [%directions% %locations%]", +"[(create|make)] [a] fake explosion [%directions% %locations%]", +"[(create|make)] [an] explosion[ ]effect [%directions% %locations%]", "pattern_end" ], @@ -2077,7 +2081,7 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffFeed", "name" : "Feed", "patterns" : [ - "feed [the] %players% [by %number% [beef[s]]]", + "feed [the] %players% [by %number% [beef[s]]]", "pattern_end" ], @@ -2089,8 +2093,8 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffForceAttack", "name" : "Force Attack", "patterns" : [ - "make %living entities% attack %entity%", -"force %living entities% to attack %entity%", + "make %living entities% attack %entity%", +"force %living entities% to attack %entity%", "pattern_end" ], @@ -2102,7 +2106,7 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffRespawn", "name" : "Force Respawn", "patterns" : [ - "force %players% to respawn", + "force %players% to respawn", "pattern_end" ], @@ -2114,8 +2118,8 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffHidePlayerFromServerList", "name" : "Hide Player from Server List", "patterns" : [ - "hide %players% (in|on|from) [the] server list", -"hide %players%'[s] info[rmation] (in|on|from) [the] server list", + "hide %players% (in|on|from) [the] server list", +"hide %players%'[s] info[rmation] (in|on|from) [the] server list", "pattern_end" ], @@ -2127,9 +2131,9 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffIgnite", "name" : "Ignite/Extinguish", "patterns" : [ - "(ignite|set fire to) %entities% [for %time span%]", -"(set|light) %entities% on fire [for %time span%]", -"extinguish %entities%", + "(ignite|set fire to) %entities% [for %time span%]", +"(set|light) %entities% on fire [for %time span%]", +"extinguish %entities%", "pattern_end" ], @@ -2154,7 +2158,7 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffKick", "name" : "Kick", "patterns" : [ - "kick %players% [(by reason of|because [of]|on account of|due to) %text%]", + "kick %players% [(by reason of|because [of]|on account of|due to) %text%]", "pattern_end" ], @@ -2166,7 +2170,7 @@ Starting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will "id" : "EffKill", "name" : "Kill", "patterns" : [ - "kill %entities%", + "kill %entities%", "pattern_end" ], @@ -2179,7 +2183,7 @@ Note: This effect does not set the entity's health to 0 (which causes issues), b "id" : "EffFireworkLaunch", "name" : "Launch firework", "patterns" : [ - "(launch|deploy) [[a] firework [with effect[s]]] %firework effects% at %locations% [([with] (duration|power)|timed) %number%]", + "(launch|deploy) [[a] firework [with effect[s]]] %firework effects% at %locations% [([with] (duration|power)|timed) %number%]", "pattern_end" ], @@ -2191,9 +2195,9 @@ Note: This effect does not set the entity's health to 0 (which causes issues), b "id" : "EffLeash", "name" : "Leash entities", "patterns" : [ - "(leash|lead) %living entities% to %entity%", -"make %entity% (leash|lead) %living entities%", -"un(leash|lead) [holder of] %living entities%", + "(leash|lead) %living entities% to %entity%", +"make %entity% (leash|lead) %living entities%", +"un(leash|lead) [holder of] %living entities%", "pattern_end" ], @@ -2205,7 +2209,7 @@ Note: This effect does not set the entity's health to 0 (which causes issues), b "id" : "EffLightning", "name" : "Lightning", "patterns" : [ - "(create|strike) lightning[[ ]effect] %directions% %locations%", + "(create|strike) lightning[([ ]effect)] %directions% %locations%", "pattern_end" ], @@ -2217,7 +2221,7 @@ Note: This effect does not set the entity's health to 0 (which causes issues), b "id" : "EffLoadServerIcon", "name" : "Load Server Icon", "patterns" : [ - "load [the] server icon (from|of) [the] [image] [file] %text%", + "load [the] server icon (from|of) [the] [image] [file] %text%", "pattern_end" ], @@ -2243,7 +2247,7 @@ Please note that the image must be 64x64 and the file path starts from the serve "id" : "EffLog", "name" : "Log", "patterns" : [ - "log %texts% [(to|in) [file[s]] %texts%]", + "log %texts% [(to|in) [file[s]] %texts%]", "pattern_end" ], @@ -2256,9 +2260,9 @@ NB: Using 'server.log' as the log file will write to the default server log. Omi "id" : "EffMakeFly", "name" : "Make Fly", "patterns" : [ - "force %players% to [(start|stop)] fly[ing]", -"make %players% (start|stop) flying", -"make %players% fly", + "force %players% to [(start|stop)] fly[ing]", +"make %players% (start|stop) flying", +"make %players% fly", "pattern_end" ], @@ -2270,8 +2274,8 @@ NB: Using 'server.log' as the log file will write to the default server log. Omi "id" : "EffIncendiary", "name" : "Make Incendiary", "patterns" : [ - "make %entities% [(not)] incendiary", -"make %entities%'[s] explosion [(not)] (incendiary|fiery)", + "make %entities% [(not)] incendiary", +"make %entities%'[s] explosion [(not)] (incendiary|fiery)", "make [the] [event(-| )]explosion [(not)] (incendiary|fiery)", "pattern_end" @@ -2284,8 +2288,8 @@ NB: Using 'server.log' as the log file will write to the default server log. Omi "id" : "EffInvulnerability", "name" : "Make Invulnerable", "patterns" : [ - "make %entities% invulnerable", -"make %entities% (not invulnerable|vulnerable)", + "make %entities% invulnerable", +"make %entities% (not invulnerable|vulnerable)", "pattern_end" ], @@ -2297,8 +2301,8 @@ NB: Using 'server.log' as the log file will write to the default server log. Omi "id" : "EffMakeSay", "name" : "Make Say", "patterns" : [ - "make %players% (say|send [the] message[s]) %texts%", -"force %players% to (say|send [the] message[s]) %texts%", + "make %players% (say|send [the] message[s]) %texts%", +"force %players% to (say|send [the] message[s]) %texts%", "pattern_end" ], @@ -2310,7 +2314,7 @@ NB: Using 'server.log' as the log file will write to the default server log. Omi "id" : "EffMessage", "name" : "Message", "patterns" : [ - "(message|send [message[s]]) %objects% [to %players/console%] [from %player%]", + "(message|send [message[s]]) %objects% [to %players/console%] [from %player%]", "pattern_end" ], @@ -2326,7 +2330,7 @@ but for this to work, the message needs to be sent from a player.", "id" : "EffOpenBook", "name" : "Open Book", "patterns" : [ - "(open|show) book %item type% (to|for) %players%", + "(open|show) book %item type% (to|for) %players%", "pattern_end" ], @@ -2338,9 +2342,9 @@ but for this to work, the message needs to be sent from a player.", "id" : "EffOpenInventory", "name" : "Open/Close Inventory", "patterns" : [ - "[(open|show) (((crafting [table]|workbench)|chest|anvil|hopper|dropper|dispenser) (view|window|inventory)]|%inventory/inventory type%) (to|for) %players%", -"close [the] inventory [view] (to|of|for) %players%", -"close %players%'[s] inventory [view]", + "(open|show) (((crafting [table]|workbench)|chest|anvil|hopper|dropper|dispenser) [(view|window|inventory)]|%inventory/inventory type%) (to|for) %players%", +"close [the] inventory [view] (to|of|for) %players%", +"close %players%'[s] inventory [view]", "pattern_end" ], @@ -2353,8 +2357,8 @@ Please note that currently 'show' and 'open' have the same effect, but 'show' wi "id" : "EffVisualEffect", "name" : "Play Effect", "patterns" : [ - "(play|show) %visual effects% (on|%directions%) %entities/locations% [(to %players%|in (radius|range) of %number%)]", -"(play|show) %number% %visual effects% (on|%directions%) %locations% [(to %players%|in (radius|range) of %number%)]", + "(play|show) %visual effects% (on|%directions%) %entities/locations% [(to %players%|in (radius|range) of %number%)]", +"(play|show) %number% %visual effects% (on|%directions%) %locations% [(to %players%|in (radius|range) of %number%)]", "pattern_end" ], @@ -2367,8 +2371,8 @@ Please note that some effects can only be played on entities, e.g. wolf hearts o "id" : "EffPlaySound", "name" : "Play Sound", "patterns" : [ - "play sound[s] %texts% [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] at %locations% [for %players%]", -"play sound[s] %texts% [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] [(to|for) %players%] [(at|from) %locations%]", + "play sound[s] %texts% [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] at %locations% [for %players%]", +"play sound[s] %texts% [(in|from) %sound category%] [(at|with) volume %number%] [(and|at|with) pitch %number%] [(to|for) %players%] [(at|from) %locations%]", "pattern_end" ], @@ -2400,8 +2404,8 @@ Also the Online Players Count< "id" : "EffPlayerVisibility", "name" : "Player Visibility", "patterns" : [ - "hide %players% [(from|for) %players%]", -"reveal %players% [(to|for|from) %players%]", + "hide %players% [(from|for) %players%]", +"reveal %players% [(to|for|from) %players%]", "pattern_end" ], @@ -2416,8 +2420,8 @@ Note: if a player was hidden and relogs, this player will be visible again.", "id" : "EffPoison", "name" : "Poison/Cure", "patterns" : [ - "poison %living entities% [for %time span%]", -"(cure|unpoison) %living entities% [(from|of) poison]", + "poison %living entities% [for %time span%]", +"(cure|unpoison) %living entities% [(from|of) poison]", "pattern_end" ], @@ -2429,10 +2433,10 @@ Note: if a player was hidden and relogs, this player will be visible again.", "id" : "EffPotion", "name" : "Potion Effects", "patterns" : [ - "apply [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%] [(replacing [the] existing effect)]", -"apply ambient [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%] [(replacing [the] existing effect)]", -"apply [potion of] %potions% [potion] [[[of] tier] %number%] without [any] particles to %living entities% [for %time span%] [(replacing [the] existing effect)]", -"apply %potion effects% to %living entities%", + "apply [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%] [(replacing [the] existing effect)]", +"apply ambient [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%] [(replacing [the] existing effect)]", +"apply [potion of] %potions% [potion] [[[of] tier] %number%] without [any] particles to %living entities% [for %time span%] [(replacing [the] existing effect)]", +"apply %potion effects% to %living entities%", "pattern_end" ], @@ -2444,7 +2448,7 @@ Note: if a player was hidden and relogs, this player will be visible again.", "id" : "EffPush", "name" : "Push", "patterns" : [ - "(push|thrust) %entities% %direction% [(at|with) (speed|velocity|force) %number%]", + "(push|thrust) %entities% %direction% [(at|with) (speed|velocity|force) %number%]", "pattern_end" ], @@ -2456,8 +2460,8 @@ Note: if a player was hidden and relogs, this player will be visible again.", "id" : "EffPvP", "name" : "PvP", "patterns" : [ - "enable PvP [in %worlds%]", -"disable PVP [in %worlds%]", + "enable PvP [in %worlds%]", +"disable PVP [in %worlds%]", "pattern_end" ], @@ -2469,12 +2473,12 @@ Note: if a player was hidden and relogs, this player will be visible again.", "id" : "EffReplace", "name" : "Replace", "patterns" : [ - "replace [(all|every)] %texts% in %texts% with %text% [(with case sensitivity)]", -"replace [(all|every)] %texts% with %text% in %texts% [(with case sensitivity)]", -"replace first %texts% in %texts% with %text% [(with case sensitivity)]", -"replace first %texts% with %text% in %text% [(with case sensitivity)]", -"replace [(all|every)] %item types% in %inventories% with %item type%", -"replace [(all|every)] %item types% with %item type% in %inventories%", + "replace [(all|every)] %texts% in %texts% with %text% [(with case sensitivity)]", +"replace [(all|every)] %texts% with %text% in %texts% [(with case sensitivity)]", +"replace first %texts% in %texts% with %text% [(with case sensitivity)]", +"replace first %texts% with %text% in %text% [(with case sensitivity)]", +"replace [(all|every)] %item types% in %inventories% with %item type%", +"replace [(all|every)] %item types% with %item type% in %inventories%", "pattern_end" ], @@ -2487,7 +2491,7 @@ Starting with 2.2-dev24, you can replace items in a inventory too.", "id" : "EffReturn", "name" : "Return", "patterns" : [ - "return %objects%", + "return %objects%", "pattern_end" ], @@ -2499,7 +2503,7 @@ Starting with 2.2-dev24, you can replace items in a inventory too.", "id" : "EffSendBlockChange", "name" : "Send Block Change", "patterns" : [ - "make %players% see %blocks% as %item type/block data%", + "make %players% see %blocks% as %item type/block data%", "pattern_end" ], @@ -2511,8 +2515,8 @@ Starting with 2.2-dev24, you can replace items in a inventory too.", "id" : "EffSendResourcePack", "name" : "Send Resource Pack", "patterns" : [ - "send [the] resource pack [from [[the] URL]] %text% to %players%", -"send [the] resource pack [from [[the] URL]] %text% with hash %text% to %players%", + "send [the] resource pack [from [[the] URL]] %text% to %players%", +"send [the] resource pack [from [[the] URL]] %text% with hash %text% to %players%", "pattern_end" ], @@ -2533,8 +2537,8 @@ status of the sent resource pack request.", "id" : "EffShear", "name" : "Shear", "patterns" : [ - "shear %living entities%", -"un[-]shear %living entities%", + "shear %living entities%", +"un[-]shear %living entities%", "pattern_end" ], @@ -2546,8 +2550,8 @@ status of the sent resource pack request.", "id" : "EffShoot", "name" : "Shoot", "patterns" : [ - "shoot %entity types% [from %living entities/locations%] [(at|with) (speed|velocity) %number%] [%direction%]", -"(make|let) %living entities/locations% shoot %entity types% [(at|with) (speed|velocity) %number%] [%direction%]", + "shoot %entity types% [from %living entities/locations%] [(at|with) (speed|velocity) %number%] [%direction%]", +"(make|let) %living entities/locations% shoot %entity types% [(at|with) (speed|velocity) %number%] [%direction%]", "pattern_end" ], @@ -2559,10 +2563,10 @@ status of the sent resource pack request.", "id" : "EffSilence", "name" : "Silence Entity", "patterns" : [ - "silence %entities%", -"unsilence %entities%", -"make %entities% silent", -"make %entities% not silent", + "silence %entities%", +"unsilence %entities%", +"make %entities% silent", +"make %entities% not silent", "pattern_end" ], @@ -2574,8 +2578,8 @@ status of the sent resource pack request.", "id" : "EffSpawn", "name" : "Spawn", "patterns" : [ - "(spawn|summon) %entity types% [%directions% %locations%]", -"(spawn|summon) %number% of %entity types% [%directions% %locations%]", + "(spawn|summon) %entity types% [%directions% %locations%]", +"(spawn|summon) %number% of %entity types% [%directions% %locations%]", "pattern_end" ], @@ -2600,8 +2604,8 @@ status of the sent resource pack request.", "id" : "EffStopSound", "name" : "Stop Sound", "patterns" : [ - "stop sound[s] %texts% [(in|from) %sound category%] [(from playing to|for) %players%]", -"stop playing sound[s] %texts% [(in|from) %sound category%] [(to|for) %players%]", + "stop sound[s] %texts% [(in|from) %sound category%] [(from playing to|for) %players%]", +"stop playing sound[s] %texts% [(in|from) %sound category%] [(to|for) %players%]", "pattern_end" ], @@ -2615,8 +2619,8 @@ Please note that sound names can get changed in any Minecraft or Spigot version, "id" : "EffSwingHand", "name" : "Swing Hand", "patterns" : [ - "make %living entities% swing [their] [main] hand", -"make %living entities% swing [their] off[ ]hand", + "make %living entities% swing [their] [main] hand", +"make %living entities% swing [their] off[ ]hand", "pattern_end" ], @@ -2628,7 +2632,7 @@ Please note that sound names can get changed in any Minecraft or Spigot version, "id" : "EffTeleport", "name" : "Teleport", "patterns" : [ - "[(force)] teleport %entities% (to|%direction%) %location%", + "[(force)] teleport %entities% (to|%direction%) %location%", "pattern_end" ], @@ -2643,8 +2647,8 @@ which may cause lag spikes or server crashes when using this effect to teleport "id" : "EffResetTitle", "name" : "Title - Reset", "patterns" : [ - "reset [the] title[s] [of %players%]", -"reset [the] %players%'[s] title[s]", + "reset [the] title[s] [of %players%]", +"reset [the] %players%'[s] title[s]", "pattern_end" ], @@ -2656,8 +2660,8 @@ which may cause lag spikes or server crashes when using this effect to teleport "id" : "EffSendTitle", "name" : "Title - Send", "patterns" : [ - "send title %text% [with subtitle %text%] [to %players%] [for %time span%] [with fade[(-| )]in %time span%] [(and|with) fade[(-| )]out %time span%]", -"send subtitle %text% [to %players%] [for %time span%] [with fade[(-| )]in %time span%] [(and|with) fade[(-| )]out %time span%]", + "send title %text% [with subtitle %text%] [to %players%] [for %time span%] [with fade[(-| )]in %time span%] [(and|with) fade[(-| )]out %time span%]", +"send subtitle %text% [to %players%] [for %time span%] [with fade[(-| )]in %time span%] [(and|with) fade[(-| )]out %time span%]", "pattern_end" ], @@ -2670,9 +2674,9 @@ Note: if no input is given for the title/subtitle or the times,it will keep the "id" : "EffToggle", "name" : "Toggle", "patterns" : [ - "(close|turn off|de[-]activate) %blocks%", -"(toggle|switch) [[the] state of] %blocks%", -"(open|turn on|activate) %blocks%", + "(close|turn off|de[-]activate) %blocks%", +"(toggle|switch) [[the] state of] %blocks%", +"(open|turn on|activate) %blocks%", "pattern_end" ], @@ -2684,8 +2688,8 @@ Note: if no input is given for the title/subtitle or the times,it will keep the "id" : "EffToggleFlight", "name" : "Toggle Flight", "patterns" : [ - "(allow|enable) (fly|flight) (for|to) %players%", -"(disallow|disable) (fly|flight) (for|to) %players%", + "(allow|enable) (fly|flight) (for|to) %players%", +"(disallow|disable) (fly|flight) (for|to) %players%", "pattern_end" ], @@ -2697,8 +2701,8 @@ Note: if no input is given for the title/subtitle or the times,it will keep the "id" : "EffTree", "name" : "Tree", "patterns" : [ - "(grow|create|generate) tree [of type %tree type%] %directions% %locations%", -"(grow|create|generate) %tree type% %directions% %locations%", + "(grow|create|generate) tree [of type %tree type%] %directions% %locations%", +"(grow|create|generate) %tree type% %directions% %locations%", "pattern_end" ], @@ -2711,7 +2715,7 @@ This may require that there is enough space above the given location and that th "id" : "EffVectorRotateAroundAnother", "name" : "Vectors - Rotate Around Vector", "patterns" : [ - "rotate %vectors% around %vector% by %number% [degrees]", + "rotate %vectors% around %vector% by %number% [degrees]", "pattern_end" ], @@ -2723,7 +2727,7 @@ This may require that there is enough space above the given location and that th "id" : "EffVectorRotateXYZ", "name" : "Vectors - Rotate around XYZ", "patterns" : [ - "rotate %vectors% around (x|y|z)(-| )axis by %number% [degrees]", + "rotate %vectors% around (x|y|z)(-| )axis by %number% [degrees]", "pattern_end" ], @@ -2735,9 +2739,9 @@ This may require that there is enough space above the given location and that th "id" : "EffVehicle", "name" : "Vehicle", "patterns" : [ - "(make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%", -"[(make|let|force) %entities% [to] (dismount|(dismount|leave) (from|of)] [(any|the[ir]|his|her)] vehicle[s])", -"[(eject|dismount) (any|the)] passenger[s] (of|from) %entities%", + "(make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%", +"(make|let|force) %entities% [to] (dismount|(dismount|leave) [(from|of)] [(any|the[ir]|his|her)] vehicle[s])", +"(eject|dismount) [(any|the)] passenger[s] (of|from) %entities%", "pattern_end" ], @@ -2749,7 +2753,7 @@ This may require that there is enough space above the given location and that th "id" : "EffOp", "name" : "op/deop", "patterns" : [ - "[de[-]]op %offline players%", + "[de[-]]op %offline players%", "pattern_end" ], @@ -2766,7 +2770,7 @@ This may require that there is enough space above the given location and that th "id" : "at_time", "name" : "At Time", "patterns" : [ - "at %time% [in %worlds%]", + "at %time% [in %worlds%]", "pattern_end" ], @@ -2778,7 +2782,7 @@ This may require that there is enough space above the given location and that th "id" : "aoe_cloud_effect", "name" : "On AoE Cloud Effect", "patterns" : [ - "(area|AoE) [cloud] effect", + "[on] (area|AoE) [cloud] effect", "pattern_end" ], @@ -2790,7 +2794,7 @@ This may require that there is enough space above the given location and that th "id" : "arm_swing", "name" : "On Arm Swing", "patterns" : [ - "[player] arm swing", + "[on] [player] arm swing", "pattern_end" ], @@ -2802,7 +2806,7 @@ This may require that there is enough space above the given location and that th "id" : "armor_change", "name" : "On Armor Change", "patterns" : [ - "[player] armor change[d]", + "[on] [player] armor change[d]", "pattern_end" ], @@ -2814,8 +2818,8 @@ This may require that there is enough space above the given location and that th "id" : "bed_enter", "name" : "On Bed Enter", "patterns" : [ - "bed enter[ing]", -"[player] enter[ing] [a] bed", + "[on] bed enter[ing]", +"[on] [player] enter[ing] [a] bed", "pattern_end" ], @@ -2827,8 +2831,8 @@ This may require that there is enough space above the given location and that th "id" : "bed_leave", "name" : "On Bed Leave", "patterns" : [ - "bed leav(e|ing)", -"[player] leav(e|ing) [a] bed", + "[on] bed leav(e|ing)", +"[on] [player] leav(e|ing) [a] bed", "pattern_end" ], @@ -2840,7 +2844,7 @@ This may require that there is enough space above the given location and that th "id" : "block_damage", "name" : "On Block Damage", "patterns" : [ - "block damag(ing|e)", + "[on] block damag(ing|e)", "pattern_end" ], @@ -2852,7 +2856,7 @@ This may require that there is enough space above the given location and that th "id" : "block_fertilize", "name" : "On Block Fertilize", "patterns" : [ - "[block] fertilize", + "[on] [block] fertilize", "pattern_end" ], @@ -2864,7 +2868,7 @@ This may require that there is enough space above the given location and that th "id" : "block_growth", "name" : "On Block Growth", "patterns" : [ - "(plant|crop|block) grow[(th|ing)] [[of] %item types%]", + "[on] (plant|crop|block) grow[(th|ing)] [[of] %item types%]", "pattern_end" ], @@ -2876,7 +2880,7 @@ This may require that there is enough space above the given location and that th "id" : "book_edit", "name" : "On Book Edit", "patterns" : [ - "book (edit|change|write)", + "[on] book (edit|change|write)", "pattern_end" ], @@ -2888,7 +2892,7 @@ This may require that there is enough space above the given location and that th "id" : "book_sign", "name" : "On Book Sign", "patterns" : [ - "book sign[ing]", + "[on] book sign[ing]", "pattern_end" ], @@ -2900,7 +2904,7 @@ This may require that there is enough space above the given location and that th "id" : "break_mine", "name" : "On Break / Mine", "patterns" : [ - "[block] (break[ing]|min(e|ing)) [[of] %item types/block datas%]", + "[on] [block] (break[ing]|min(e|ing)) [[of] %item types/block datas%]", "pattern_end" ], @@ -2912,8 +2916,8 @@ This may require that there is enough space above the given location and that th "id" : "bucket_empty", "name" : "On Bucket Empty", "patterns" : [ - "bucket empty[ing]", -"[player] empty[ing] [a] bucket", + "[on] bucket empty[ing]", +"[on] [player] empty[ing] [a] bucket", "pattern_end" ], @@ -2925,8 +2929,8 @@ This may require that there is enough space above the given location and that th "id" : "bucket_fill", "name" : "On Bucket fill", "patterns" : [ - "bucket fill[ing]", -"[player] fill[ing] [a] bucket", + "[on] bucket fill[ing]", +"[on] [player] fill[ing] [a] bucket", "pattern_end" ], @@ -2938,7 +2942,7 @@ This may require that there is enough space above the given location and that th "id" : "burn", "name" : "On Burn", "patterns" : [ - "[block] burn[ing] [[of] %item types/block datas%]", + "[on] [block] burn[ing] [[of] %item types/block datas%]", "pattern_end" ], @@ -2950,7 +2954,7 @@ This may require that there is enough space above the given location and that th "id" : "can_build_check", "name" : "On Can Build Check", "patterns" : [ - "[block] can build check", + "[on] [block] can build check", "pattern_end" ], @@ -2962,19 +2966,19 @@ This may require that there is enough space above the given location and that th "id" : "chat", "name" : "On Chat", "patterns" : [ - "chat", + "[on] chat", "pattern_end" ], "since" : "1.4.1", "description" : "Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients.", - "examples" : "on chat:\\n if player has permission \"owner\":\\n set chat format to \"[player]: [message]\"\\n else if player has permission \"admin\":\\n set chat format to \"[player]: [message]\"\\n else: #default message format\\n set chat format to \"[player]: [message]\"" + "examples" : "on chat:\\n if player has permission \"owner\":\\n set chat format to \"<red>[player]<light gray>: <light red>[message]\"\\n else if player has permission \"admin\":\\n set chat format to \"<light red>[player]<light gray>: <orange>[message]\"\\n else: #default message format\\n set chat format to \"<orange>[player]<light gray>: <white>[message]\"" }, { "id" : "chunk_generate", "name" : "On Chunk Generate", "patterns" : [ - "chunk (generat|populat)(e|ing)", + "[on] chunk (generat|populat)(e|ing)", "pattern_end" ], @@ -2986,7 +2990,7 @@ This may require that there is enough space above the given location and that th "id" : "chunk_load", "name" : "On Chunk Load", "patterns" : [ - "chunk load[ing]", + "[on] chunk load[ing]", "pattern_end" ], @@ -2998,7 +3002,7 @@ This may require that there is enough space above the given location and that th "id" : "chunk_unload", "name" : "On Chunk Unload", "patterns" : [ - "chunk unload[ing]", + "[on] chunk unload[ing]", "pattern_end" ], @@ -3010,8 +3014,8 @@ This may require that there is enough space above the given location and that th "id" : "click", "name" : "On Click", "patterns" : [ - "[(right|left)[( |-)]][mouse[( |-)]]click[ing] [on %entity type/item type%] [(with|using|holding) %item type%]", -"[(right|left)[( |-)]][mouse[( |-)]]click[ing] (with|using|holding) %item type% on %entity type/item type%", + "[on] [(right|left)[( |-)]][mouse[( |-)]]click[ing] [on %entity type/item type%] [(with|using|holding) %item type%]", +"[on] [(right|left)[( |-)]][mouse[( |-)]]click[ing] (with|using|holding) %item type% on %entity type/item type%", "pattern_end" ], @@ -3023,7 +3027,7 @@ This may require that there is enough space above the given location and that th "id" : "combust", "name" : "On Combust", "patterns" : [ - "combust[ing]", + "[on] combust[ing]", "pattern_end" ], @@ -3035,7 +3039,7 @@ This may require that there is enough space above the given location and that th "id" : "command", "name" : "On Command", "patterns" : [ - "command [%text%]", + "[on] command [%text%]", "pattern_end" ], @@ -3047,7 +3051,7 @@ This may require that there is enough space above the given location and that th "id" : "connect", "name" : "On Connect", "patterns" : [ - "[player] connect[ing]", + "[on] [player] connect[ing]", "pattern_end" ], @@ -3059,7 +3063,7 @@ This may require that there is enough space above the given location and that th "id" : "consume", "name" : "On Consume", "patterns" : [ - "[player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]", + "[on] [player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]", "pattern_end" ], @@ -3071,7 +3075,7 @@ This may require that there is enough space above the given location and that th "id" : "craft", "name" : "On Craft", "patterns" : [ - "[player] craft[ing] [[of] %item types%]", + "[on] [player] craft[ing] [[of] %item types%]", "pattern_end" ], @@ -3083,7 +3087,7 @@ This may require that there is enough space above the given location and that th "id" : "creeper_power", "name" : "On Creeper Power", "patterns" : [ - "creeper power", + "[on] creeper power", "pattern_end" ], @@ -3095,7 +3099,7 @@ This may require that there is enough space above the given location and that th "id" : "damage", "name" : "On Damage", "patterns" : [ - "damag(e|ing) [of %entity type%]", + "[on] damag(e|ing) [of %entity type%]", "pattern_end" ], @@ -3107,7 +3111,7 @@ This may require that there is enough space above the given location and that th "id" : "death", "name" : "On Death", "patterns" : [ - "death [of %entity types%]", + "[on] death [of %entity types%]", "pattern_end" ], @@ -3119,7 +3123,7 @@ This may require that there is enough space above the given location and that th "id" : "dispense", "name" : "On Dispense", "patterns" : [ - "dispens(e|ing) [[of] %item types%]", + "[on] dispens(e|ing) [[of] %item types%]", "pattern_end" ], @@ -3131,7 +3135,7 @@ This may require that there is enough space above the given location and that th "id" : "drop", "name" : "On Drop", "patterns" : [ - "[player] drop[ing] [[of] %item types%]", + "[on] [player] drop[ing] [[of] %item types%]", "pattern_end" ], @@ -3143,7 +3147,7 @@ This may require that there is enough space above the given location and that th "id" : "enchant", "name" : "On Enchant", "patterns" : [ - "[item] enchant", + "[on] [item] enchant", "pattern_end" ], @@ -3155,7 +3159,7 @@ This may require that there is enough space above the given location and that th "id" : "enchant_prepare", "name" : "On Enchant Prepare", "patterns" : [ - "[item] enchant prepare", + "[on] [item] enchant prepare", "pattern_end" ], @@ -3167,12 +3171,12 @@ This may require that there is enough space above the given location and that th "id" : "endermansheepsilverfishfalling_block", "name" : "On Enderman/Sheep/Silverfish/Falling Block", "patterns" : [ - "enderman place", -"enderman pickup", -"sheep eat", -"silverfish enter", -"silverfish exit", -"falling block land[ing]", + "[on] enderman place", +"[on] enderman pickup", +"[on] sheep eat", +"[on] silverfish enter", +"[on] silverfish exit", +"[on] falling block land[ing]", "pattern_end" ], @@ -3184,7 +3188,7 @@ This may require that there is enough space above the given location and that th "id" : "entity_dismount", "name" : "On Entity Dismount", "patterns" : [ - "dismount[ing]", + "[on] dismount[ing]", "pattern_end" ], @@ -3196,7 +3200,7 @@ This may require that there is enough space above the given location and that th "id" : "entity_mount", "name" : "On Entity Mount", "patterns" : [ - "mount[ing]", + "[on] mount[ing]", "pattern_end" ], @@ -3208,7 +3212,7 @@ This may require that there is enough space above the given location and that th "id" : "entity_portal", "name" : "On Entity Portal", "patterns" : [ - "entity portal", + "[on] entity portal", "pattern_end" ], @@ -3220,8 +3224,8 @@ This may require that there is enough space above the given location and that th "id" : "experience_spawn", "name" : "On Experience Spawn", "patterns" : [ - "[e]xp[erience] [orb] spawn", -"spawn of [a[n]] [e]xp[erience] [orb]", + "[on] [e]xp[erience] [orb] spawn", +"[on] spawn of [a[n]] [e]xp[erience] [orb]", "pattern_end" ], @@ -3233,7 +3237,7 @@ This may require that there is enough space above the given location and that th "id" : "explode", "name" : "On Explode", "patterns" : [ - "explo(d(e|ing)|sion)", + "[on] explo(d(e|ing)|sion)", "pattern_end" ], @@ -3245,7 +3249,7 @@ This may require that there is enough space above the given location and that th "id" : "explosion_prime", "name" : "On Explosion Prime", "patterns" : [ - "explosion prime", + "[on] explosion prime", "pattern_end" ], @@ -3257,7 +3261,7 @@ This may require that there is enough space above the given location and that th "id" : "fade", "name" : "On Fade", "patterns" : [ - "[block] fad(e|ing) [[of] %item types/block datas%]", + "[on] [block] fad(e|ing) [[of] %item types/block datas%]", "pattern_end" ], @@ -3269,7 +3273,7 @@ This may require that there is enough space above the given location and that th "id" : "firework_explode", "name" : "On Firework Explode", "patterns" : [ - "[a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]", + "[on] [a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]", "pattern_end" ], @@ -3281,7 +3285,7 @@ This may require that there is enough space above the given location and that th "id" : "first_join", "name" : "On First Join", "patterns" : [ - "first (join|login)", + "[on] first (join|login)", "pattern_end" ], @@ -3293,7 +3297,7 @@ This may require that there is enough space above the given location and that th "id" : "fishing", "name" : "On Fishing", "patterns" : [ - "[player] fish[ing]", + "[on] [player] fish[ing]", "pattern_end" ], @@ -3305,8 +3309,8 @@ This may require that there is enough space above the given location and that th "id" : "flight_toggle", "name" : "On Flight Toggle", "patterns" : [ - "[player] flight toggl(e|ing)", -"[player] toggl(e|ing) flight", + "[on] [player] flight toggl(e|ing)", +"[on] [player] toggl(e|ing) flight", "pattern_end" ], @@ -3318,8 +3322,8 @@ This may require that there is enough space above the given location and that th "id" : "flow", "name" : "On Flow", "patterns" : [ - "[block] flow[ing]", -"block mov(e|ing)", + "[on] [block] flow[ing]", +"[on] block mov(e|ing)", "pattern_end" ], @@ -3331,7 +3335,7 @@ This may require that there is enough space above the given location and that th "id" : "form", "name" : "On Form", "patterns" : [ - "[block] form[ing] [[of] %item types/block datas%]", + "[on] [block] form[ing] [[of] %item types/block datas%]", "pattern_end" ], @@ -3343,7 +3347,7 @@ This may require that there is enough space above the given location and that th "id" : "fuel_burn", "name" : "On Fuel Burn", "patterns" : [ - "fuel burn[ing]", + "[on] fuel burn[ing]", "pattern_end" ], @@ -3355,7 +3359,7 @@ This may require that there is enough space above the given location and that th "id" : "gamemode_change", "name" : "On Gamemode Change", "patterns" : [ - "game[ ]mode change [to %gamemode%]", + "[on] game[ ]mode change [to %gamemode%]", "pattern_end" ], @@ -3367,7 +3371,7 @@ This may require that there is enough space above the given location and that th "id" : "gliding_state_change", "name" : "On Gliding State Change", "patterns" : [ - "(gliding state change|toggl(e|ing) gliding)", + "[on] (gliding state change|toggl(e|ing) gliding)", "pattern_end" ], @@ -3379,7 +3383,7 @@ This may require that there is enough space above the given location and that th "id" : "grow", "name" : "On Grow", "patterns" : [ - "grow [of (%tree type%|%item type%)]", + "[on] grow [of (%tree type%|%item type%)]", "pattern_end" ], @@ -3391,7 +3395,7 @@ This may require that there is enough space above the given location and that th "id" : "hand_item_swap", "name" : "On Hand Item Swap", "patterns" : [ - "swap[ping of] [(hand|held)] item[s]", + "[on] swap[ping of] [(hand|held)] item[s]", "pattern_end" ], @@ -3403,7 +3407,7 @@ This may require that there is enough space above the given location and that th "id" : "heal", "name" : "On Heal", "patterns" : [ - "heal[ing]", + "[on] heal[ing]", "pattern_end" ], @@ -3415,7 +3419,7 @@ This may require that there is enough space above the given location and that th "id" : "horse_jump", "name" : "On Horse Jump", "patterns" : [ - "horse jump", + "[on] horse jump", "pattern_end" ], @@ -3427,7 +3431,7 @@ This may require that there is enough space above the given location and that th "id" : "hunger_meter_change", "name" : "On Hunger Meter Change", "patterns" : [ - "(food|hunger) (level|met(er|re)|bar) chang(e|ing)", + "[on] (food|hunger) (level|met(er|re)|bar) chang(e|ing)", "pattern_end" ], @@ -3439,7 +3443,7 @@ This may require that there is enough space above the given location and that th "id" : "ignition", "name" : "On Ignition", "patterns" : [ - "[block] ignit(e|ion)", + "[on] [block] ignit(e|ion)", "pattern_end" ], @@ -3451,7 +3455,7 @@ This may require that there is enough space above the given location and that th "id" : "inventory_click", "name" : "On Inventory Click", "patterns" : [ - "[player] inventory(-| )click[ing] [[at] %item types%]", + "[on] [player] inventory(-| )click[ing] [[at] %item types%]", "pattern_end" ], @@ -3463,7 +3467,7 @@ This may require that there is enough space above the given location and that th "id" : "inventory_close", "name" : "On Inventory Close", "patterns" : [ - "inventory clos(ing|e[d])", + "[on] inventory clos(ing|e[d])", "pattern_end" ], @@ -3475,7 +3479,7 @@ This may require that there is enough space above the given location and that th "id" : "inventory_open", "name" : "On Inventory Open", "patterns" : [ - "inventory open[ed]", + "[on] inventory open[ed]", "pattern_end" ], @@ -3487,7 +3491,7 @@ This may require that there is enough space above the given location and that th "id" : "inventory_pickup", "name" : "On Inventory Pickup", "patterns" : [ - "inventory pick[ ]up", + "[on] inventory pick[ ]up", "pattern_end" ], @@ -3499,8 +3503,8 @@ This may require that there is enough space above the given location and that th "id" : "item_break", "name" : "On Item Break", "patterns" : [ - "[player] tool break[ing]", -"[player] break[ing] [(a|the)] tool", + "[on] [player] tool break[ing]", +"[on] [player] break[ing] [(a|the)] tool", "pattern_end" ], @@ -3512,7 +3516,7 @@ This may require that there is enough space above the given location and that th "id" : "item_damage", "name" : "On Item Damage", "patterns" : [ - "item damag(e|ing)", + "[on] item damag(e|ing)", "pattern_end" ], @@ -3524,8 +3528,8 @@ This may require that there is enough space above the given location and that th "id" : "item_despawn", "name" : "On Item Despawn", "patterns" : [ - "(item[ ][stack]|[item] %item types%) despawn[ing]", -"[item[ ][stack]] despawn[ing] [[of] %item types%]", + "[on] (item[ ][stack]|[item] %item types%) despawn[ing]", +"[on] [item[ ][stack]] despawn[ing] [[of] %item types%]", "pattern_end" ], @@ -3537,7 +3541,7 @@ This may require that there is enough space above the given location and that th "id" : "item_mend", "name" : "On Item Mend", "patterns" : [ - "item mend[ing]", + "[on] item mend[ing]", "pattern_end" ], @@ -3549,8 +3553,8 @@ This may require that there is enough space above the given location and that th "id" : "item_merge", "name" : "On Item Merge", "patterns" : [ - "(item[ ][stack]|[item] %item types%) merg(e|ing)", -"item[ ][stack] merg(e|ing) [[of] %item types%]", + "[on] (item[ ][stack]|[item] %item types%) merg(e|ing)", +"[on] item[ ][stack] merg(e|ing) [[of] %item types%]", "pattern_end" ], @@ -3562,7 +3566,7 @@ This may require that there is enough space above the given location and that th "id" : "item_spawn", "name" : "On Item Spawn", "patterns" : [ - "item spawn[ing] [[of] %item types%]", + "[on] item spawn[ing] [[of] %item types%]", "pattern_end" ], @@ -3574,7 +3578,7 @@ This may require that there is enough space above the given location and that th "id" : "join", "name" : "On Join", "patterns" : [ - "[player] (login|logging in|join[ing])", + "[on] [player] (login|logging in|join[ing])", "pattern_end" ], @@ -3586,7 +3590,7 @@ This may require that there is enough space above the given location and that th "id" : "jump", "name" : "On Jump", "patterns" : [ - "[player] jump[ing]", + "[on] [player] jump[ing]", "pattern_end" ], @@ -3598,7 +3602,7 @@ This may require that there is enough space above the given location and that th "id" : "kick", "name" : "On Kick", "patterns" : [ - "[player] (kick|being kicked)", + "[on] [player] (kick|being kicked)", "pattern_end" ], @@ -3610,8 +3614,8 @@ This may require that there is enough space above the given location and that th "id" : "language_change", "name" : "On Language Change", "patterns" : [ - "[player] (language|locale) chang(e|ing)", -"[player] chang(e|ing) (language|locale)", + "[on] [player] (language|locale) chang(e|ing)", +"[on] [player] chang(e|ing) (language|locale)", "pattern_end" ], @@ -3623,7 +3627,7 @@ This may require that there is enough space above the given location and that th "id" : "leaves_decay", "name" : "On Leaves Decay", "patterns" : [ - "leaves decay[ing]", + "[on] leaves decay[ing]", "pattern_end" ], @@ -3635,7 +3639,7 @@ This may require that there is enough space above the given location and that th "id" : "level_change", "name" : "On Level Change", "patterns" : [ - "[player] level (change|up|down)", + "[on] [player] level (change|up|down)", "pattern_end" ], @@ -3647,7 +3651,7 @@ This may require that there is enough space above the given location and that th "id" : "lightning_strike", "name" : "On Lightning Strike", "patterns" : [ - "lightning [strike]", + "[on] lightning [strike]", "pattern_end" ], @@ -3659,7 +3663,7 @@ This may require that there is enough space above the given location and that th "id" : "move", "name" : "On Move", "patterns" : [ - "%entity type% (move|walk|step)", + "[on] %entity type% (move|walk|step)", "pattern_end" ], @@ -3671,7 +3675,7 @@ This may require that there is enough space above the given location and that th "id" : "move_on", "name" : "On Move On", "patterns" : [ - "(step|walk)[ing] (on|over) %*item types%", + "[on] (step|walk)[ing] (on|over) %*item types%", "pattern_end" ], @@ -3683,7 +3687,7 @@ This may require that there is enough space above the given location and that th "id" : "physics", "name" : "On Physics", "patterns" : [ - "[block] physics", + "[on] [block] physics", "pattern_end" ], @@ -3695,7 +3699,7 @@ This may require that there is enough space above the given location and that th "id" : "pick_up", "name" : "On Pick Up", "patterns" : [ - "[(player|entity)] (pick[ ]up|picking up) [[of] %item types%]", + "[on] [(player|entity)] (pick[ ]up|picking up) [[of] %item types%]", "pattern_end" ], @@ -3707,7 +3711,7 @@ This may require that there is enough space above the given location and that th "id" : "pig_zap", "name" : "On Pig Zap", "patterns" : [ - "pig[ ]zap", + "[on] pig[ ]zap", "pattern_end" ], @@ -3719,7 +3723,7 @@ This may require that there is enough space above the given location and that th "id" : "piston_extend", "name" : "On Piston Extend", "patterns" : [ - "piston extend[ing]", + "[on] piston extend[ing]", "pattern_end" ], @@ -3731,7 +3735,7 @@ This may require that there is enough space above the given location and that th "id" : "piston_retract", "name" : "On Piston Retract", "patterns" : [ - "piston retract[ing]", + "[on] piston retract[ing]", "pattern_end" ], @@ -3743,7 +3747,7 @@ This may require that there is enough space above the given location and that th "id" : "place", "name" : "On Place", "patterns" : [ - "[block] (plac(e|ing)|build[ing]) [[of] %item types/block datas%]", + "[on] [block] (plac(e|ing)|build[ing]) [[of] %item types/block datas%]", "pattern_end" ], @@ -3755,7 +3759,7 @@ This may require that there is enough space above the given location and that th "id" : "player_world_change", "name" : "On Player World Change", "patterns" : [ - "[player] world chang(ing|e[d])", + "[on] [player] world chang(ing|e[d])", "pattern_end" ], @@ -3767,7 +3771,7 @@ This may require that there is enough space above the given location and that th "id" : "portal", "name" : "On Portal", "patterns" : [ - "[player] portal", + "[on] [player] portal", "pattern_end" ], @@ -3779,7 +3783,7 @@ This may require that there is enough space above the given location and that th "id" : "portal_create", "name" : "On Portal Create", "patterns" : [ - "portal creat(e|ion)", + "[on] portal creat(e|ion)", "pattern_end" ], @@ -3791,8 +3795,8 @@ This may require that there is enough space above the given location and that th "id" : "portal_enter", "name" : "On Portal Enter", "patterns" : [ - "portal enter[ing]", -"entering [a] portal", + "[on] portal enter[ing]", +"[on] entering [a] portal", "pattern_end" ], @@ -3804,7 +3808,7 @@ This may require that there is enough space above the given location and that th "id" : "prepare_craft", "name" : "On Prepare Craft", "patterns" : [ - "[player] (preparing|beginning) craft[ing] [[of] %item types%]", + "[on] [player] (preparing|beginning) craft[ing] [[of] %item types%]", "pattern_end" ], @@ -3816,8 +3820,8 @@ This may require that there is enough space above the given location and that th "id" : "pressure_plate_trip", "name" : "On Pressure Plate / Trip", "patterns" : [ - "[step[ping] on] [a] [pressure] plate", -"(trip|[step[ping] on] [a] tripwire)", + "[on] [step[ping] on] [a] [pressure] plate", +"[on] (trip|[step[ping] on] [a] tripwire)", "pattern_end" ], @@ -3829,7 +3833,7 @@ This may require that there is enough space above the given location and that th "id" : "projectile_collide", "name" : "On Projectile Collide", "patterns" : [ - "projectile collide", + "[on] projectile collide", "pattern_end" ], @@ -3841,7 +3845,7 @@ This may require that there is enough space above the given location and that th "id" : "projectile_hit", "name" : "On Projectile Hit", "patterns" : [ - "projectile hit", + "[on] projectile hit", "pattern_end" ], @@ -3853,7 +3857,7 @@ This may require that there is enough space above the given location and that th "id" : "quit", "name" : "On Quit", "patterns" : [ - "(quit[ting]|disconnect[ing]|log[ ]out|logging out|leav(e|ing))", + "[on] (quit[ting]|disconnect[ing]|log[ ]out|logging out|leav(e|ing))", "pattern_end" ], @@ -3865,7 +3869,7 @@ This may require that there is enough space above the given location and that th "id" : "redstone", "name" : "On Redstone", "patterns" : [ - "redstone [current] [chang(e|ing)]", + "[on] redstone [current] [chang(e|ing)]", "pattern_end" ], @@ -3877,8 +3881,8 @@ This may require that there is enough space above the given location and that th "id" : "region_enterleave", "name" : "On Region Enter/Leave", "patterns" : [ - "(enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)", -"region (enter[ing]|leav(e|ing)|exit[ing])", + "[on] (enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)", +"[on] region (enter[ing]|leav(e|ing)|exit[ing])", "pattern_end" ], @@ -3890,8 +3894,8 @@ This may require that there is enough space above the given location and that th "id" : "resource_pack_request_response", "name" : "On Resource Pack Request Response", "patterns" : [ - "resource pack [request] response", -"resource pack [request] %resource pack states%", + "[on] resource pack [request] response", +"[on] resource pack [request] %resource pack states%", "pattern_end" ], @@ -3903,7 +3907,7 @@ This may require that there is enough space above the given location and that th "id" : "respawn", "name" : "On Respawn", "patterns" : [ - "[player] respawn[ing]", + "[on] [player] respawn[ing]", "pattern_end" ], @@ -3915,7 +3919,7 @@ This may require that there is enough space above the given location and that th "id" : "resurrect_attempt", "name" : "On Resurrect Attempt", "patterns" : [ - "[entity] resurrect[ion] [attempt]", + "[on] [entity] resurrect[ion] [attempt]", "pattern_end" ], @@ -3927,7 +3931,7 @@ This may require that there is enough space above the given location and that th "id" : "riptide", "name" : "On Riptide", "patterns" : [ - "[use of] riptide [enchant[ment]]", + "[on] [use of] riptide [enchant[ment]]", "pattern_end" ], @@ -3939,8 +3943,8 @@ This may require that there is enough space above the given location and that th "id" : "script_loadunload", "name" : "On Script Load/Unload", "patterns" : [ - "[(async)] [script] (load|init|enable)", -"[(async)] [script] (unload|stop|disable)", + "[on] [(async)] [script] (load|init|enable)", +"[on] [(async)] [script] (unload|stop|disable)", "pattern_end" ], @@ -3952,7 +3956,7 @@ This may require that there is enough space above the given location and that th "id" : "server_list_ping", "name" : "On Server List Ping", "patterns" : [ - "server [list] ping", + "[on] server [list] ping", "pattern_end" ], @@ -3964,8 +3968,8 @@ This may require that there is enough space above the given location and that th "id" : "server_startstop", "name" : "On Server Start/Stop", "patterns" : [ - "(server|skript) (start|load|enable)", -"(server|skript) (stop|unload|disable)", + "[on] (server|skript) (start|load|enable)", +"[on] (server|skript) (stop|unload|disable)", "pattern_end" ], @@ -3977,7 +3981,7 @@ This may require that there is enough space above the given location and that th "id" : "sheep_regrow_wool", "name" : "On Sheep Regrow Wool", "patterns" : [ - "sheep [re]grow[ing] wool", + "[on] sheep [re]grow[ing] wool", "pattern_end" ], @@ -3989,7 +3993,7 @@ This may require that there is enough space above the given location and that th "id" : "shoot", "name" : "On Shoot", "patterns" : [ - "[projectile] shoot", + "[on] [projectile] shoot", "pattern_end" ], @@ -4001,20 +4005,20 @@ This may require that there is enough space above the given location and that th "id" : "sign_change", "name" : "On Sign Change", "patterns" : [ - "sign (chang[e]|edit)[ing]", -"[player] (chang[e]|edit)[ing] [a] sign", + "[on] sign (chang[e]|edit)[ing]", +"[on] [player] (chang[e]|edit)[ing] [a] sign", "pattern_end" ], "since" : "1.0", "description" : "As signs are placed empty, this event is called when a player is done editing a sign.", - "examples" : "on sign change:\\n line 2 is empty\\n set line 1 to \"%line 1%\"" + "examples" : "on sign change:\\n line 2 is empty\\n set line 1 to \"<red>%line 1%\"" }, { "id" : "slime_split", "name" : "On Slime Split", "patterns" : [ - "slime split[ting]", + "[on] slime split[ting]", "pattern_end" ], @@ -4026,8 +4030,8 @@ This may require that there is enough space above the given location and that th "id" : "smelt", "name" : "On Smelt", "patterns" : [ - "[ore] smelt[ing]", -"smelt[ing] of ore", + "[on] [ore] smelt[ing]", +"[on] smelt[ing] of ore", "pattern_end" ], @@ -4039,20 +4043,20 @@ This may require that there is enough space above the given location and that th "id" : "sneak_toggle", "name" : "On Sneak Toggle", "patterns" : [ - "[player] toggl(e|ing) sneak", -"[player] sneak toggl(e|ing)", + "[on] [player] toggl(e|ing) sneak", +"[on] [player] sneak toggl(e|ing)", "pattern_end" ], "since" : "1.0", "description" : "Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called.", - "examples" : "# make players that stop sneaking jump\\non sneak toggle:\\n player was sneaking\\n push the player upwards at speed 0.5" + "examples" : "# make players that stop sneaking jump\\non sneak toggle:\\n player is sneaking\\n push the player upwards at speed 0.5" }, { "id" : "spawn", "name" : "On Spawn", "patterns" : [ - "spawn[ing] [of %entity types%]", + "[on] spawn[ing] [of %entity types%]", "pattern_end" ], @@ -4064,7 +4068,7 @@ This may require that there is enough space above the given location and that th "id" : "spawn_change", "name" : "On Spawn Change", "patterns" : [ - "[world] spawn change", + "[on] [world] spawn change", "pattern_end" ], @@ -4076,7 +4080,7 @@ This may require that there is enough space above the given location and that th "id" : "sponge_absorb", "name" : "On Sponge Absorb", "patterns" : [ - "sponge absorb", + "[on] sponge absorb", "pattern_end" ], @@ -4088,7 +4092,7 @@ This may require that there is enough space above the given location and that th "id" : "spread", "name" : "On Spread", "patterns" : [ - "spread[ing]", + "[on] spread[ing]", "pattern_end" ], @@ -4100,8 +4104,8 @@ This may require that there is enough space above the given location and that th "id" : "sprint_toggle", "name" : "On Sprint Toggle", "patterns" : [ - "[player] toggl(e|ing) sprint", -"[player] sprint toggl(e|ing)", + "[on] [player] toggl(e|ing) sprint", +"[on] [player] sprint toggl(e|ing)", "pattern_end" ], @@ -4113,8 +4117,8 @@ This may require that there is enough space above the given location and that th "id" : "swim_toggle", "name" : "On Swim Toggle", "patterns" : [ - "[entity] toggl(e|ing) swim", -"[entity] swim toggl(e|ing)", + "[on] [entity] toggl(e|ing) swim", +"[on] [entity] swim toggl(e|ing)", "pattern_end" ], @@ -4126,7 +4130,7 @@ This may require that there is enough space above the given location and that th "id" : "tame", "name" : "On Tame", "patterns" : [ - "[entity] tam(e|ing)", + "[on] [entity] tam(e|ing)", "pattern_end" ], @@ -4138,8 +4142,8 @@ This may require that there is enough space above the given location and that th "id" : "target", "name" : "On Target", "patterns" : [ - "[entity] target", -"[entity] un[-]target", + "[on] [entity] target", +"[on] [entity] un[-]target", "pattern_end" ], @@ -4151,7 +4155,7 @@ This may require that there is enough space above the given location and that th "id" : "teleport", "name" : "On Teleport", "patterns" : [ - "[player] teleport[ing]", + "[on] [player] teleport[ing]", "pattern_end" ], @@ -4163,8 +4167,8 @@ This may require that there is enough space above the given location and that th "id" : "throwing_of_an_egg", "name" : "On Throwing of an Egg", "patterns" : [ - "throw[ing] [of] [an] egg", -"[player] egg throw", + "[on] throw[ing] [of] [an] egg", +"[on] [player] egg throw", "pattern_end" ], @@ -4176,7 +4180,7 @@ This may require that there is enough space above the given location and that th "id" : "tool_change", "name" : "On Tool Change", "patterns" : [ - "[player['s]] (tool|item held|held item) chang(e|ing)", + "[on] [player['s]] (tool|item held|held item) chang(e|ing)", "pattern_end" ], @@ -4188,8 +4192,8 @@ This may require that there is enough space above the given location and that th "id" : "vehicle_create", "name" : "On Vehicle Create", "patterns" : [ - "vehicle create", -"creat(e|ing|ion of) [a] vehicle", + "[on] vehicle create", +"[on] creat(e|ing|ion of) [a] vehicle", "pattern_end" ], @@ -4201,8 +4205,8 @@ This may require that there is enough space above the given location and that th "id" : "vehicle_damage", "name" : "On Vehicle Damage", "patterns" : [ - "vehicle damage", -"damag(e|ing) [a] vehicle", + "[on] vehicle damage", +"[on] damag(e|ing) [a] vehicle", "pattern_end" ], @@ -4214,8 +4218,8 @@ This may require that there is enough space above the given location and that th "id" : "vehicle_destroy", "name" : "On Vehicle Destroy", "patterns" : [ - "vehicle destroy", -"destr(oy[ing]|uction of) [a] vehicle", + "[on] vehicle destroy", +"[on] destr(oy[ing]|uction of) [a] vehicle", "pattern_end" ], @@ -4227,8 +4231,8 @@ This may require that there is enough space above the given location and that th "id" : "vehicle_enter", "name" : "On Vehicle Enter", "patterns" : [ - "vehicle enter", -"enter[ing] [a] vehicle", + "[on] vehicle enter", +"[on] enter[ing] [a] vehicle", "pattern_end" ], @@ -4240,8 +4244,8 @@ This may require that there is enough space above the given location and that th "id" : "vehicle_exit", "name" : "On Vehicle Exit", "patterns" : [ - "vehicle exit", -"exit[ing] [a] vehicle", + "[on] vehicle exit", +"[on] exit[ing] [a] vehicle", "pattern_end" ], @@ -4253,7 +4257,7 @@ This may require that there is enough space above the given location and that th "id" : "weather_change", "name" : "On Weather Change", "patterns" : [ - "weather change [to %weather types%]", + "[on] weather change [to %weather types%]", "pattern_end" ], @@ -4265,7 +4269,7 @@ This may require that there is enough space above the given location and that th "id" : "world_init", "name" : "On World Init", "patterns" : [ - "world init[ialization]", + "[on] world init[ialization]", "pattern_end" ], @@ -4277,7 +4281,7 @@ This may require that there is enough space above the given location and that th "id" : "world_load", "name" : "On World Load", "patterns" : [ - "world load[ing]", + "[on] world load[ing]", "pattern_end" ], @@ -4289,7 +4293,7 @@ This may require that there is enough space above the given location and that th "id" : "world_save", "name" : "On World Save", "patterns" : [ - "world sav(e|ing)", + "[on] world sav(e|ing)", "pattern_end" ], @@ -4301,7 +4305,7 @@ This may require that there is enough space above the given location and that th "id" : "world_unload", "name" : "On World Unload", "patterns" : [ - "world unload[ing]", + "[on] world unload[ing]", "pattern_end" ], @@ -4313,7 +4317,7 @@ This may require that there is enough space above the given location and that th "id" : "zombie_break_door", "name" : "On Zombie Break Door", "patterns" : [ - "zombie break[ing] [a] [wood[en]] door", + "[on] zombie break[ing] [a] [wood[en]] door", "pattern_end" ], @@ -4325,7 +4329,7 @@ This may require that there is enough space above the given location and that th "id" : "periodical", "name" : "Periodical", "patterns" : [ - "every %time span%", + "every %time span%", "pattern_end" ], @@ -4334,10 +4338,10 @@ This may require that there is enough space above the given location and that th "examples" : "every 2 seconds:\\nevery minecraft hour:\\nevery tick: # can cause lag depending on the code inside the event\\nevery minecraft days:" }, { - "id" : "periodical", + "id" : "eventperiodical", "name" : "Periodical", "patterns" : [ - "every %time span% in [world[s]] %worlds%", + "every %time span% in [world[s]] %worlds%", "pattern_end" ], @@ -4384,14 +4388,14 @@ This may require that there is enough space above the given location and that th ], "since" : "2.2-dev35", "description" : "All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed.", - "examples" : "command /group :\\n trigger:\\n if argument is \"list\":\\n send \"%all groups%\"" + "examples" : "command /group <text>:\\n trigger:\\n if argument is \"list\":\\n send \"%all groups%\"" }, { "id" : "ExprPermissions", "name" : "All Permissions", "patterns" : [ - "[(all [[of] the]|the)] permissions (from|of) %players%", -"[(all [[of] the]|the)] %players%'[s] permissions", + "[(all [[of] the]|the)] permissions (from|of) %players%", +"[(all [[of] the]|the)] %players%'[s] permissions", "pattern_end" ], @@ -4429,7 +4433,7 @@ This may require that there is enough space above the given location and that th "id" : "ExprAlphabetList", "name" : "Alphabetical Sort", "patterns" : [ - "alphabetically sorted %texts%", + "alphabetically sorted %texts%", "pattern_end" ], @@ -4441,8 +4445,8 @@ This may require that there is enough space above the given location and that th "id" : "ExprAltitude", "name" : "Altitude", "patterns" : [ - "[the] altitude[s] of %locations%", -"%locations%'[s] altitude[s]", + "[the] altitude[s] of %locations%", +"%locations%'[s] altitude[s]", "pattern_end" ], @@ -4454,8 +4458,8 @@ This may require that there is enough space above the given location and that th "id" : "ExprAmount", "name" : "Amount", "patterns" : [ - "(amount|number|size) of %objects%", -"recursive (amount|number|size) of %objects%", + "(amount|number|size) of %objects%", +"recursive (amount|number|size) of %objects%", "pattern_end" ], @@ -4464,13 +4468,17 @@ This may require that there is enough space above the given location and that th 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. Also, you can get the recursive size of a list, which will return the recursive size of the list with sublists included, e.g. -{list::*} Structure - ├──── {list::1}: 1 - ├──── {list::2}: 2 - │ ├──── {list::2::1}: 3 - │ │ └──── {list::2::1::1}: 4 - │ └──── {list::2::2}: 5 - └──── {list::3}: 6 + +
+{list::*} Structure
+ ├──── {list::1}: 1
+ ├──── {list::2}: 2
+ │ ├──── {list::2::1}: 3
+ │ │ └──── {list::2::1::1}: 4
+ │ └──── {list::2::2}: 5
+ └──── {list::3}: 6 +
+ Where using %size of {list::*}% will only return 3 (the first layer of indices only), while %recursive size of {list::*}% will return 6 (the entire list) Please note that getting a list's recursive size can cause lag if the list is large, so only use this expression if you need to!", "examples" : "message \"There are %number of all players% players online!\"" @@ -4479,7 +4487,7 @@ Please note that getting a list's recursive size can cause lag if the list is la "id" : "ExprAmountOfItems", "name" : "Amount of Items", "patterns" : [ - "[the] (amount|number) of %item types% (in|of) %inventories%", + "[the] (amount|number) of %item types% (in|of) %inventories%", "pattern_end" ], @@ -4508,8 +4516,8 @@ Please note that getting a list's recursive size can cause lag if the list is la "[the] arg[ument][s](-| )<(\\d+)>", "[the] <(\\d*1)st|(\\d*2)nd|(\\d*3)rd|(\\d*[4-90])th> arg[ument][s]", "[the] arg[ument][s]", -"[the] %*type%( |-)arg[ument][( |-)<\\d+>]", -"[the] arg[ument]( |-)%*type%[( |-)<\\d+>]", +"[the] %*type%( |-)arg[ument][( |-)<\\d+>]", +"[the] arg[ument]( |-)%*type%[( |-)<\\d+>]", "pattern_end" ], @@ -4522,26 +4530,26 @@ One can also use the type of the argument instead of its index to address the ar "id" : "ExprArithmetic", "name" : "Arithmetic", "patterns" : [ - "\\(%number%\\)[ ]+[ ]\\(%number%\\)", -"\\(%number%\\)[ ]+[ ]%number%", -"%number%[ ]+[ ]\\(%number%\\)", -"%number%[ ]+[ ]%number%", -"\\(%number%\\)[ ]-[ ]\\(%number%\\)", -"\\(%number%\\)[ ]-[ ]%number%", -"%number%[ ]-[ ]\\(%number%\\)", -"%number%[ ]-[ ]%number%", -"\\(%number%\\)[ ]*[ ]\\(%number%\\)", -"\\(%number%\\)[ ]*[ ]%number%", -"%number%[ ]*[ ]\\(%number%\\)", -"%number%[ ]*[ ]%number%", -"\\(%number%\\)[ ]/[ ]\\(%number%\\)", -"\\(%number%\\)[ ]/[ ]%number%", -"%number%[ ]/[ ]\\(%number%\\)", -"%number%[ ]/[ ]%number%", -"\\(%number%\\)[ ]^[ ]\\(%number%\\)", -"\\(%number%\\)[ ]^[ ]%number%", -"%number%[ ]^[ ]\\(%number%\\)", -"%number%[ ]^[ ]%number%", + "\\(%number%\\)[ ]+[ ]\\(%number%\\)", +"\\(%number%\\)[ ]+[ ]%number%", +"%number%[ ]+[ ]\\(%number%\\)", +"%number%[ ]+[ ]%number%", +"\\(%number%\\)[ ]-[ ]\\(%number%\\)", +"\\(%number%\\)[ ]-[ ]%number%", +"%number%[ ]-[ ]\\(%number%\\)", +"%number%[ ]-[ ]%number%", +"\\(%number%\\)[ ]*[ ]\\(%number%\\)", +"\\(%number%\\)[ ]*[ ]%number%", +"%number%[ ]*[ ]\\(%number%\\)", +"%number%[ ]*[ ]%number%", +"\\(%number%\\)[ ]/[ ]\\(%number%\\)", +"\\(%number%\\)[ ]/[ ]%number%", +"%number%[ ]/[ ]\\(%number%\\)", +"%number%[ ]/[ ]%number%", +"\\(%number%\\)[ ]^[ ]\\(%number%\\)", +"\\(%number%\\)[ ]^[ ]%number%", +"%number%[ ]^[ ]\\(%number%\\)", +"%number%[ ]^[ ]%number%", "pattern_end" ], @@ -4553,8 +4561,8 @@ One can also use the type of the argument instead of its index to address the ar "id" : "ExprArmorSlot", "name" : "Armour Slot", "patterns" : [ - "[the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%", -"%living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]", + "[the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%", +"%living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]", "pattern_end" ], @@ -4566,8 +4574,8 @@ One can also use the type of the argument instead of its index to address the ar "id" : "ExprArrowKnockbackStrength", "name" : "Arrow Knockback Strength", "patterns" : [ - "[the] [the] arrow knockback strength of %projectiles%", -"%projectiles%'[s] [the] arrow knockback strength", + "[the] arrow knockback strength of %projectiles%", +"%projectiles%'[s] arrow knockback strength", "pattern_end" ], @@ -4579,7 +4587,7 @@ One can also use the type of the argument instead of its index to address the ar "id" : "ExprArrowsStuck", "name" : "Arrows Stuck", "patterns" : [ - "[number of] arrow[s] stuck in %living entities%", + "[number of] arrow[s] stuck in %living entities%", "pattern_end" ], @@ -4616,8 +4624,8 @@ Please note that the attacker can also be a block, e.g. a cactus or lava, but th "id" : "ExprBed", "name" : "Bed", "patterns" : [ - "[the] bed[s] [location[s]] of %players%", -"%players%'[s] bed[s] [location[s]]", + "[the] bed[s] [location[s]] of %players%", +"%players%'[s] bed[s] [location[s]]", "pattern_end" ], @@ -4629,8 +4637,8 @@ Please note that the attacker can also be a block, e.g. a cactus or lava, but th "id" : "ExprBiome", "name" : "Biome", "patterns" : [ - "[the] biome (of|%direction%) %location%", -"%location%'[s] biome", + "[the] biome (of|%direction%) %location%", +"%location%'[s] biome", "pattern_end" ], @@ -4655,7 +4663,7 @@ Can optionally include a direction as well, e.g. 'block above' or 'block in fron "id" : "ExprBlock", "name" : "Block", "patterns" : [ - "[the] block %direction% [%location%]", + "[the] block %direction% [%location%]", "pattern_end" ], @@ -4668,8 +4676,8 @@ Can optionally include a direction as well, e.g. 'block above' or 'block in fron "id" : "ExprBlockData", "name" : "Block Data", "patterns" : [ - "[the] block[ ]data of %blocks%", -"%blocks%'[s] block[ ]data", + "[the] block[ ]data of %blocks%", +"%blocks%'[s] block[ ]data", "pattern_end" ], @@ -4681,8 +4689,8 @@ Can optionally include a direction as well, e.g. 'block above' or 'block in fron "id" : "ExprBlockHardness", "name" : "Block Hardness", "patterns" : [ - "[the] [block] hardness of %item types%", -"%item types%'[s] [block] hardness", + "[the] [block] hardness of %item types%", +"%item types%'[s] [block] hardness", "pattern_end" ], @@ -4694,8 +4702,8 @@ Can optionally include a direction as well, e.g. 'block above' or 'block in fron "id" : "ExprBlockSphere", "name" : "Block Sphere", "patterns" : [ - "[(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]", -"[(all [[of] the]|the)] blocks around %location% in radius %number%", + "[(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]", +"[(all [[of] the]|the)] blocks around %location% in radius %number%", "pattern_end" ], @@ -4707,12 +4715,12 @@ Can optionally include a direction as well, e.g. 'block above' or 'block in fron "id" : "ExprBlocks", "name" : "Blocks", "patterns" : [ - "[(all [[of] the]|the)] blocks %direction% [%locations%]", -"[(all [[of] the]|the)] blocks from %location% [on] %direction%", -"[(all [[of] the]|the)] blocks from %location% to %location%", -"[(all [[of] the]|the)] blocks between %location% and %location%", -"[(all [[of] the]|the)] blocks within %location% and %location%", -"[(all [[of] the]|the)] blocks (in|within) %chunk%", + "[(all [[of] the]|the)] blocks %direction% [%locations%]", +"[(all [[of] the]|the)] blocks from %location% [on] %direction%", +"[(all [[of] the]|the)] blocks from %location% to %location%", +"[(all [[of] the]|the)] blocks between %location% and %location%", +"[(all [[of] the]|the)] blocks within %location% and %location%", +"[(all [[of] the]|the)] blocks (in|within) %chunk%", "pattern_end" ], @@ -4725,7 +4733,7 @@ Blocks from/to and between will return a straight line whereas blocks within wil "id" : "ExprBlocksInRegion", "name" : "Blocks in Region", "patterns" : [ - "[(all|the)] blocks (in|of) [[the] region[s]] %regions%", + "[(all|the)] blocks (in|of) [[the] region[s]] %regions%", "pattern_end" ], @@ -4738,8 +4746,8 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprBookAuthor", "name" : "Book Author", "patterns" : [ - "[the] [book] (author|writer|publisher) of %item types%", -"%item types%'[s] [book] (author|writer|publisher)", + "[the] [book] (author|writer|publisher) of %item types%", +"%item types%'[s] [book] (author|writer|publisher)", "pattern_end" ], @@ -4751,10 +4759,10 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprBookPages", "name" : "Book Pages", "patterns" : [ - "[all] [the] [book] (pages|content) of %item types%", -"%item types%'s [book] (pages|content)", -"[book] page %number% of %item types%", -"%item types%'s [book] page %number%", + "[all] [the] [book] (pages|content) of %item types%", +"%item types%'s [book] (pages|content)", +"[book] page %number% of %item types%", +"%item types%'s [book] page %number%", "pattern_end" ], @@ -4766,8 +4774,8 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprBookTitle", "name" : "Book Title", "patterns" : [ - "[the] book (name|title) of %item types%", -"%item types%'[s] book (name|title)", + "[the] book (name|title) of %item types%", +"%item types%'[s] book (name|title)", "pattern_end" ], @@ -4780,8 +4788,8 @@ This expression requires a supported regions plugin to be installed.", "name" : "Burn/Cook Time", "patterns" : [ "[the] burn[ing] time", -"[the] (burn|cook)[ing] time of %blocks%", -"%blocks%'[s] (burn|cook)[ing] time", +"[the] (burn|cook)[ing] time of %blocks%", +"%blocks%'[s] (burn|cook)[ing] time", "pattern_end" ], @@ -4794,19 +4802,19 @@ Can also be used to change the burn/cook time of a placed furnace.", "id" : "ExprStringCase", "name" : "Case Text", "patterns" : [ - "%texts% in (upper|lower)[ ]case", -"(upper|lower)[ ]case %texts%", -"capitali(s|z)ed %texts%", -"%texts% in [(lenient|strict) ](proper|title)[ ]case", -"[(lenient|strict) ](proper|title)[ ]case %texts%", -"%texts% in [(lenient|strict) ]camel[ ]case", -"[(lenient|strict) ]camel[ ]case %texts%", -"%texts% in [(lenient|strict) ]pascal[ ]case", -"[(lenient|strict) ]pascal[ ]case %texts%", -"%texts% in [(lower|upper|capital|screaming)[ ]]snake[ ]case", -"[(lower|upper|capital|screaming)[ ]]snake[ ]case %texts%", -"%texts% in [(lower|upper|capital)[ ]]kebab[ ]case", -"[(lower|upper|capital)[ ]]kebab[ ]case %texts%", + "%texts% in (upper|lower)[ ]case", +"(upper|lower)[ ]case %texts%", +"capitali(s|z)ed %texts%", +"%texts% in [(lenient|strict) ](proper|title)[ ]case", +"[(lenient|strict) ](proper|title)[ ]case %texts%", +"%texts% in [(lenient|strict) ]camel[ ]case", +"[(lenient|strict) ]camel[ ]case %texts%", +"%texts% in [(lenient|strict) ]pascal[ ]case", +"[(lenient|strict) ]pascal[ ]case %texts%", +"%texts% in [(lower|upper|capital|screaming)[ ]]snake[ ]case", +"[(lower|upper|capital|screaming)[ ]]snake[ ]case %texts%", +"%texts% in [(lower|upper|capital)[ ]]kebab[ ]case", +"[(lower|upper|capital)[ ]]kebab[ ]case %texts%", "pattern_end" ], @@ -4824,7 +4832,7 @@ Can also be used to change the burn/cook time of a placed furnace.", ], "since" : "2.2-dev31", "description" : "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].", - "examples" : "set the chat format to \"[player]: [message]\"" + "examples" : "set the chat format to \"<yellow>[player]<light gray>: <green>[message]\"" }, { "id" : "ExprChatRecipients", @@ -4842,8 +4850,8 @@ Can also be used to change the burn/cook time of a placed furnace.", "id" : "ExprChunk", "name" : "Chunk", "patterns" : [ - "[the] chunk[s] (of|%directions%) %locations%", -"%locations%'[s] chunk[s]", + "[the] chunk[s] (of|%directions%) %locations%", +"%locations%'[s] chunk[s]", "pattern_end" ], @@ -4855,7 +4863,7 @@ Can also be used to change the burn/cook time of a placed furnace.", "id" : "ExprClicked", "name" : "Clicked Block/Entity/Inventory/Slot", "patterns" : [ - "[the] (clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action|clicked [enchant[ment]] button)", + "[the] (clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action|clicked [enchant[ment]] button)", "pattern_end" ], @@ -4867,8 +4875,8 @@ Can also be used to change the burn/cook time of a placed furnace.", "id" : "ExprColorOf", "name" : "Colour of", "patterns" : [ - "[the] colo[u]r[s] of %blocks/item types/entities/firework effects%", -"%blocks/item types/entities/firework effects%'[s] colo[u]r[s]", + "[the] colo[u]r[s] of %blocks/item types/entities/firework effects%", +"%blocks/item types/entities/firework effects%'[s] colo[u]r[s]", "pattern_end" ], @@ -4880,9 +4888,9 @@ Can also be used to change the burn/cook time of a placed furnace.", "id" : "ExprColoured", "name" : "Coloured / Uncoloured", "patterns" : [ - "(colo[u]r-|colo[u]red )%texts%", -"(format-|formatted )%texts%", -"(un|non)[-](colo[u]r-|colo[u]red |format-|formatted )%texts%", + "(colo[u]r-|colo[u]red )%texts%", +"(format-|formatted )%texts%", +"(un|non)[-](colo[u]r-|colo[u]red |format-|formatted )%texts%", "pattern_end" ], @@ -4911,22 +4919,22 @@ the send effect.", "id" : "ExprCommandInfo", "name" : "Command Info", "patterns" : [ - "[the] main command [label] of command %texts%", -"command %texts%'[s] main command [name]", -"[the] description of command %texts%", -"command %texts%'[s] description", -"[the] label of command %texts%", -"command %texts%'[s] label", -"[the] usage of command %texts%", -"command %texts%'[s] usage", -"[(all|the|all [of] the)] aliases of command %texts%", -"command %texts%'[s] aliases", -"[the] permission of command %texts%", -"command %texts%'[s] permission", -"[the] permission message of command %texts%", -"command %texts%'[s] permission message", -"[the] plugin [owner] of command %texts%", -"command %texts%'[s] plugin [owner]", + "[the] main command [label] of command %texts%", +"command %texts%'[s] main command [name]", +"[the] description of command %texts%", +"command %texts%'[s] description", +"[the] label of command %texts%", +"command %texts%'[s] label", +"[the] usage of command %texts%", +"command %texts%'[s] usage", +"[(all|the|all [of] the)] aliases of command %texts%", +"command %texts%'[s] aliases", +"[the] permission of command %texts%", +"command %texts%'[s] permission", +"[the] permission message of command %texts%", +"command %texts%'[s] permission message", +"[the] plugin [owner] of command %texts%", +"command %texts%'[s] plugin [owner]", "pattern_end" ], @@ -4951,8 +4959,8 @@ If the command sender is a command block, its location can be retrieved by using "id" : "ExprCompassTarget", "name" : "Compass Target", "patterns" : [ - "[the] compass target of %players%", -"%players%'[s] compass target", + "[the] compass target of %players%", +"%players%'[s] compass target", "pattern_end" ], @@ -4993,8 +5001,8 @@ the last usage date, or the cooldown bypass permission.", "id" : "ExprCoordinate", "name" : "Coordinate", "patterns" : [ - "[the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%", -"%locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]", + "[the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%", +"%locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]", "pattern_end" ], @@ -5019,8 +5027,8 @@ You can use the specific type of the entity that's involved in the event, e.g. i "id" : "ExprCursorSlot", "name" : "Cursor Slot", "patterns" : [ - "[the] cursor slot of %players%", -"%players%'[s] cursor slot", + "[the] cursor slot of %players%", +"%players%'[s] cursor slot", "pattern_end" ], @@ -5032,8 +5040,8 @@ You can use the specific type of the entity that's involved in the event, e.g. i "id" : "ExprChestInventory", "name" : "Custom Chest Inventory", "patterns" : [ - "[a [new]] chest inventory (named|with name) %text% [with %number% row[s]]", -"[a [new]] chest inventory with %number% row[s] [(named|with name) %text%]", + "[a [new]] chest inventory (named|with name) %text% [with %number% row[s]]", +"[a [new]] chest inventory with %number% row[s] [(named|with name) %text%]", "pattern_end" ], @@ -5045,8 +5053,8 @@ You can use the specific type of the entity that's involved in the event, e.g. i "id" : "ExprCustomModelData", "name" : "Custom Model Data", "patterns" : [ - "[the] [custom] model data of %item types%", -"%item types%'[s] [custom] model data", + "[the] [custom] model data of %item types%", +"%item types%'[s] [custom] model data", "pattern_end" ], @@ -5082,8 +5090,8 @@ You can use the specific type of the entity that's involved in the event, e.g. i "id" : "ExprDamagedItem", "name" : "Damaged Item", "patterns" : [ - "%item type% with (damage|data) [value] %number%", -"%item type% damaged by %number%", + "%item type% with (damage|data) [value] %number%", +"%item type% damaged by %number%", "pattern_end" ], @@ -5095,8 +5103,8 @@ You can use the specific type of the entity that's involved in the event, e.g. i "id" : "ExprDurability", "name" : "Data/Damage Value", "patterns" : [ - "[the] ((data|damage)[s] [value[s]]|durabilit(y|ies)) of %item types/blocks/slots%", -"%item types/blocks/slots%'[s] ((data|damage)[s] [value[s]]|durabilit(y|ies))", + "[the] ((data|damage)[s] [value[s]]|durabilit(y|ies)) of %item types/blocks/slots%", +"%item types/blocks/slots%'[s] ((data|damage)[s] [value[s]]|durabilit(y|ies))", "pattern_end" ], @@ -5110,8 +5118,8 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDateAgoLater", "name" : "Date Ago/Later", "patterns" : [ - "%time span% (ago|in the past|before [the] [date] %date%)", -"%time span% (later|(from|after) [the] [date] %date%)", + "%time span% (ago|in the past|before [the] [date] %date%)", +"%time span% (later|(from|after) [the] [date] %date%)", "pattern_end" ], @@ -5123,7 +5131,7 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDefaultValue", "name" : "Default Value", "patterns" : [ - "%objects% (otherwise|?) %objects%", + "%objects% (otherwise|?) %objects%", "pattern_end" ], @@ -5135,7 +5143,7 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDifference", "name" : "Difference", "patterns" : [ - "difference (between|of) %object% and %object%", + "difference (between|of) %object% and %object%", "pattern_end" ], @@ -5147,8 +5155,8 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDifficulty", "name" : "Difficulty", "patterns" : [ - "[the] difficult(y|ies) of %worlds%", -"%worlds%'[s] difficult(y|ies)", + "[the] difficult(y|ies) of %worlds%", +"%worlds%'[s] difficult(y|ies)", "pattern_end" ], @@ -5160,11 +5168,11 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDirection", "name" : "Direction", "patterns" : [ - "[%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%]", -"[%number% [[(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% (of|from)]", -"[%number% [[(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) (of|from)]", -"[%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])", -"[%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])", + "[%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%]", +"[%number% [(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% [(of|from)]", +"[%number% [(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) [(of|from)]", +"[%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])", +"[%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])", "pattern_end" ], @@ -5176,7 +5184,7 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDistance", "name" : "Distance", "patterns" : [ - "[the] distance between %location% and %location%", + "[the] distance between %location% and %location%", "pattern_end" ], @@ -5200,8 +5208,8 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprDropsOfBlock", "name" : "Drops Of Block", "patterns" : [ - "[(all|the|all [of] the)] drops of %blocks% [(using|with) %item type% [(as %entity%)]]", -"%blocks%'s drops [(using|with) %item type% [(as %entity%)]]", + "[(all|the|all [of] the)] drops of %blocks% [(using|with) %item type% [(as %entity%)]]", +"%blocks%'s drops [(using|with) %item type% [(as %entity%)]]", "pattern_end" ], @@ -5213,7 +5221,7 @@ but this expression can e.g. be used to \"add 1 to data of <item>\", e.g. "id" : "ExprElement", "name" : "Element of", "patterns" : [ - "([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%", + "([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%", "pattern_end" ], @@ -5264,10 +5272,10 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprEnchantmentLevel", "name" : "Enchantment Level", "patterns" : [ - "[the] [enchant[ment]] level[s] of %enchantments% (on|of) %item types%", -"[the] %enchantments% [enchant[ment]] level[s] (on|of) %item types%", -"%item types%'[s] %enchantments% [enchant[ment]] level[s]", -"%item types%'[s] [enchant[ment]] level[s] of %enchantments%", + "[the] [enchant[ment]] level[s] of %enchantments% (on|of) %item types%", +"[the] %enchantments% [enchant[ment]] level[s] (on|of) %item types%", +"%item types%'[s] %enchantments% [enchant[ment]] level[s]", +"%item types%'[s] [enchant[ment]] level[s] of %enchantments%", "pattern_end" ], @@ -5280,8 +5288,8 @@ This is number that was displayed in the enchantment table, not the actual numbe "name" : "Enchantment Offer", "patterns" : [ "[all [of]] [the] enchant[ment] offers", -"enchant[ment] offer[s] %numbers%", -"[the] %number%(st|nd|rd|th) enchant[ment] offer", +"enchant[ment] offer[s] %numbers%", +"[the] %number%(st|nd|rd|th) enchant[ment] offer", "pattern_end" ], @@ -5293,8 +5301,8 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprEnchantmentOfferCost", "name" : "Enchantment Offer Enchantment Cost", "patterns" : [ - "[the] [enchant[ment]] cost of %enchantment offers%", -"%enchantment offers%'[s] [enchant[ment]] cost", + "[the] [enchant[ment]] cost of %enchantment offers%", +"%enchantment offers%'[s] [enchant[ment]] cost", "pattern_end" ], @@ -5309,8 +5317,8 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprEnderChest", "name" : "Ender Chest", "patterns" : [ - "[the] ender[ ]chest[s] of %players%", -"%players%'[s] ender[ ]chest[s]", + "[the] ender[ ]chest[s] of %players%", +"%players%'[s] ender[ ]chest[s]", "pattern_end" ], @@ -5322,10 +5330,10 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprEntities", "name" : "Entities", "patterns" : [ - "[(all [[of] the]|the)] %*entity types% [(in|of) ([world[s]] %worlds%|%chunks%)]", -"[(all [[of] the]|the)] entities of type[s] %entity types% [(in|of) ([world[s]] %worlds%|%chunks%)]", -"[(all [[of] the]|the)] %*entity types% (within|[with]in radius) %number% [(block[s]|met(er|re)[s])] (of|around) %location%", -"[(all [[of] the]|the)] entities of type[s] %entity types% in radius %number% (of|around) %location%", + "[(all [[of] the]|the)] %*entity types% [(in|of) ([world[s]] %worlds%|%chunks%)]", +"[(all [[of] the]|the)] entities of type[s] %entity types% [(in|of) ([world[s]] %worlds%|%chunks%)]", +"[(all [[of] the]|the)] %*entity types% (within|[with]in radius) %number% [(block[s]|met(er|re)[s])] (of|around) %location%", +"[(all [[of] the]|the)] entities of type[s] %entity types% in radius %number% (of|around) %location%", "pattern_end" ], @@ -5337,8 +5345,8 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprAI", "name" : "Entity AI", "patterns" : [ - "[the] (ai|artificial intelligence) of %living entities%", -"%living entities%'[s] (ai|artificial intelligence)", + "[the] (ai|artificial intelligence) of %living entities%", +"%living entities%'[s] (ai|artificial intelligence)", "pattern_end" ], @@ -5350,8 +5358,8 @@ This is number that was displayed in the enchantment table, not the actual numbe "id" : "ExprEntityAttribute", "name" : "Entity Attribute", "patterns" : [ - "%attribute type% attribute [value] of %entities%", -"%entities%'[s] %attribute type% attribute [value]", + "%attribute type% attribute [value] of %entities%", +"%entities%'[s] %attribute type% attribute [value]", "pattern_end" ], @@ -5365,8 +5373,8 @@ Resetting an entity's attribute is only available in Minecraft 1.11 and above.", "id" : "ExprEntityTamer", "name" : "Entity Owner", "patterns" : [ - "[the] (owner|tamer) of %living entities%", -"%living entities%'[s] (owner|tamer)", + "[the] (owner|tamer) of %living entities%", +"%living entities%'[s] (owner|tamer)", "pattern_end" ], @@ -5378,8 +5386,8 @@ Resetting an entity's attribute is only available in Minecraft 1.11 and above.", "id" : "ExprExhaustion", "name" : "Exhaustion", "patterns" : [ - "[the] exhaustion of %players%", -"%players%'[s] exhaustion", + "[the] exhaustion of %players%", +"%players%'[s] exhaustion", "pattern_end" ], @@ -5445,8 +5453,8 @@ Attempting to change the yield to a value less than 0 will have no effect.", "id" : "ExprExplosiveYield", "name" : "Explosive Yield", "patterns" : [ - "[the] explosive (yield|radius|size) of %entities%", -"%entities%'[s] explosive (yield|radius|size)", + "[the] explosive (yield|radius|size) of %entities%", +"%entities%'[s] explosive (yield|radius|size)", "pattern_end" ], @@ -5459,8 +5467,8 @@ Read this wiki page for "id" : "ExprFacing", "name" : "Facing", "patterns" : [ - "[the] [horizontal] facing of %living entities/blocks%", -"%living entities/blocks%'[s] [horizontal] facing", + "[the] [(horizontal)] facing of %living entities/blocks%", +"%living entities/blocks%'[s] [(horizontal)] facing", "pattern_end" ], @@ -5472,8 +5480,8 @@ Read this wiki page for "id" : "ExprFallDistance", "name" : "Fall Distance", "patterns" : [ - "[the] [the] fall[en] (distance|height) of %entities%", -"%entities%'[s] [the] fall[en] (distance|height)", + "[the] [the] fall[en] (distance|height) of %entities%", +"%entities%'[s] [the] fall[en] (distance|height)", "pattern_end" ], @@ -5497,7 +5505,7 @@ Read this wiki page for "id" : "ExprFilter", "name" : "Filter", "patterns" : [ - "%objects% (where|that match) \\[<.+>\\]", + "%objects% (where|that match) \\[<.+>\\]", "pattern_end" ], @@ -5510,7 +5518,7 @@ Read this wiki page for "name" : "Filter Input", "patterns" : [ "input", -"%*type% input", +"%*type% input", "pattern_end" ], @@ -5534,8 +5542,8 @@ Read this wiki page for "id" : "ExprFireworkEffect", "name" : "Firework Effect", "patterns" : [ - "[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors%", -"[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%", + "[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors%", +"[(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%", "pattern_end" ], @@ -5547,8 +5555,8 @@ Read this wiki page for "id" : "ExprFlightMode", "name" : "Flight Mode", "patterns" : [ - "[the] fl(y[ing]|ight) (mode|state) of %players%", -"%players%'[s] fl(y[ing]|ight) (mode|state)", + "[the] fl(y[ing]|ight) (mode|state) of %players%", +"%players%'[s] fl(y[ing]|ight) (mode|state)", "pattern_end" ], @@ -5560,8 +5568,8 @@ Read this wiki page for "id" : "ExprFoodLevel", "name" : "Food Level", "patterns" : [ - "[the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]", -"%player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]", + "[the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]", +"%player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]", "pattern_end" ], @@ -5573,7 +5581,7 @@ Read this wiki page for "id" : "ExprFormatTime", "name" : "Formatted Time", "patterns" : [ - "%dates% formatted [human-readable] [(with|as) %text%]", + "%dates% formatted [human-readable] [(with|as) %text%]", "pattern_end" ], @@ -5585,10 +5593,10 @@ Read this wiki page for "id" : "ExprTimeState", "name" : "Former/Future State", "patterns" : [ - "[the] (former|past|old) [state] [of] %~object%", -"%~object% before [the event]", -"[the] (future|to-be|new) [state] [of] %~object%", -"%~object%(-to-be| after[(wards| the event)])", + "[the] (former|past|old) [state] [of] %~object%", +"%~object% before [the event]", +"[the] (future|to-be|new) [state] [of] %~object%", +"%~object%(-to-be| after[(wards| the event)])", "pattern_end" ], @@ -5603,8 +5611,8 @@ Note 2: If you don't specify whether to use the past or future state of an expre "name" : "Furnace Slot", "patterns" : [ "(fuel|result) [slot]", -"(ore|fuel|result)[s] [slot[s]] of %blocks%", -"%blocks%'[s] (ore|fuel|result)[s] [slot[s]]", +"(ore|fuel|result)[s] [slot[s]] of %blocks%", +"%blocks%'[s] (ore|fuel|result)[s] [slot[s]]", "pattern_end" ], @@ -5617,8 +5625,8 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGameMode", "name" : "Game Mode", "patterns" : [ - "[the] game[ ]mode of %players%", -"%players%'[s] game[ ]mode", + "[the] game[ ]mode of %players%", +"%players%'[s] game[ ]mode", "pattern_end" ], @@ -5630,7 +5638,7 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGameRule", "name" : "Gamerule Value", "patterns" : [ - "[the] gamerule %gamerule% of %worlds%", + "[the] gamerule %gamerule% of %worlds%", "pattern_end" ], @@ -5642,8 +5650,8 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGlidingState", "name" : "Gliding State", "patterns" : [ - "[the] (gliding|glider) [state] of %living entities%", -"%living entities%'[s] (gliding|glider) [state]", + "[the] (gliding|glider) [state] of %living entities%", +"%living entities%'[s] (gliding|glider) [state]", "pattern_end" ], @@ -5655,8 +5663,8 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGlowing", "name" : "Glowing", "patterns" : [ - "[the] glowing of %entities%", -"%entities%'[s] glowing", + "[the] glowing of %entities%", +"%entities%'[s] glowing", "pattern_end" ], @@ -5668,8 +5676,8 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGravity", "name" : "Gravity", "patterns" : [ - "[the] gravity of %entities%", -"%entities%'[s] gravity", + "[the] gravity of %entities%", +"%entities%'[s] gravity", "pattern_end" ], @@ -5681,8 +5689,8 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprGroup", "name" : "Group", "patterns" : [ - "[the] group[(s)] of %offline players%", -"%offline players%'[s] group[(s)]", + "[the] group[(s)] of %offline players%", +"%offline players%'[s] group[(s)]", "pattern_end" ], @@ -5694,7 +5702,7 @@ Remember to use 'block' and not 'furnace', as 'furnace' "id" : "ExprHash", "name" : "Hash", "patterns" : [ - "%texts% hash[ed] with (MD5|SHA-256)", + "%texts% hash[ed] with (MD5|SHA-256)", "pattern_end" ], @@ -5705,14 +5713,14 @@ SHA-256 is more secure, and can used to hash somewhat confidental data like IP a It is not that secure out of the box, so please consider using salt when dealing with passwords! When hashing data, you must specify algorithms that will be used for security reasons!

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.", - "examples" : "command /setpass :\\n trigger:\\n set {password::%uuid of player%} to text-argument hashed with SHA-256\\ncommand /login :\\n trigger:\\n if text-argument hashed with SHA-256 is {password::%uuid of player%}:\\n message \"Login successful.\"\\n else:\\n message \"Wrong password!\"" + "examples" : "command /setpass <text>:\\n trigger:\\n set {password::%uuid of player%} to text-argument hashed with SHA-256\\ncommand /login <text>:\\n trigger:\\n if text-argument hashed with SHA-256 is {password::%uuid of player%}:\\n message \"Login successful.\"\\n else:\\n message \"Wrong password!\"" }, { "id" : "ExprEyeLocation", "name" : "Head location", "patterns" : [ - "[the] (head|eye[s]) [location[s]] of %living entities%", -"%living entities%'[s] (head|eye[s]) [location[s]]", + "[the] (head|eye[s]) [location[s]] of %living entities%", +"%living entities%'[s] (head|eye[s]) [location[s]]", "pattern_end" ], @@ -5749,8 +5757,8 @@ Please note that this location is only accurate for entities whose head is exact "id" : "ExprHealth", "name" : "Health", "patterns" : [ - "[the] health of %living entities%", -"%living entities%'[s] health", + "[the] health of %living entities%", +"%living entities%'[s] health", "pattern_end" ], @@ -5762,20 +5770,20 @@ Please note that this location is only accurate for entities whose head is exact "id" : "ExprHiddenPlayers", "name" : "Hidden Players", "patterns" : [ - "[(all [[of] the]|the)] hidden players (of|for) %players%", -"[(all [[of] the]|the)] players hidden (from|for|by) %players%", + "[(all [[of] the]|the)] hidden players (of|for) %players%", +"[(all [[of] the]|the)] players hidden (from|for|by) %players%", "pattern_end" ], "since" : "2.3", "description" : "The players hidden from a player that were hidden using the player visibility effect.", - "examples" : "message \"You are currently hiding: %hidden players of the player%\"" + "examples" : "message \"<light red>You are currently hiding: <light gray>%hidden players of the player%\"" }, { "id" : "ExprHighestSolidBlock", "name" : "Highest Solid Block", "patterns" : [ - "highest [(solid|non-air)] block at %locations%", + "highest [(solid|non-air)] block at %locations%", "pattern_end" ], @@ -5799,8 +5807,8 @@ Please note that this location is only accurate for entities whose head is exact "id" : "ExprHotbarSlot", "name" : "Hotbar Slot", "patterns" : [ - "[the] [([currently] selected|current)] hotbar slot of %players%", -"%players%'[s] [([currently] selected|current)] hotbar slot", + "[the] [([currently] selected|current)] hotbar slot of %players%", +"%players%'[s] [([currently] selected|current)] hotbar slot", "pattern_end" ], @@ -5821,14 +5829,14 @@ Please note that this location is only accurate for entities whose head is exact "description" : "The list when you hover on the player counts of the server in the server list. 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. 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.", - "examples" : "on server list ping:\\n clear the hover list\\n add \"Welcome to the Minecraft server!\" to the hover list\\n add \"\" to the hover list # A blank line\\n add \"There are %online players count% online players!\" to the hover list" + "examples" : "on server list ping:\\n clear the hover list\\n add \"&aWelcome to the &6Minecraft &aserver!\" to the hover list\\n add \"\" to the hover list # A blank line\\n add \"&cThere are &6%online players count% &conline players!\" to the hover list" }, { "id" : "ExprHumidity", "name" : "Humidity", "patterns" : [ - "[the] humidit(y|ies) of %blocks%", -"%blocks%'[s] humidit(y|ies)", + "[the] humidit(y|ies) of %blocks%", +"%blocks%'[s] humidit(y|ies)", "pattern_end" ], @@ -5840,8 +5848,8 @@ And note that, for example if there are 5 online players (includes players%", -"%players%'[s] IP[s][( |-)address[es]]", + "IP[s][( |-)address[es]] of %players%", +"%players%'[s] IP[s][( |-)address[es]]", "IP[( |-)address]", "pattern_end" @@ -5854,8 +5862,8 @@ And note that, for example if there are 5 online players (includes item type%", -"%item type%'[s] id[s]", + "[the] id[(s)] of %item type%", +"%item type%'[s] id[(s)]", "pattern_end" ], @@ -5867,7 +5875,7 @@ And note that, for example if there are 5 online players (includes text% in %text%", + "[the] [(first|last)] index of %text% in %text%", "pattern_end" ], @@ -5879,8 +5887,8 @@ And note that, for example if there are 5 online players (includes objects%", -"(all of the|all the|all) (indices|indexes) of %objects%", + "[the] (indexes|indices) of %objects%", +"(all of the|all the|all) (indices|indexes) of %objects%", "pattern_end" ], @@ -5918,21 +5926,21 @@ broadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3" "id" : "ExprInventoryInfo", "name" : "Inventory Holder/Viewers/Rows/Slots", "patterns" : [ - "(holder[s]|viewers|[amount of] rows|[amount of] slots) of %inventories%", -"%inventories%'[s] (holder[s]|viewers|[amount of] rows|[amount of] slots)", + "(holder[s]|viewers|[amount of] rows|[amount of] slots) of %inventories%", +"%inventories%'[s] (holder[s]|viewers|[amount of] rows|[amount of] slots)", "pattern_end" ], "since" : "2.2-dev34, 2.5 (slots)", - "description" : "Gets the amount of rows/slots, viewers and holder of an inventory.", + "description" : "Gets the amount of rows/slots, viewers and holder of an inventory.NOTE: 'Viewers' expression returns a list of players viewing the inventory. Note that a player is considered to be viewing their own inventory and internal crafting screen even when said inventory is not open.", "examples" : "event-inventory's amount of rows\\nholder of player's top inventory\\n{_inventory}'s viewers" }, { "id" : "ExprInventorySlot", "name" : "Inventory Slot", "patterns" : [ - "[the] slot[s] %numbers% of %inventory%", -"%inventory%'[s] slot[s] %numbers%", + "[the] slot[s] %numbers% of %inventory%", +"%inventory%'[s] slot[s] %numbers%", "pattern_end" ], @@ -5956,8 +5964,8 @@ broadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3" "id" : "ExprItemAmount", "name" : "Item Amount", "patterns" : [ - "[the] item[[ ]stack] (amount|size|number) of %slots/item types%", -"%slots/item types%'[s] item[[ ]stack] (amount|size|number)", + "[the] item[[ ]stack] (amount|size|number) of %slots/item types%", +"%slots/item types%'[s] item[[ ]stack] (amount|size|number)", "pattern_end" ], @@ -5969,8 +5977,8 @@ broadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3" "id" : "ExprEnchantments", "name" : "Item Enchantments", "patterns" : [ - "[the] enchantments of %item types%", -"%item types%'[s] enchantments", + "[the] enchantments of %item types%", +"%item types%'[s] enchantments", "pattern_end" ], @@ -5982,20 +5990,20 @@ broadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3" "id" : "ExprItemFrameSlot", "name" : "Item of an Entity", "patterns" : [ - "[the] item of %entities%", -"%entities%'[s] item", + "[the] item of %entities%", +"%entities%'[s] item", "pattern_end" ], "since" : "2.2-dev35, 2.2-dev36 (improved), 2.5.2 (throwable projectiles)", "description" : "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. For throwable projectiles (snowballs, enderpearls etc.),it gets the displayed item. Other entities do not have items associated with them.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "ExprItemWithCustomModelData", "name" : "Item with CustomModelData", "patterns" : [ - "%item type% with [custom] model data %number%", + "%item type% with [custom] model data %number%", "pattern_end" ], @@ -6007,7 +6015,7 @@ broadcast \"%all indexes of {l::*}%\" # result is 1, 2 and 3" "id" : "ExprItemWithLore", "name" : "Item with Lore", "patterns" : [ - "%item type% with [(a|the)] lore %texts%", + "%item type% with [(a|the)] lore %texts%", "pattern_end" ], @@ -6021,9 +6029,9 @@ If multiple strings are passed, each of them will be a separate line in the lore "name" : "Items", "patterns" : [ "[(all [[of] the]|the|every)] item(s|[ ]types)", -"[(all [[of] the]|the)] items of type[s] %item types%", +"[(all [[of] the]|the)] items of type[s] %item types%", "[(all [[of] the]|the|every)] block(s|[ ]types)", -"[(all [[of] the]|the)] blocks of type[s] %item types%", +"[(all [[of] the]|the)] blocks of type[s] %item types%", "pattern_end" ], @@ -6035,7 +6043,7 @@ If multiple strings are passed, each of them will be a separate line in the lore "id" : "ExprItemsIn", "name" : "Items In", "patterns" : [ - "[(all [[of] the]|the)] items ([with]in|of|contained in|out of) [(inventor(y|ies)]) %inventories%", + "[(all [[of] the]|the)] items ([with]in|of|contained in|out of) [inventor(y|ies)] %inventories%", "pattern_end" ], @@ -6048,11 +6056,11 @@ Please note that the positions of the items in the inventory are not saved, only "id" : "ExprJoinSplit", "name" : "Join & Split", "patterns" : [ - "(concat[enate]|join) %texts% [(with|using|by) [[the] delimiter] %text%]", -"split %text% (at|using|by) [[the] delimiter] %text%", -"%text% split (at|using|by) [[the] delimiter] %text%", -"regex split %text% (at|using|by) [[the] delimiter] %text%", -"regex %text% split (at|using|by) [[the] delimiter] %text%", + "(concat[enate]|join) %texts% [(with|using|by) [[the] delimiter] %text%]", +"split %text% (at|using|by) [[the] delimiter] %text%", +"%text% split (at|using|by) [[the] delimiter] %text%", +"regex split %text% (at|using|by) [[the] delimiter] %text%", +"regex %text% split (at|using|by) [[the] delimiter] %text%", "pattern_end" ], @@ -6064,8 +6072,8 @@ Please note that the positions of the items in the inventory are not saved, only "id" : "ExprLanguage", "name" : "Language", "patterns" : [ - "[the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%", -"%players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]", + "[the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%", +"%players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]", "pattern_end" ], @@ -6078,8 +6086,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLastAttacker", "name" : "Last Attacker", "patterns" : [ - "[the] last attacker of %entity%", -"%entity%'[s] last attacker", + "[the] last attacker of %entity%", +"%entity%'[s] last attacker", "pattern_end" ], @@ -6087,12 +6095,25 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "description" : "The last block or entity that attacked an entity.", "examples" : "send \"%last attacker of event-entity%\"" }, +{ + "id" : "ExprLastColor", + "name" : "Last Color", + "patterns" : [ + "[the] last color[s] of %texts%", +"%texts%'[s] last color[s]", + + "pattern_end" + ], + "since" : "2.6", + "description" : "The colors used at the end of a string. The colors of the returned string will be formatted with their symbols.", + "examples" : "set {_color} to the last colors of \"heyyo\"" +}, { "id" : "ExprLastDamage", "name" : "Last Damage", "patterns" : [ - "[the] last damage of %living entities%", -"%living entities%'[s] last damage", + "[the] last damage of %living entities%", +"%living entities%'[s] last damage", "pattern_end" ], @@ -6104,8 +6125,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLastDamageCause", "name" : "Last Damage Cause", "patterns" : [ - "[the] last damage (cause|reason|type) of %living entities%", -"%living entities%'[s] last damage (cause|reason|type)", + "[the] last damage (cause|reason|type) of %living entities%", +"%living entities%'[s] last damage (cause|reason|type)", "pattern_end" ], @@ -6129,8 +6150,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLastResourcePackResponse", "name" : "Last Resource Pack Response", "patterns" : [ - "[the] [last] resource pack response[s] of %players%", -"%players%'[s] [last] resource pack response[s]", + "[the] [last] resource pack response[s] of %players%", +"%players%'[s] [last] resource pack response[s]", "pattern_end" ], @@ -6142,7 +6163,7 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLastSpawnedEntity", "name" : "Last Spawned Entity", "patterns" : [ - "[the] [last[ly]] (spawned|shot) %*entity type%", + "[the] [last[ly]] (spawned|shot) %*entity type%", "[the] [last[ly]] dropped (item)", "pattern_end" @@ -6155,8 +6176,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLastLoginTime", "name" : "Last/First Login Time", "patterns" : [ - "[the] (last|first) login of %offline players%", -"%offline players%'[s] (last|first) login", + "[the] (last|first) login of %offline players%", +"%offline players%'[s] (last|first) login", "pattern_end" ], @@ -6168,8 +6189,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLeashHolder", "name" : "Leash Holder", "patterns" : [ - "[the] leash holder[s] of %living entities%", -"%living entities%'[s] leash holder[s]", + "[the] leash holder[s] of %living entities%", +"%living entities%'[s] leash holder[s]", "pattern_end" ], @@ -6181,8 +6202,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLength", "name" : "Length", "patterns" : [ - "[the] length of %texts%", -"%texts%'[s] length", + "[the] length of %texts%", +"%texts%'[s] length", "pattern_end" ], @@ -6194,8 +6215,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLevel", "name" : "Level", "patterns" : [ - "[the] level of %players%", -"%players%'[s] level", + "[the] level of %players%", +"%players%'[s] level", "pattern_end" ], @@ -6207,8 +6228,8 @@ The vanilla Minecraft client will use lowercase language / country pairs separat "id" : "ExprLevelProgress", "name" : "Level Progress", "patterns" : [ - "[the] level progress of %players%", -"%players%'[s] level progress", + "[the] level progress of %players%", +"%players%'[s] level progress", "pattern_end" ], @@ -6221,7 +6242,7 @@ Changing this value can cause the player's level to change if the resulting leve "id" : "ExprLightLevel", "name" : "Light Level", "patterns" : [ - "[(sky|sun|block)[ ]]light[ ]level [(of|%direction%) %location%]", + "[(sky|sun|block)[ ]]light[ ]level [(of|%direction%) %location%]", "pattern_end" ], @@ -6246,7 +6267,7 @@ It can be separated into sunlight (15 = direct sunlight, 1-14 = indirect) and bl "id" : "ExprLocation", "name" : "Location", "patterns" : [ - "[the] (location|position) %directions% [%location%]", + "[the] (location|position) %directions% [%location%]", "pattern_end" ], @@ -6258,12 +6279,12 @@ It can be separated into sunlight (15 = direct sunlight, 1-14 = indirect) and bl "id" : "ExprLocationOf", "name" : "Location", "patterns" : [ - "(location|position) of %location%", -"%location%'[s] (location|position)", + "(location|position) of %location%", +"%location%'[s] (location|position)", "pattern_end" ], - "since" : "", + "since" : "Unknown", "description" : "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). Please note that the location of an entity is at it's feet, use head location to get the location of the head.", "examples" : "set {home::%uuid of player%} to the location of the player\\nmessage \"You home was set to %player's location% in %player's world%.\"" @@ -6272,7 +6293,7 @@ Please note that the location of an entity is at it's feet, use number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\\)] [[(in|of) [[the] world]] %world%]", + "[the] (location|position) [at] [\\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\\)] [[(in|of) [[the] world]] %world%]", "pattern_end" ], @@ -6296,18 +6317,18 @@ Please note that the location of an entity is at it's feet, use item stack/item type%", -"%item stack/item type%'[s] lore", -"[the] line %number% of [the] lore of %item stack/item type%", -"[the] line %number% of %item stack/item type%'[s] lore", -"[the] %number%(st|nd|rd|th) line of [the] lore of %item stack/item type%", -"[the] %number%(st|nd|rd|th) line of %item stack/item type%'[s] lore", + "[the] lore of %item stack/item type%", +"%item stack/item type%'[s] lore", +"[the] line %number% of [the] lore of %item stack/item type%", +"[the] line %number% of %item stack/item type%'[s] lore", +"[the] %number%(st|nd|rd|th) line of [the] lore of %item stack/item type%", +"[the] %number%(st|nd|rd|th) line of %item stack/item type%'[s] lore", "pattern_end" ], "since" : "2.1", "description" : "An item's lore.", - "examples" : "set the 1st line of the item's lore to \"Excalibur 2.0\"" + "examples" : "set the 1st line of the item's lore to \"<orange>Excalibur 2.0\"" }, { "id" : "ExprMOTD", @@ -6326,8 +6347,8 @@ Please note that the location of an entity is at it's feet, use item stacks/slots%", -"%item stacks/slots%'[s] max[imum] durabilit(y|ies)", + "[the] max[imum] durabilit(y|ies) of %item stacks/slots%", +"%item stacks/slots%'[s] max[imum] durabilit(y|ies)", "pattern_end" ], @@ -6339,8 +6360,8 @@ Please note that the location of an entity is at it's feet, use living entities%", -"%living entities%'[s] max[imum] health", + "[the] max[imum] health of %living entities%", +"%living entities%'[s] max[imum] health", "pattern_end" ], @@ -6352,8 +6373,8 @@ Please note that the location of an entity is at it's feet, use entities%", -"%entities%'[s] max[imum] minecart (speed|velocity)", + "[the] max[imum] minecart (speed|velocity) of %entities%", +"%entities%'[s] max[imum] minecart (speed|velocity)", "pattern_end" ], @@ -6379,8 +6400,8 @@ Please note that the location of an entity is at it's feet, use item type%", -"%item type%'[s] max[imum] stack[[ ]size]", + "[the] max[imum] stack[[ ]size] of %item type%", +"%item type%'[s] max[imum] stack[[ ]size]", "pattern_end" ], @@ -6398,7 +6419,7 @@ Please note that the location of an entity is at it's feet, use texts% of %metadata holders%", -"%metadata holders%'[s] metadata [(value|tag)[s]] %text%", + "metadata [(value|tag)[s]] %texts% of %metadata holders%", +"%metadata holders%'[s] metadata [(value|tag)[s]] %text%", "pattern_end" ], @@ -6446,8 +6467,8 @@ Please note that the location of an entity is at it's feet, use entities%", -"%entities%'[s] [minecart] (derailed|flying) velocity", + "[the] [minecart] (derailed|flying) velocity of %entities%", +"%entities%'[s] [minecart] (derailed|flying) velocity", "pattern_end" ], @@ -6459,8 +6480,8 @@ Please note that the location of an entity is at it's feet, use offline players%", -"%offline players%'[s] (money|balance|[bank] account)", + "[the] (money|balance|[bank] account) of %offline players%", +"%offline players%'[s] (money|balance|[bank] account)", "pattern_end" ], @@ -6484,13 +6505,13 @@ Please note that the location of an entity is at it's feet, use players/entities/item types/inventories/slots/gamerules%", -"%players/entities/item types/inventories/slots/gamerules%'[s] (name[s]|(display|nick|chat|custom)[ ]name[s])", + "[the] (name[s]|(display|nick|chat|custom)[ ]name[s]) of %offline players/entities/blocks/item types/inventories/slots/gamerules%", +"%offline players/entities/blocks/item types/inventories/slots/gamerules%'[s] (name[s]|(display|nick|chat|custom)[ ]name[s])", "pattern_end" ], "since" : "before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)", - "description" : "Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, inventory, or gamerule. + "description" : "Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, block, inventory, or gamerule.

  • Players @@ -6521,19 +6542,19 @@ Please note that the location of an entity is at it's feet, use [admin] %name of player%\"\\n set the player's tab list name to \"%player's name%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" + "examples" : "on join:\\n player has permission \"name.red\"\\n set the player's display name to \"<red>[admin] <gold>%name of player%\"\\n set the player's tab list name to \"<green>%player's name%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" }, { "id" : "ExprName", "name" : "Name / Display Name / Tab List Name", "patterns" : [ - "[the] ((player|tab)[ ]list name[s]) of %players%", -"%players%'[s] ((player|tab)[ ]list name[s])", + "[the] ((player|tab)[ ]list name[s]) of %players%", +"%players%'[s] ((player|tab)[ ]list name[s])", "pattern_end" ], "since" : "before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)", - "description" : "Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, inventory, or gamerule. + "description" : "Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, block, inventory, or gamerule.
    • Players @@ -6564,19 +6585,19 @@ Please note that the location of an entity is at it's feet, use [admin] %name of player%\"\\n set the player's tab list name to \"%player's name%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" + "examples" : "on join:\\n player has permission \"name.red\"\\n set the player's display name to \"<red>[admin] <gold>%name of player%\"\\n set the player's tab list name to \"<green>%player's name%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" }, { "id" : "ExprNamed", "name" : "Named Item/Inventory", "patterns" : [ - "%item type/inventory type% (named|with name[s]) %text%", + "%item type/inventory type% (named|with name[s]) %text%", "pattern_end" ], "since" : "2.0, 2.2-dev34 (inventories)", "description" : "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 name of <item/inventory> to <text>.", - "examples" : "give a diamond sword of sharpness 100 named \"Excalibur\" to the player\\nset tool of player to the player's tool named \"Wand\"\\nset the name of the player's tool to \"Wand\"\\nopen hopper inventory named \"Magic Hopper\" to player" + "examples" : "give a diamond sword of sharpness 100 named \"<gold>Excalibur\" to the player\\nset tool of player to the player's tool named \"<gold>Wand\"\\nset the name of the player's tool to \"<gold>Wand\"\\nopen hopper inventory named \"Magic Hopper\" to player" }, { "id" : "LitNewLine", @@ -6595,8 +6616,8 @@ Please note that the location of an entity is at it's feet, use living entities%", -"%living entities%'[s] (invulnerability|no damage) tick[s]", + "[the] (invulnerability|no damage) tick[s] of %living entities%", +"%living entities%'[s] (invulnerability|no damage) tick[s]", "pattern_end" ], @@ -6620,21 +6641,21 @@ Please note that the location of an entity is at it's feet, use text%", -"number of lower[ ]case char(acters|s) in %text%", -"number of digit char(acters|s) in %text%", + "number of upper[ ]case char(acters|s) in %text%", +"number of lower[ ]case char(acters|s) in %text%", +"number of digit char(acters|s) in %text%", "pattern_end" ], "since" : "2.5", "description" : "The number of uppercase, lowercase, or digit characters in a string.", - "examples" : "#Simple Chat Filter\\non chat:\\n if number of uppercase chars in message / length of message > 0.5\\n cancel event\\n send \"Your message has to many caps!\" to player" + "examples" : "#Simple Chat Filter\\non chat:\\n if number of uppercase chars in message / length of message > 0.5\\n cancel event\\n send \"<red>Your message has to many caps!\" to player" }, { "id" : "ExprNumbers", "name" : "Numbers", "patterns" : [ - "[(all [[of] the]|the)] (numbers|integers|decimals) (between|from) %number% (and|to) %number%", + "[(all [[of] the]|the)] (numbers|integers|decimals) (between|from) %number% (and|to) %number%", "pattern_end" ], @@ -6678,8 +6699,8 @@ Fake online player count requires PaperSpigot 1.12.2+.", "id" : "ExprOpenedInventory", "name" : "Opened Inventory", "patterns" : [ - "[the] (current|open|top) inventory [of %players%]", -"%players%'[s] (current|open|top) inventory", + "[the] (current|open|top) inventory [of %players%]", +"%players%'[s] (current|open|top) inventory", "pattern_end" ], @@ -6692,7 +6713,7 @@ If no inventory is open, it returns the own player's crafting inventory.", "id" : "ExprParse", "name" : "Parse", "patterns" : [ - "%text% parsed as (%*type%|"<.*>")", + "%text% parsed as (%*type%|"<.*>")", "pattern_end" ], @@ -6716,14 +6737,14 @@ Some notes about parsing with a pattern: ], "since" : "2.0", "description" : "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.", - "examples" : "set {var} to line 1 parsed as integer\\nif {var} is not set:\\n parse error is set:\\n message \"Line 1 is invalid: %last parse error%\"\\n else:\\n message \"Please put an integer on line 1!\"" + "examples" : "set {var} to line 1 parsed as integer\\nif {var} is not set:\\n parse error is set:\\n message \"<red>Line 1 is invalid: %last parse error%\"\\n else:\\n message \"<red>Please put an integer on line 1!\"" }, { "id" : "ExprPassenger", "name" : "Passenger", "patterns" : [ - "[the] passenger[s] of %entities%", -"%entities%'[s] passenger[s]", + "[the] passenger[s] of %entities%", +"%entities%'[s] passenger[s]", "pattern_end" ], @@ -6737,8 +6758,8 @@ See also: vehicle", "id" : "ExprPing", "name" : "Ping", "patterns" : [ - "[the] ping of %players%", -"%players%'[s] ping", + "[the] ping of %players%", +"%players%'[s] ping", "pattern_end" ], @@ -6750,7 +6771,7 @@ See also: vehicle", "id" : "ExprPlain", "name" : "Plain Item", "patterns" : [ - "[a[n]] (plain|unmodified) %item type%", + "[a[n]] (plain|unmodified) %item type%", "pattern_end" ], @@ -6762,8 +6783,8 @@ See also: vehicle", "id" : "ExprPlayerlistHeaderFooter", "name" : "Player List Header and Footer", "patterns" : [ - "[the] (player|tab)[ ]list (header|footer) [(text|message)] of %players%", -"%players%'[s] (player|tab)[ ]list (header|footer) [(text|message)]", + "[the] (player|tab)[ ]list (header|footer) [(text|message)] of %players%", +"%players%'[s] (player|tab)[ ]list (header|footer) [(text|message)]", "pattern_end" ], @@ -6775,8 +6796,8 @@ See also: vehicle", "id" : "ExprSkull", "name" : "Player Skull", "patterns" : [ - "[the] (head|skull) of %offline players%", -"%offline players%'[s] (head|skull)", + "[the] (head|skull) of %offline players%", +"%offline players%'[s] (head|skull)", "pattern_end" ], @@ -6788,8 +6809,8 @@ See also: vehicle", "id" : "ExprPlayerWeather", "name" : "Player Weather", "patterns" : [ - "[the] [(client|custom)] weather of %players%", -"%players%'[s] [(client|custom)] weather", + "[the] [(client|custom)] weather of %players%", +"%players%'[s] [(client|custom)] weather", "pattern_end" ], @@ -6814,8 +6835,8 @@ See also: vehicle", "id" : "ExprPotionEffect", "name" : "Potion Effect", "patterns" : [ - "[new] potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]", -"[new] ambient potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]", + "[new] potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]", +"[new] ambient potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]", "pattern_end" ], @@ -6828,8 +6849,8 @@ to tipped arrows/lingering potions, Minecraft reduces the timespan.", "id" : "ExprPotionEffects", "name" : "Potion Effects", "patterns" : [ - "[the] [(all [[of] the]|the)] [active] potion effects of %living entities/item types%", -"%living entities/item types%'[s] [(all [[of] the]|the)] [active] potion effects", + "[the] [(all [[of] the]|the)] [active] potion effects of %living entities/item types%", +"%living entities/item types%'[s] [(all [[of] the]|the)] [active] potion effects", "pattern_end" ], @@ -6844,21 +6865,21 @@ When adding a potion effect type (rather than a potion effect), it will default "id" : "ExprPrefixSuffix", "name" : "Prefix/Suffix", "patterns" : [ - "[the] [chat] (prefix|suffix) of %players%", -"%players%'[s] [chat] (prefix|suffix)", + "[the] [chat] (prefix|suffix) of %players%", +"%players%'[s] [chat] (prefix|suffix)", "pattern_end" ], "since" : "2.0", "description" : "The prefix or suffix as defined in the server's chat plugin.", - "examples" : "on chat:\\n cancel event\\n broadcast \"%player's prefix%%player's display name%%player's suffix%: %message%\" to the player's world\\nset the player's prefix to \"[Admin] \"" + "examples" : "on chat:\\n cancel event\\n broadcast \"%player's prefix%%player's display name%%player's suffix%: %message%\" to the player's world\\nset the player's prefix to \"[<red>Admin] \"" }, { "id" : "ExprProjectileBounceState", "name" : "Projectile Bounce State", "patterns" : [ - "[the] [the] projectile bounce (state|ability|mode) of %projectiles%", -"%projectiles%'[s] [the] projectile bounce (state|ability|mode)", + "[the] [the] projectile bounce (state|ability|mode) of %projectiles%", +"%projectiles%'[s] [the] projectile bounce (state|ability|mode)", "pattern_end" ], @@ -6870,8 +6891,8 @@ When adding a potion effect type (rather than a potion effect), it will default "id" : "ExprProjectileCriticalState", "name" : "Projectile Critical State", "patterns" : [ - "[the] [the] (projectile|arrow) critical (state|ability|mode) of %projectiles%", -"%projectiles%'[s] [the] (projectile|arrow) critical (state|ability|mode)", + "[the] [the] (projectile|arrow) critical (state|ability|mode) of %projectiles%", +"%projectiles%'[s] [the] (projectile|arrow) critical (state|ability|mode)", "pattern_end" ], @@ -6898,13 +6919,13 @@ Also if the protocol version of the player is higher than protocol version of th This can be set in a server list ping event only (increase and decrease effects cannot be used because that wouldn't make sense).", - "examples" : "on server list ping:\\n set the version string to \"Version: %minecraft version%\"\\n set the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always" + "examples" : "on server list ping:\\n set the version string to \"<light green>Version: <orange>%minecraft version%\"\\n set the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always" }, { "id" : "ExprRandom", "name" : "Random", "patterns" : [ - "[a] random %*type% [out] of %objects%", + "[a] random %*type% [out] of %objects%", "pattern_end" ], @@ -6916,7 +6937,7 @@ This can be set in a server list ping "id" : "ExprRandomNumber", "name" : "Random Number", "patterns" : [ - "[a] random (integer|number) (from|between) %number% (to|and) %number%", + "[a] random (integer|number) (from|between) %number% (to|and) %number%", "pattern_end" ], @@ -6941,7 +6962,7 @@ Please note that the order of the numbers doesn't matter, i.e. random numb "id" : "ExprRawName", "name" : "Raw Name", "patterns" : [ - "(raw|minecraft|vanilla) name[s] of %item types%", + "(raw|minecraft|vanilla) name[s] of %item types%", "pattern_end" ], @@ -6953,8 +6974,8 @@ Please note that the order of the numbers doesn't matter, i.e. random numb "id" : "ExprRedstoneBlockPower", "name" : "Redstone Block Power", "patterns" : [ - "[the] redstone power of %blocks%", -"%blocks%'[s] redstone power", + "[the] redstone power of %blocks%", +"%blocks%'[s] redstone power", "pattern_end" ], @@ -6979,8 +7000,8 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprMembersOfRegion", "name" : "Region Members & Owners", "patterns" : [ - "[(all|the)] (members|owner[s]) of [[the] region[s]] %regions%", -"[[the] region[s]] %regions%'[s] (members|owner[s])", + "[(all|the)] (members|owner[s]) of [[the] region[s]] %regions%", +"[[the] region[s]] %regions%'[s] (members|owner[s])", "pattern_end" ], @@ -6993,21 +7014,21 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprRegionsAt", "name" : "Regions At", "patterns" : [ - "[the] region[s] %direction% %locations%", + "[the] region[(s)] %direction% %locations%", "pattern_end" ], "since" : "2.1", "description" : "All regions at a particular location. This expression requires a supported regions plugin to be installed.", - "examples" : "On click on a sign:\\n line 1 of the clicked block is \"[region info]\"\\n set {_regions::*} to regions at the clicked block\\n if {_regions::*} is empty:\\n message \"No regions exist at this sign.\"\\n else:\\n message \"Regions containing this sign: %{_regions::*}%.\"" + "examples" : "On click on a sign:\\n line 1 of the clicked block is \"[region info]\"\\n set {_regions::*} to regions at the clicked block\\n if {_regions::*} is empty:\\n message \"No regions exist at this sign.\"\\n else:\\n message \"Regions containing this sign: <gold>%{_regions::*}%.\"" }, { "id" : "ExprRemainingAir", "name" : "Remaining Air", "patterns" : [ - "[the] remaining air of %living entities%", -"%living entities%'[s] remaining air", + "[the] remaining air of %living entities%", +"%living entities%'[s] remaining air", "pattern_end" ], @@ -7031,7 +7052,7 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprReversedList", "name" : "Reversed List", "patterns" : [ - "reversed %objects%", + "reversed %objects%", "pattern_end" ], @@ -7043,9 +7064,9 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprRound", "name" : "Rounding", "patterns" : [ - "[(a|the)] round[ed] down %number%", -"[(a|the)] round[ed] %number%", -"[(a|the)] round[ed] up %number%", + "[(a|the)] round[ed] down %number%", +"[(a|the)] round[ed] %number%", +"[(a|the)] round[ed] up %number%", "pattern_end" ], @@ -7057,8 +7078,8 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprSaturation", "name" : "Saturation", "patterns" : [ - "[the] saturation [of %players%]", -"%players%'[s] saturation", + "[the] saturation [of %players%]", +"%players%'[s] saturation", "pattern_end" ], @@ -7070,8 +7091,8 @@ This expression requires a supported regions plugin to be installed.", "id" : "ExprScoreboardTags", "name" : "Scoreboard Tags", "patterns" : [ - "[(all [[of] the]|the)] scoreboard tags of %entities%", -"%entities%'[s] scoreboard tags", + "[(all [[of] the]|the)] scoreboard tags of %entities%", +"%entities%'[s] scoreboard tags", "pattern_end" ], @@ -7100,8 +7121,8 @@ Requires Minecraft 1.11+ (actually added in 1.9 to the game, but added in 1.11 t "id" : "ExprSeaLevel", "name" : "Sea Level", "patterns" : [ - "[the] sea level of %worlds%", -"%worlds%'[s] sea level", + "[the] sea level of %worlds%", +"%worlds%'[s] sea level", "pattern_end" ], @@ -7128,7 +7149,7 @@ or can be reset to the default icon in a "id" : "ExprShooter", "name" : "Shooter", "patterns" : [ - "[the] shooter [of %projectile%]", + "[the] shooter [of %projectile%]", "pattern_end" ], @@ -7140,7 +7161,7 @@ or can be reset to the default icon in a "id" : "ExprShuffledList", "name" : "Shuffled List", "patterns" : [ - "shuffled %objects%", + "shuffled %objects%", "pattern_end" ], @@ -7152,8 +7173,8 @@ or can be reset to the default icon in a "id" : "ExprSignText", "name" : "Sign Text", "patterns" : [ - "[the] line %number% [of %block%]", -"[the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]", + "[the] line %number% [of %block%]", +"[the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]", "pattern_end" ], @@ -7165,8 +7186,8 @@ or can be reset to the default icon in a "id" : "ExprSlotIndex", "name" : "Slot Index", "patterns" : [ - "[the] (index|indices) of %slots%", -"%slots%'[s] (index|indices)", + "[the] (index|indices) of %slots%", +"%slots%'[s] (index|indices)", "pattern_end" ], @@ -7178,7 +7199,7 @@ or can be reset to the default icon in a "id" : "ExprSortedList", "name" : "Sorted List", "patterns" : [ - "sorted %objects%", + "sorted %objects%", "pattern_end" ], @@ -7191,8 +7212,8 @@ if they're not, this expression will return nothing.", "id" : "ExprSpawn", "name" : "Spawn", "patterns" : [ - "[the] spawn[s] [(point|location)[s]] [of %worlds%]", -"%worlds%'[s] spawn[s] [(point|location)[s]]", + "[the] spawn[s] [(point|location)[s]] [of %worlds%]", +"%worlds%'[s] spawn[s] [(point|location)[s]]", "pattern_end" ], @@ -7216,8 +7237,8 @@ if they're not, this expression will return nothing.", "id" : "ExprSpawnerType", "name" : "Spawner Type", "patterns" : [ - "[the] (entity|creature) type[s] of %blocks%", -"%blocks%'[s] (entity|creature) type[s]", + "[the] (entity|creature) type[s] of %blocks%", +"%blocks%'[s] (entity|creature) type[s]", "pattern_end" ], @@ -7242,8 +7263,8 @@ if they're not, this expression will return nothing.", "id" : "ExprSpeed", "name" : "Speed", "patterns" : [ - "[the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%", -"%players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed", + "[the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%", +"%players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed", "pattern_end" ], @@ -7256,10 +7277,10 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprSubstring", "name" : "Subtext", "patterns" : [ - "[the] [(part|sub[ ](text|string)) of %texts% (between|from) (ind(ex|ices)|character[s])] %number% [(and|to) (index|character)] %number%", -"[the] (first|last) [%number%] character[s] of %texts%", -"[the] %number% (first|last) characters of %texts%", -"[the] character[s] at [(index|position|indexes|indices|positions)] %numbers% (in|of) %texts%", + "[the] (part|sub[ ](text|string)) of %texts% (between|from) [ind(ex|ices)|character[s]] %number% (and|to) [(index|character)] %number%", +"[the] (first|last) [%number%] character[s] of %texts%", +"[the] %number% (first|last) characters of %texts%", +"[the] character[s] at [(index|position|indexes|indices|positions)] %numbers% (in|of) %texts%", "pattern_end" ], @@ -7298,8 +7319,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTarget", "name" : "Target", "patterns" : [ - "[the] target[[ed] %*entity type%] [of %living entities%]", -"%living entities%'[s] target[[ed] %*entity type%]", + "[the] target[[ed] %*entity type%] [of %living entities%]", +"%living entities%'[s] target[[ed] %*entity type%]", "pattern_end" ], @@ -7311,16 +7332,16 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTargetedBlock", "name" : "Targeted Block", "patterns" : [ - "[the] target[ed] block[s] [of %players%]", -"%players%'[s] target[ed] block[s]", -"[the] actual[ly] target[ed] block[s] [of %players%]", -"%players%'[s] actual[ly] target[ed] block[s]", + "[the] target[ed] block[s] [of %players%]", +"%players%'[s] target[ed] block[s]", +"[the] actual[ly] target[ed] block[s] [of %players%]", +"%players%'[s] actual[ly] target[ed] block[s]", "pattern_end" ], "since" : "1.0", "description" : "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.", - "examples" : "# A command to set the block a player looks at to a specific type:\\ncommand /setblock :\\n trigger:\\n set targeted block to argument" + "examples" : "# A command to set the block a player looks at to a specific type:\\ncommand /setblock <material>:\\n trigger:\\n set targeted block to argument" }, { "id" : "ExprTeleportCause", @@ -7338,8 +7359,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTemperature", "name" : "Temperature", "patterns" : [ - "[the] temperature[s] of %blocks%", -"%blocks%'[s] temperature[s]", + "[the] temperature[s] of %blocks%", +"%blocks%'[s] temperature[s]", "pattern_end" ], @@ -7351,7 +7372,7 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTernary", "name" : "Ternary", "patterns" : [ - "%objects% if <.+>[,] (otherwise|else) %objects%", + "%objects% if <.+>[,] (otherwise|else) %objects%", "pattern_end" ], @@ -7363,8 +7384,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTime", "name" : "Time", "patterns" : [ - "[the] time[s] [([with]in|of) %worlds%]", -"%worlds%'[s] time[s]", + "[the] time[s] [([with]in|of) %worlds%]", +"%worlds%'[s] time[s]", "pattern_end" ], @@ -7376,8 +7397,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTimePlayed", "name" : "Time Played", "patterns" : [ - "[the] time played of %players%", -"%players%'[s] time played", + "[the] time played of %offline players%", +"%offline players%'[s] time played", "pattern_end" ], @@ -7389,7 +7410,7 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTimeSince", "name" : "Time Since", "patterns" : [ - "[the] time since %dates%", + "[the] time since %dates%", "pattern_end" ], @@ -7401,8 +7422,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTool", "name" : "Tool", "patterns" : [ - "[the] ((tool|held item|weapon)|(off[ ]hand (tool|item))) [of %living entities%]", -"%living entities%'[s] ((tool|held item|weapon)|(off[ ]hand (tool|item)))", + "[the] ((tool|held item|weapon)|(off[ ]hand (tool|item))) [of %living entities%]", +"%living entities%'[s] ((tool|held item|weapon)|(off[ ]hand (tool|item)))", "pattern_end" ], @@ -7414,8 +7435,8 @@ Please note that changing a player's speed will change their FOV just like potio "id" : "ExprTypeOf", "name" : "Type of", "patterns" : [ - "[the] type of %entity types/item types/inventories/potion effects%", -"%entity types/item types/inventories/potion effects%'[s] type", + "[the] type of %entity types/item types/inventories/potion effects%", +"%entity types/item types/inventories/potion effects%'[s] type", "pattern_end" ], @@ -7431,8 +7452,8 @@ Types of potion effects are potion effect types.", "id" : "ExprUUID", "name" : "UUID", "patterns" : [ - "[the] UUID of %offline players/worlds/entities%", -"%offline players/worlds/entities%'[s] UUID", + "[the] UUID of %offline players/worlds/entities%", +"%offline players/worlds/entities%'[s] UUID", "pattern_end" ], @@ -7446,7 +7467,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprUnbreakable", "name" : "Unbreakable Items", "patterns" : [ - "unbreakable %item types%", + "unbreakable %item types%", "pattern_end" ], @@ -7458,8 +7479,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprUnixDate", "name" : "Unix Date", "patterns" : [ - "[the] unix date of %numbers%", -"%numbers%'[s] unix date", + "[the] unix date of %numbers%", +"%numbers%'[s] unix date", "pattern_end" ], @@ -7471,8 +7492,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprUnixTicks", "name" : "Unix Timestamp", "patterns" : [ - "[the] unix timestamp of %dates%", -"%dates%'[s] unix timestamp", + "[the] unix timestamp of %dates%", +"%dates%'[s] unix timestamp", "pattern_end" ], @@ -7484,7 +7505,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorAngleBetween", "name" : "Vectors - Angle Between", "patterns" : [ - "[the] angle between [[the] vectors] %vector% and %vector%", + "[the] angle between [[the] vectors] %vector% and %vector%", "pattern_end" ], @@ -7496,10 +7517,10 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorArithmetic", "name" : "Vectors - Arithmetic", "patterns" : [ - "%vector%[ ]++[ ]%vector%", -"%vector%[ ]--[ ]%vector%", -"%vector%[ ]**[ ]%vector%", -"%vector%[ ]//[ ]%vector%", + "%vector%[ ]++[ ]%vector%", +"%vector%[ ]--[ ]%vector%", +"%vector%[ ]**[ ]%vector%", +"%vector%[ ]//[ ]%vector%", "pattern_end" ], @@ -7511,7 +7532,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorFromXYZ", "name" : "Vectors - Create from XYZ", "patterns" : [ - "[a] [new] vector [(from|at|to)] %number%,[ ]%number%(,[ ]| and )%number%", + "[a] [new] vector [(from|at|to)] %number%,[ ]%number%(,[ ]| and )%number%", "pattern_end" ], @@ -7523,7 +7544,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorCrossProduct", "name" : "Vectors - Cross Product", "patterns" : [ - "%vector% cross %vector%", + "%vector% cross %vector%", "pattern_end" ], @@ -7535,7 +7556,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorCylindrical", "name" : "Vectors - Cylindrical Shape", "patterns" : [ - "[a] [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%", + "[a] [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%", "pattern_end" ], @@ -7547,7 +7568,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorDotProduct", "name" : "Vectors - Dot Product", "patterns" : [ - "%vector% dot %vector%", + "%vector% dot %vector%", "pattern_end" ], @@ -7559,8 +7580,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorLength", "name" : "Vectors - Length", "patterns" : [ - "[the] (vector|standard|normal) length[s] of %vectors%", -"%vectors%'[s] (vector|standard|normal) length[s]", + "[the] (vector|standard|normal) length[s] of %vectors%", +"%vectors%'[s] (vector|standard|normal) length[s]", "pattern_end" ], @@ -7572,8 +7593,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprLocationVectorOffset", "name" : "Vectors - Location Vector Offset", "patterns" : [ - "%location% offset by [[the] vectors] %vectors%", -"%location%[ ]~[~][ ]%vectors%", + "%location% offset by [[the] vectors] %vectors%", +"%location%[ ]~[~][ ]%vectors%", "pattern_end" ], @@ -7585,8 +7606,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorNormalize", "name" : "Vectors - Normalized", "patterns" : [ - "normalize[d] %vector%", -"%vector% normalized", + "normalize[d] %vector%", +"%vector% normalized", "pattern_end" ], @@ -7610,7 +7631,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorSpherical", "name" : "Vectors - Spherical Shape", "patterns" : [ - "[new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%", + "[new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%", "pattern_end" ], @@ -7622,8 +7643,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorSquaredLength", "name" : "Vectors - Squared Length", "patterns" : [ - "[the] squared length[s] of %vectors%", -"%vectors%'[s] squared length[s]", + "[the] squared length[s] of %vectors%", +"%vectors%'[s] squared length[s]", "pattern_end" ], @@ -7635,7 +7656,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorBetweenLocations", "name" : "Vectors - Vector Between Locations", "patterns" : [ - "[the] vector (from|between) %location% (to|and) %location%", + "[the] vector (from|between) %location% (to|and) %location%", "pattern_end" ], @@ -7647,8 +7668,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorOfLocation", "name" : "Vectors - Vector from Location", "patterns" : [ - "[the] vector (of|from|to) %location%", -"%location%'s vector", + "[the] vector (of|from|to) %location%", +"%location%'s vector", "pattern_end" ], @@ -7660,7 +7681,7 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorFromYawAndPitch", "name" : "Vectors - Vector from Pitch and Yaw", "patterns" : [ - "[a] [new] vector (from|with) yaw %number% and pitch %number%", + "[a] [new] vector (from|with) yaw %number% and pitch %number%", "pattern_end" ], @@ -7672,8 +7693,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVelocity", "name" : "Vectors - Velocity", "patterns" : [ - "[the] velocit(y|ies) of %entities%", -"%entities%'[s] velocit(y|ies)", + "[the] velocit(y|ies) of %entities%", +"%entities%'[s] velocit(y|ies)", "pattern_end" ], @@ -7685,8 +7706,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVectorXYZ", "name" : "Vectors - XYZ Component", "patterns" : [ - "[the] [vector] (x|y|z) [component[s]] of %vectors%", -"%vectors%'[s] [vector] (x|y|z) [component[s]]", + "[the] [vector] (x|y|z) [component[s]] of %vectors%", +"%vectors%'[s] [vector] (x|y|z) [component[s]]", "pattern_end" ], @@ -7698,8 +7719,8 @@ In the future there will be an option to use a player's UUID instead of the name "id" : "ExprVehicle", "name" : "Vehicle", "patterns" : [ - "[the] vehicle[s] of %entities%", -"%entities%'[s] vehicle[s]", + "[the] vehicle[s] of %entities%", +"%entities%'[s] vehicle[s]", "pattern_end" ], @@ -7731,14 +7752,14 @@ See also: passenger", "since" : "2.3", "description" : "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. This can only be set in a server list ping event.", - "examples" : "on server list ping:\\n set the protocol version to 0 # 13w41a (1.7), so it will show the version string always\\n set the version string to \"Version: %minecraft version%\"" + "examples" : "on server list ping:\\n set the protocol version to 0 # 13w41a (1.7), so it will show the version string always\\n set the version string to \"<light green>Version: <orange>%minecraft version%\"" }, { "id" : "ExprClientViewDistance", "name" : "View Distance of Client", "patterns" : [ - "[the] client view distance[s] of %players%", -"%players%'[s] client view distance[s]", + "[the] client view distance[s] of %players%", +"%players%'[s] client view distance[s]", "pattern_end" ], @@ -7750,8 +7771,8 @@ This can only be set in a server list pin "id" : "ExprWeather", "name" : "Weather", "patterns" : [ - "[the] weather [(in|of) %worlds%]", -"%worlds%'[s] weather", + "[the] weather [(in|of) %worlds%]", +"%worlds%'[s] weather", "pattern_end" ], @@ -7775,8 +7796,8 @@ This can only be set in a server list pin "id" : "ExprWorld", "name" : "World", "patterns" : [ - "[the] world [of %locations/entities%]", -"%locations/entities%'[s] world", + "[the] world [of %locations/entities%]", +"%locations/entities%'[s] world", "pattern_end" ], @@ -7788,8 +7809,8 @@ This can only be set in a server list pin "id" : "ExprSeed", "name" : "World Seed", "patterns" : [ - "[the] seed[s] (from|of) %worlds%", -"%worlds%'[s] seed[s]", + "[the] seed[s] (from|of) %worlds%", +"%worlds%'[s] seed[s]", "pattern_end" ], @@ -7813,7 +7834,7 @@ This can only be set in a server list pin "id" : "ExprXOf", "name" : "X of Item", "patterns" : [ - "%number% of %item stacks/entity type%", + "%number% of %item stacks/item types/entity type%", "pattern_end" ], @@ -7825,8 +7846,8 @@ This can only be set in a server list pin "id" : "ExprYawPitch", "name" : "Yaw / Pitch", "patterns" : [ - "[the] (yaw|pitch) of %locations/vectors%", -"%locations/vectors%'[s] (yaw|pitch)", + "[the] (yaw|pitch) of %locations/vectors%", +"%locations/vectors%'[s] (yaw|pitch)", "pattern_end" ], @@ -7909,7 +7930,7 @@ This can only be set in a server list pin ], "since" : "2.2-dev32", "description" : "Calculates the total amount of experience needed to achieve given level from scratch in Minecraft.", - "examples" : "" + "examples" : "Missing examples." }, { "id" : "ceil", diff --git a/effects.html b/effects.html index db4a1ed3133..7c50f78b0f3 100644 --- a/effects.html +++ b/effects.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

      Effects

      Action Bar 🔗
      Patterns:
      • send [the] action bar [with text] %text% to %players%
      Since: 2.3
      Sends an action bar message to the given player(s).
      Examples:
      send action bar "Hello player!" to player
      Ban 🔗
      Patterns:
      Since: 1.4, 2.1.1 (ban reason), 2.5 (timespan)
      Bans or unbans a player or an IP address. If a reason is given, it will be shown to the player when they try to join the server while banned. A length of ban may also be given to apply a temporary ban. If it is absent for any reason, a permanent ban will be used instead. We recommend that you test your scripts so that no accidental permanent bans are applied.

      Note that banning people does not kick them from the server. Consider using the kick effect after applying a ban.

      Examples:
      unban player
      ban "127.0.0.1"
      IP-ban the player because "he is an idiot"
      ban player due to "inappropriate language" for 2 days
      Break Block 🔗
      Patterns:
      Since: 2.4
      Breaks the block and spawns items as if a player had mined it

      You can add a tool, which will spawn items based on how that tool would break the block (ie: When using a hand to break stone, it drops nothing, whereas with a pickaxe it drops cobblestone)

      Examples:
      on right click:
          break clicked block naturally
      loop blocks in radius 10 around player:
          break loop-block using player's tool
      loop blocks in radius 10 around player:
          break loop-block naturally using diamond pickaxe
      Broadcast 🔗
      Patterns:
      Since: 1.0, 2.6 (broadcasting objects)
      Broadcasts a message to the server. Only formatting options supported by console (i.e. colors) are supported. If you need to use advanced chat formatting, send the message to all players instead of broadcasting it.
      Examples:
      broadcast "Welcome %player% to the server!"
      broadcast "Woah! It's a message!"
      Cancel Command Cooldown 🔗
      Patterns:
      • (cancel|ignore) [the] [current] [command] cooldown
      • un(cancel|ignore) [the] [current] [command] cooldown
      Since: 2.2-dev34
      Only usable in commands. Makes it so the current command usage isn't counted towards the cooldown.
      Examples:
      command /nick :
          executable by: players
          cooldown: 10 seconds
          trigger:
              if length of arg-1 is more than 16:
                  # Makes it so that invalid arguments don't make you wait for the cooldown again
                  cancel the cooldown
                  send "Your nickname may be at most 16 characters."
                  stop
              set the player's display name to arg-1
      Cancel Drops 🔗
      Patterns:
      • (cancel|clear|delete) [the] drops [of (items|[e]xp[erience][s])]
      • (cancel|clear|delete) [the] (item|[e]xp[erience]) drops
      Since: 2.4
      Usable in events: death, break / mine
      Requirements: 1.12.2 or newer (cancelling item drops of blocks)
      Cancels drops of items or experiences in a death or block break event. Please note that this doesn't keep items or experiences of a dead player. If you want to do that, use the Keep Inventory / Experience effect.
      Examples:
      on death of a zombie:
          if name of the entity is "&cSpecial":
              cancel drops of items

      on break of a coal ore:
          cancel the experience drops
      Cancel Event 🔗
      Patterns:
      • cancel [the] event
      • uncancel [the] event
      Since: 1.0
      Cancels the event (e.g. prevent blocks from being placed, or damage being taken).
      Examples:
      on damage:
          victim is a player
          victim has the permission "skript.god"
          cancel the event
      Change: Set/Add/Remove/Delete/Reset 🔗
      Patterns:
      Since: 1.0 (set, add, remove, delete), 2.0 (remove all)
      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.
      Examples:
      # set:
      Set the player's display name to "%name of player%"
      set the block above the victim to lava
      # add:
      add 2 to the player's health # preferably use 'heal' for this
      add argument to {blacklist::*}
      give a diamond pickaxe of efficiency 5 to the player
      increase the data value of the clicked block by 1
      # remove:
      remove 2 pickaxes from the victim
      subtract 2.5 from {points::%uuid of player%}
      # remove all:
      remove every iron tool from the player
      remove all minecarts from {entitylist::*}
      # delete:
      delete the block below the player
      clear drops
      delete {variable}
      # reset:
      reset walk speed of player
      reset chunk at the targeted block
      Charge Creeper 🔗
      Patterns:
      • make %living entities% [a[n]] (charged|powered|((un|non[-])charged|(un|non[-])powered)) [creeper[s]]
      • (charge|power|(uncharge|unpower)) %living entities%
      Since: 2.5
      Charges or uncharges a creeper. A creeper is charged when it has been struck by lightning.
      Examples:
      on spawn of creeper:
          charge the event-entity
      Colour Items 🔗
      Patterns:
      Since: 2.0, 2.2-dev26 (maps and potions)
      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.
      Examples:
      dye player's helmet blue
      colour the player's tool red
      Command 🔗
      Patterns:
      Since: 1.0
      Executes a command. This can be useful to use other plugins in triggers.
      Examples:
      make player execute command "/suicide"
      execute console command "/say Hello everyone!"
      Connect 🔗
      Patterns:
      Since: 2.3
      Connects a player to another bungeecord server
      Examples:
      connect all players to "hub"
      Continue 🔗
      Patterns:
      • continue [loop]
      Since: 2.2-dev37
      Skips the value currently being looped, moving on to the next value if it exists.
      Examples:
      loop all players:
          if loop-value does not have permission "moderator":
              continue # filter out non moderators
          broadcast "%loop-player% is a moderator!" # Only moderators get broadcast
      Damage/Heal/Repair 🔗
      Patterns:
      Since: 1.0
      Damage/Heal/Repair an entity, or item.
      Examples:
      damage player by 5 hearts
      heal the player
      repair tool of player
      Delay 🔗
      Patterns:
      Since: 1.4
      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!
      Examples:
      wait 2 minutes
      halt for 5 minecraft hours
      wait a tick
      Do If 🔗
      Patterns:
      • <.+> if <.+>
      Since: 2.3
      Execute an effect if a condition is true.
      Examples:
      on join:
          give a diamond to the player if the player has permission "rank.vip"
      Drop 🔗
      Patterns:
      Since: 1.0
      Drops one or more items.
      Examples:
      on death of creeper:
          drop 1 TNT
      Enable/Disable/Reload Script File 🔗
      Patterns:
      • (enable|load|reload|disable|unload) s(c|k)ript [file] %text%
      Since: 2.4
      Enables, disables, or reloads a script file.
      Examples:
      reload script "test"
      enable script file "testing"
      unload script file "script.sk"
      Enchant/Disenchant 🔗
      Patterns:
      Since: 2.0
      Enchant or disenchant an existing item.
      Examples:
      enchant the player's tool with sharpness 5
      disenchant the player's tool
      Equip 🔗
      Patterns:
      Since: 1.0
      Equips an entity with some given armor. This will replace any armor that the entity is wearing.
      Examples:
      equip player with diamond helmet
      equip player with all diamond armor
      Exit 🔗
      Patterns:
      • (exit|stop) [trigger]
      • (exit|stop) [(1|a|the|this)] (section|loop|conditional)
      • (exit|stop) <\d+> (section|loop|conditional)s
      • (exit|stop) all (section|loop|conditional)s
      Since: unknown (before 2.1)
      Exits a given amount of loops and conditionals, or the entire trigger.
      Examples:
      if player has any ore:
          stop
      message "%player% has no ores!"
      loop blocks above the player:
          loop-block is not air:
              exit 2 sections
          set loop-block to water
      Explode Creeper 🔗
      Patterns:
      Since: 2.5
      Requirements: Paper 1.13 or newer/Spigot 1.14 or newer. Ignition can be stopped on Paper 1.13 or newer.
      Starts the explosion process of a creeper or instantly explodes it.
      Examples:
      start explosion of the last spawned creeper
      stop ignition of the last spawned creeper
      Explosion 🔗
      Patterns:
      Since: 1.0
      Creates an explosion of a given force. The Minecraft Wiki has an article on explosions which lists the explosion forces of TNT, creepers, etc. 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. 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.
      Examples:
      create an explosion of force 10 at the player
      create an explosion of force 0 at the victim
      Feed 🔗
      Patterns:
      Since: 2.2-dev34
      Feeds the specified players.
      Examples:
      feed all players
      feed the player by 5 beefs
      Force Attack 🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15.2+
      Makes a living entity attack an entity with a melee attack.
      Examples:
      spawn a wolf at player's location
      make last spawned wolf attack player
      Force Respawn 🔗
      Patterns:
      Since: 2.2-dev21
      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.
      Examples:
      on death of player:
          force event-player to respawn
      Hide Player from Server List 🔗
      Patterns:
      • hide %players% (in|on|from) [the] server list
      • hide %players%'[s] info[rmation] (in|on|from) [the] server list
      Since: 2.3
      Hides a player from the hover list and decreases the online players count (only if the player count wasn't changed before).
      Examples:
      on server list ping:
          hide {vanished::*} from the server list
      Ignite/Extinguish 🔗
      Patterns:
      Since: 1.4
      Lights entities on fire or extinguishes them.
      Examples:
      ignite the player
      extinguish the player
      Keep Inventory / Experience 🔗
      Patterns:
      • keep [the] (inventory|items) [(and [e]xp[erience][s] [point[s]])]
      • keep [the] [e]xp[erience][s] [point[s]] [(and (inventory|items))]
      Since: 2.4
      Usable in events: death
      Keeps the inventory or/and experiences of the dead player in a death event.
      Examples:
      on death of a player:
          if the victim is an op:
              keep the inventory and experiences
      Kick 🔗
      Patterns:
      • kick %players% [(by reason of|because [of]|on account of|due to) %text%]
      Since: 1.0
      Kicks a player from the server.
      Examples:
      on place of TNT, lava, or obsidian:
          kick the player due to "You may not place %block%!"
          cancel the event
      Kill 🔗
      Patterns:
      Since: 1.0
      Kills an entity. 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.
      Examples:
      kill the player
      kill all creepers in the player's world
      kill all endermen, witches and bats
      Launch firework 🔗
      Patterns:
      Since: 2.4
      Launch firework effects at the given location(s).
      Examples:
      launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1
      Leash entities 🔗
      Patterns:
      Since: 2.3
      Leash living entities to other entities.
      Examples:
      leash the player to the target entity
      Lightning 🔗
      Patterns:
      Since: 1.4
      Strike lightning at a given location. Can use 'lightning effect' to create a lightning that does not harm entities or start fires.
      Examples:
      strike lightning at the player
      strike lightning effect at the victim
      Load Server Icon 🔗
      Patterns:
      • load [the] server icon (from|of) [the] [image] [file] %text%
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Loads server icons from the given files. You can get the loaded icon using the last loaded server icon expression. Please note that the image must be 64x64 and the file path starts from the server folder.
      Examples:
      on load:
          clear {server-icons::*}
          loop 5 times:
              load server icon from file "icons/%loop-number%.png"
              add the last loaded server icon to {server-icons::*}

      on server list ping:
          set the icon to a random server icon out of {server-icons::*}
      Locally Suppress Warning 🔗
      Patterns:
      • [local[ly]] suppress [the] (conflict|variable save|[missing] conjunction[s]|starting [with] expression[s]) warning[s]
      Since: 2.3
      Suppresses target warnings from the current script.
      Examples:
      locally suppress conflict warnings
      suppress the variable save warnings
      Log 🔗
      Patterns:
      Since: 2.0
      Writes text into a .log file. Skript will write these files to /plugins/Skript/logs. 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.
      Examples:
      on place of TNT:
          log "%player% placed TNT in %world% at %location of block%" to "tnt/placement.log"
      Make Fly 🔗
      Patterns:
      Since: 2.2-dev34
      Forces a player to start/stop flying.
      Examples:
      make player fly
      force all players to stop flying
      Make Incendiary 🔗
      Patterns:
      • make %entities% [(not)] incendiary
      • make %entities%'[s] explosion [(not)] (incendiary|fiery)
      • make [the] [event(-| )]explosion [(not)] (incendiary|fiery)
      Since: 2.5
      Sets if an entity's explosion will leave behind fire. This effect is also usable in an explosion prime event.
      Examples:
      on explosion prime:
          make the explosion fiery
      Make Invulnerable 🔗
      Patterns:
      Since: 2.5
      Makes an entity invulnerable/not invulnerable.
      Examples:
      make target entity invulnerable
      Make Say 🔗
      Patterns:
      Since: 2.3
      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.
      Examples:
      make the player say "Hello."
      force all players to send the message "I love this server"
      Message 🔗
      Patterns:
      Since: 1.0, 2.2-dev26 (advanced features), 2.5.2 (optional sender), 2.6 (sending objects)
      Requirements: Minecraft 1.16.4+ for optional sender
      Sends a message to the given player. Only styles written in given string or in formatted expressions will be parsed. Adding an optional sender allows the messages to be sent as if a specific player sent them. This is useful with Minecraft 1.16.4's new chat ignore system, in which players can choose to ignore other players, but for this to work, the message needs to be sent from a player.
      Examples:
      message "A wild %player% appeared!"
      message "This message is a distraction. Mwahaha!"
      send "Your kill streak is %{kill streak::%uuid of player%}%." to player
      if the targeted entity exists:
          message "You're currently looking at a %type of the targeted entity%!"
      on chat:
          cancel event
          send "[%player%] >> %message%" to all players from player
      Open Book 🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.14.2+
      Opens a written book to a player.
      Examples:
      open book player's tool to player
      Open/Close Inventory 🔗
      Patterns:
      • [(open|show) (((crafting [table]|workbench)|chest|anvil|hopper|dropper|dispenser) (view|window|inventory)]|%inventory/inventory type%) (to|for) %players%
      • close [the] inventory [view] (to|of|for) %players%
      • close %players%'[s] inventory [view]
      Since: 2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil), 2.4 (hopper, dropper, dispenser
      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. 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.
      Examples:
      show the victim's inventory to the player
      open the player's inventory for the player
      Play Effect 🔗
      Patterns:
      Since: 2.1
      Plays a visual effect at a given location or on a given entity. 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.
      Examples:
      play wolf hearts on the clicked wolf
      show mob spawner flames at the targeted block to the player
      Play Sound 🔗
      Patterns:
      Since: 2.2-dev28, 2.4 (sound categories)
      Requirements: Minecraft 1.11+ (sound categories)
      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.

      Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself.

      Examples:
      play sound "block.note_block.pling" # It is block.note.pling in 1.12.2
      play sound "entity.experience_orb.pickup" with volume 0.5 to the player
      play sound "custom.music.1" in jukebox category at {speakerBlock}
      Player Info Visibility 🔗
      Patterns:
      • hide [all] player [related] info[rmation] [(in|on|from) [the] server list]
      • (show|reveal) [all] player [related] info[rmation] [(in|to|on|from) [the] server list]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      Sets whether all player related information is hidden in the server list. The Vanilla Minecraft client will display ??? (dark gray) instead of player counts and will not show the hover hist when hiding player info. The version string can override the ???. Also the Online Players Count and Max Players expressions will return -1 when hiding player info.
      Examples:
      hide player info
      hide player related information in the server list
      reveal all player related info
      Player Visibility 🔗
      Patterns:
      Since: 2.3
      Change visibility of a player for the given players. 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.

      Note: if a player was hidden and relogs, this player will be visible again.

      Examples:
      on join:
          if {vanished::%player's uuid%} is true:
              hide the player from all players

      reveal hidden players of {_player}
      Poison/Cure 🔗
      Patterns:
      Since: 1.3.2
      Poison or cure a creature.
      Examples:
      poison the player
      poison the victim for 20 seconds
      cure the player from poison
      Potion Effects 🔗
      Patterns:
      Since: 2.0, 2.2-dev27 (ambient and particle-less potion effects), 2.5 (replacing existing effect), 2.5.2 (potion effects)
      Apply or remove potion effects to/from entities.
      Examples:
      apply swiftness 2 to the player
      remove haste from the victim
      on join:
          apply potion of strength of tier {strength.%player%} to the player for 999 days
      apply potion effects of player's tool to player
      Push 🔗
      Patterns:
      Since: 1.4.6
      Push entities around.
      Examples:
      push the player upwards
      push the victim downwards at speed 0.5
      PvP 🔗
      Patterns:
      Since: 1.3.4
      Set the PvP state for a given world.
      Examples:
      enable PvP #(current world only)
      disable PvP in all worlds
      Replace 🔗
      Patterns:
      Since: 2.0, 2.2-dev24 (replace in muliple strings and replace items in inventory), 2.5 (replace first, case sensitivity)
      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. Starting with 2.2-dev24, you can replace items in a inventory too.
      Examples:
      replace "" in {textvar} with "%item%"
      replace every "&" with "§" in line 1
      # The following acts as a simple chat censor, but it will e.g. censor mass, hassle, assassin, etc. as well:
      on chat:
          replace all "kys", "idiot" and "noob" with "****" in the message

      replace all stone and dirt in player's inventory and player's top inventory with diamond
      Return 🔗
      Patterns:
      Since: 2.2
      Makes a function return a value
      Examples:
      function double(i: number) :: number:
          return 2 * {_i}
      Send Block Change 🔗
      Patterns:
      Since: 2.2-dev37c, 2.5.1 (block data support)
      Makes a player see a block as something it really isn't. BlockData support is only for MC 1.13+
      Examples:
      make player see block at player as dirt
      make player see target block as campfire[facing=south]
      Send Resource Pack 🔗
      Patterns:
      • send [the] resource pack [from [[the] URL]] %text% to %players%
      • send [the] resource pack [from [[the] URL]] %text% with hash %text% to %players%
      Since: 2.4
      Request that the player's client download and switch resource packs. The client will download the resource pack in the background, and will automatically switch to it once the download is complete. The URL must be a direct download link.

      The hash is used for caching, the player won't have to re-download the resource pack that way. The hash must be SHA-1, you can get SHA-1 hash of your resource pack using this online tool.

      The resource pack request action can be used to check status of the sent resource pack request.

      Examples:
      on join:
          send the resource pack from "URL" with hash "hash" to the player
      Shear 🔗
      Patterns:
      Since: 2.0
      Shears or 'un-shears' a sheep. Please note that no wool is dropped, this only sets the 'sheared' state of the sheep.
      Examples:
      on rightclick on a sheep holding a sword:
          shear the clicked sheep
      Shoot 🔗
      Patterns:
      Since: 1.4
      Shoots a projectile (or any other entity) from a given entity.
      Examples:
      shoot an arrow
      make the player shoot a creeper at speed 10
      shoot a pig from the creeper
      Silence Entity 🔗
      Patterns:
      Since: 2.5
      Controls whether or not an entity is silent.
      Examples:
      make target entity silent
      Spawn 🔗
      Patterns:
      Since: 1.0
      Spawn a creature.
      Examples:
      spawn 3 creepers at the targeted block
      spawn a ghast 5 meters above the player
      Stop Server 🔗
      Patterns:
      • (stop|shut[ ]down) [the] server
      • restart [the] server
      Since: 2.5
      Stops or restarts the server. If restart is used when the restart-script spigot.yml option isn't defined, the server will stop instead.
      Examples:
      stop the server
      restart server
      Stop Sound 🔗
      Patterns:
      Since: 2.4
      Requirements: Minecraft 1.10.2+, Minecraft 1.11+ (sound categories)
      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.

      Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself.

      Examples:
      stop sound "block.chest.open" for the player
      stop playing sounds "ambient.underwater.loop" and "ambient.underwater.loop.additions" to the player
      Swing Hand 🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15.2+
      Makes an entity swing their hand. This does nothing if the entity does not have an animation for swinging their hand.
      Examples:
      make player swing their main hand
      Teleport 🔗
      Patterns:
      Since: 1.0
      Teleport an entity to a specific location. This effect is delayed by default on Paper, meaning certain syntax such as the return effect for functions cannot be used after this effect. The keyword 'force' indicates this effect will not be delayed, which may cause lag spikes or server crashes when using this effect to teleport entities to unloaded chunks.
      Examples:
      teleport the player to {homes.%player%}
      teleport the attacker to the victim
      Title - Reset 🔗
      Patterns:
      • reset [the] title[s] [of %players%]
      • reset [the] %players%'[s] title[s]
      Since: 2.3
      Resets the title of the player to the default values.
      Examples:
      reset the titles of all players
      reset the title
      Title - Send 🔗
      Patterns:
      Since: 2.3
      Sends a title/subtitle to the given player(s) with optional fadein/stay/fadeout times for Minecraft versions 1.11 and above. 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.
      Examples:
      send title "Competition Started" with subtitle "Have fun, Stay safe!" to player for 5 seconds
      send title "Hi %player%" to player
      send title "Loot Drop" with subtitle "starts in 3 minutes" to all players
      send title "Hello %player%!" with subtitle "Welcome to our server" to player for 5 seconds with fadein 1 second and fade out 1 second
      send subtitle "Party!" to all players
      Toggle 🔗
      Patterns:
      • (close|turn off|de[-]activate) %blocks%
      • (toggle|switch) [[the] state of] %blocks%
      • (open|turn on|activate) %blocks%
      Since: 1.4
      Toggle the state of a block.
      Examples:
      # use arrows to toggle switches, doors, etc.
      on projectile hit:
          projectile is arrow
          toggle the block at the arrow
      Toggle Flight 🔗
      Patterns:
      • (allow|enable) (fly|flight) (for|to) %players%
      • (disallow|disable) (fly|flight) (for|to) %players%
      Since: 2.3
      Toggle the flight mode of a player.
      Examples:
      allow flight to event-player
      Tree 🔗
      Patterns:
      Since: 1.0
      Creates a tree. 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.
      Examples:
      grow a tall redwood tree above the clicked block
      Vectors - Rotate Around Vector 🔗
      Patterns:
      Since: 2.2-dev28
      Rotates a vector around another vector
      Examples:
      rotate {_v} around vector 1, 0, 0 by 90
      Vectors - Rotate around XYZ 🔗
      Patterns:
      Since: 2.2-dev28
      Rotates a vector around x, y, or z axis by some degrees
      Examples:
      rotate {_v} around x-axis by 90
      rotate {_v} around y-axis by 90
      rotate {_v} around z-axis by 90 degrees
      Vehicle 🔗
      Patterns:
      • (make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%
      • [(make|let|force) %entities% [to] (dismount|(dismount|leave) (from|of)] [(any|the[ir]|his|her)] vehicle[s])
      • [(eject|dismount) (any|the)] passenger[s] (of|from) %entities%
      Since: 2.0
      Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc.
      Examples:
      make the player ride a saddled pig
      make the attacker ride the victim
      op/deop 🔗
      Patterns:
      Since: 1.0
      Grant/revoke a user operator state.
      Examples:
      op the player
      deop all players
      \ No newline at end of file + Skript Documentation - 2.6-beta3

      Effects

      Action Bar

      🔗
      Patterns:
      • send [the] action bar [with text] %text% to %players%
      Since: 2.3
      Sends an action bar message to the given player(s).

      Examples:

      send action bar "Hello player!" to player

      Ban

      🔗
      Patterns:
      Since: 1.4, 2.1.1 (ban reason), 2.5 (timespan)
      Bans or unbans a player or an IP address. If a reason is given, it will be shown to the player when they try to join the server while banned. A length of ban may also be given to apply a temporary ban. If it is absent for any reason, a permanent ban will be used instead. We recommend that you test your scripts so that no accidental permanent bans are applied.

      Note that banning people does not kick them from the server. Consider using the kick effect after applying a ban.

      Examples:

      unban player
      ban "127.0.0.1"
      IP-ban the player because "he is an idiot"
      ban player due to "inappropriate language" for 2 days

      Break Block

      🔗
      Patterns:
      Since: 2.4
      Breaks the block and spawns items as if a player had mined it

      You can add a tool, which will spawn items based on how that tool would break the block (ie: When using a hand to break stone, it drops nothing, whereas with a pickaxe it drops cobblestone)

      Examples:

      on right click:
          break clicked block naturally
      loop blocks in radius 10 around player:
          break loop-block using player's tool
      loop blocks in radius 10 around player:
          break loop-block naturally using diamond pickaxe

      Broadcast

      🔗
      Patterns:
      Since: 1.0, 2.6 (broadcasting objects)
      Broadcasts a message to the server. Only formatting options supported by console (i.e. colors) are supported. If you need to use advanced chat formatting, send the message to all players instead of broadcasting it.

      Examples:

      broadcast "Welcome %player% to the server!"
      broadcast "Woah! It's a message!"

      Cancel Command Cooldown

      🔗
      Patterns:
      • (cancel|ignore) [the] [current] [command] cooldown
      • un(cancel|ignore) [the] [current] [command] cooldown
      Since: 2.2-dev34
      Only usable in commands. Makes it so the current command usage isn't counted towards the cooldown.

      Examples:

      command /nick <text>:
          executable by: players
          cooldown: 10 seconds
          trigger:
              if length of arg-1 is more than 16:
                  # Makes it so that invalid arguments don't make you wait for the cooldown again
                  cancel the cooldown
                  send "Your nickname may be at most 16 characters."
                  stop
              set the player's display name to arg-1

      Cancel Drops

      🔗
      Patterns:
      • (cancel|clear|delete) [the] drops [of (items|[e]xp[erience][s])]
      • (cancel|clear|delete) [the] (item|[e]xp[erience]) drops
      Since: 2.4
      Usable in events: death, break / mine
      Requirements: 1.12.2 or newer (cancelling item drops of blocks)
      Cancels drops of items or experiences in a death or block break event. Please note that this doesn't keep items or experiences of a dead player. If you want to do that, use the Keep Inventory / Experience effect.

      Examples:

      on death of a zombie:
          if name of the entity is "&cSpecial":
              cancel drops of items

      on break of a coal ore:
          cancel the experience drops

      Cancel Event

      🔗
      Patterns:
      • cancel [the] event
      • uncancel [the] event
      Since: 1.0
      Cancels the event (e.g. prevent blocks from being placed, or damage being taken).

      Examples:

      on damage:
          victim is a player
          victim has the permission "skript.god"
          cancel the event

      Change: Set/Add/Remove/Delete/Reset

      🔗
      Patterns:
      Since: 1.0 (set, add, remove, delete), 2.0 (remove all)
      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.

      Examples:

      # set:
      Set the player's display name to "<red>%name of player%"
      set the block above the victim to lava
      # add:
      add 2 to the player's health # preferably use 'heal' for this
      add argument to {blacklist::*}
      give a diamond pickaxe of efficiency 5 to the player
      increase the data value of the clicked block by 1
      # remove:
      remove 2 pickaxes from the victim
      subtract 2.5 from {points::%uuid of player%}
      # remove all:
      remove every iron tool from the player
      remove all minecarts from {entitylist::*}
      # delete:
      delete the block below the player
      clear drops
      delete {variable}
      # reset:
      reset walk speed of player
      reset chunk at the targeted block

      Charge Creeper

      🔗
      Patterns:
      • make %living entities% [a[n]] (charged|powered|((un|non[-])charged|(un|non[-])powered)) [creeper[s]]
      • (charge|power|(uncharge|unpower)) %living entities%
      Since: 2.5
      Charges or uncharges a creeper. A creeper is charged when it has been struck by lightning.

      Examples:

      on spawn of creeper:
          charge the event-entity

      Colour Items

      🔗
      Patterns:
      Since: 2.0, 2.2-dev26 (maps and potions)
      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.

      Examples:

      dye player's helmet blue
      colour the player's tool red

      Command

      🔗
      Patterns:
      Since: 1.0
      Executes a command. This can be useful to use other plugins in triggers.

      Examples:

      make player execute command "/suicide"
      execute console command "/say Hello everyone!"

      Connect

      🔗
      Patterns:
      Since: 2.3
      Connects a player to another bungeecord server

      Examples:

      connect all players to "hub"

      Continue

      🔗
      Patterns:
      • continue [loop]
      Since: 2.2-dev37
      Skips the value currently being looped, moving on to the next value if it exists.

      Examples:

      loop all players:
          if loop-value does not have permission "moderator":
              continue # filter out non moderators
          broadcast "%loop-player% is a moderator!" # Only moderators get broadcast

      Damage/Heal/Repair

      🔗
      Patterns:
      Since: 1.0
      Damage/Heal/Repair an entity, or item.

      Examples:

      damage player by 5 hearts
      heal the player
      repair tool of player

      Delay

      🔗
      Patterns:
      Since: 1.4
      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!

      Examples:

      wait 2 minutes
      halt for 5 minecraft hours
      wait a tick

      Do If

      🔗
      Patterns:
      • <.+> if <.+>
      Since: 2.3
      Execute an effect if a condition is true.

      Examples:

      on join:
          give a diamond to the player if the player has permission "rank.vip"

      Drop

      🔗
      Patterns:
      Since: 1.0
      Drops one or more items.

      Examples:

      on death of creeper:
          drop 1 TNT

      Enable/Disable/Reload Script File

      🔗
      Patterns:
      • (enable|load|reload|disable|unload) s(c|k)ript [file] %text%
      Since: 2.4
      Enables, disables, or reloads a script file.

      Examples:

      reload script "test"
      enable script file "testing"
      unload script file "script.sk"

      Enchant/Disenchant

      🔗
      Patterns:
      Since: 2.0
      Enchant or disenchant an existing item.

      Examples:

      enchant the player's tool with sharpness 5
      disenchant the player's tool

      Equip

      🔗
      Patterns:
      Since: 1.0
      Equips an entity with some given armor. This will replace any armor that the entity is wearing.

      Examples:

      equip player with diamond helmet
      equip player with all diamond armor

      Exit

      🔗
      Patterns:
      • (exit|stop) [trigger]
      • (exit|stop) [(1|a|the|this)] (section|loop|conditional)
      • (exit|stop) <\d+> (section|loop|conditional)s
      • (exit|stop) all (section|loop|conditional)s
      Since: unknown (before 2.1)
      Exits a given amount of loops and conditionals, or the entire trigger.

      Examples:

      if player has any ore:
          stop
      message "%player% has no ores!"
      loop blocks above the player:
          loop-block is not air:
              exit 2 sections
          set loop-block to water

      Explode Creeper

      🔗
      Patterns:
      Since: 2.5
      Requirements: Paper 1.13 or newer/Spigot 1.14 or newer. Ignition can be stopped on Paper 1.13 or newer.
      Starts the explosion process of a creeper or instantly explodes it.

      Examples:

      start explosion of the last spawned creeper
      stop ignition of the last spawned creeper

      Explosion

      🔗
      Patterns:
      Since: 1.0
      Creates an explosion of a given force. The Minecraft Wiki has an article on explosions which lists the explosion forces of TNT, creepers, etc. 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. 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.

      Examples:

      create an explosion of force 10 at the player
      create an explosion of force 0 at the victim

      Feed

      🔗
      Patterns:
      Since: 2.2-dev34
      Feeds the specified players.

      Examples:

      feed all players
      feed the player by 5 beefs

      Force Attack

      🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15.2+
      Makes a living entity attack an entity with a melee attack.

      Examples:

      spawn a wolf at player's location
      make last spawned wolf attack player

      Force Respawn

      🔗
      Patterns:
      Since: 2.2-dev21
      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.

      Examples:

      on death of player:
          force event-player to respawn

      Hide Player from Server List

      🔗
      Patterns:
      • hide %players% (in|on|from) [the] server list
      • hide %players%'[s] info[rmation] (in|on|from) [the] server list
      Since: 2.3
      Hides a player from the hover list and decreases the online players count (only if the player count wasn't changed before).

      Examples:

      on server list ping:
          hide {vanished::*} from the server list

      Ignite/Extinguish

      🔗
      Patterns:
      Since: 1.4
      Lights entities on fire or extinguishes them.

      Examples:

      ignite the player
      extinguish the player

      Keep Inventory / Experience

      🔗
      Patterns:
      • keep [the] (inventory|items) [(and [e]xp[erience][s] [point[s]])]
      • keep [the] [e]xp[erience][s] [point[s]] [(and (inventory|items))]
      Since: 2.4
      Usable in events: death
      Keeps the inventory or/and experiences of the dead player in a death event.

      Examples:

      on death of a player:
          if the victim is an op:
              keep the inventory and experiences

      Kick

      🔗
      Patterns:
      • kick %players% [(by reason of|because [of]|on account of|due to) %text%]
      Since: 1.0
      Kicks a player from the server.

      Examples:

      on place of TNT, lava, or obsidian:
          kick the player due to "You may not place %block%!"
          cancel the event

      Kill

      🔗
      Patterns:
      Since: 1.0
      Kills an entity. 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.

      Examples:

      kill the player
      kill all creepers in the player's world
      kill all endermen, witches and bats

      Launch firework

      🔗
      Patterns:
      Since: 2.4
      Launch firework effects at the given location(s).

      Examples:

      launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1

      Leash entities

      🔗
      Patterns:
      Since: 2.3
      Leash living entities to other entities.

      Examples:

      leash the player to the target entity

      Lightning

      🔗
      Patterns:
      Since: 1.4
      Strike lightning at a given location. Can use 'lightning effect' to create a lightning that does not harm entities or start fires.

      Examples:

      strike lightning at the player
      strike lightning effect at the victim

      Load Server Icon

      🔗
      Patterns:
      • load [the] server icon (from|of) [the] [image] [file] %text%
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Loads server icons from the given files. You can get the loaded icon using the last loaded server icon expression. Please note that the image must be 64x64 and the file path starts from the server folder.

      Examples:

      on load:
          clear {server-icons::*}
          loop 5 times:
              load server icon from file "icons/%loop-number%.png"
              add the last loaded server icon to {server-icons::*}

      on server list ping:
          set the icon to a random server icon out of {server-icons::*}

      Locally Suppress Warning

      🔗
      Patterns:
      • [local[ly]] suppress [the] (conflict|variable save|[missing] conjunction[s]|starting [with] expression[s]) warning[s]
      Since: 2.3
      Suppresses target warnings from the current script.

      Examples:

      locally suppress conflict warnings
      suppress the variable save warnings

      Log

      🔗
      Patterns:
      Since: 2.0
      Writes text into a .log file. Skript will write these files to /plugins/Skript/logs. 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.

      Examples:

      on place of TNT:
          log "%player% placed TNT in %world% at %location of block%" to "tnt/placement.log"

      Make Fly

      🔗
      Patterns:
      Since: 2.2-dev34
      Forces a player to start/stop flying.

      Examples:

      make player fly
      force all players to stop flying

      Make Incendiary

      🔗
      Patterns:
      • make %entities% [(not)] incendiary
      • make %entities%'[s] explosion [(not)] (incendiary|fiery)
      • make [the] [event(-| )]explosion [(not)] (incendiary|fiery)
      Since: 2.5
      Sets if an entity's explosion will leave behind fire. This effect is also usable in an explosion prime event.

      Examples:

      on explosion prime:
          make the explosion fiery

      Make Invulnerable

      🔗
      Patterns:
      Since: 2.5
      Makes an entity invulnerable/not invulnerable.

      Examples:

      make target entity invulnerable

      Make Say

      🔗
      Patterns:
      Since: 2.3
      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.

      Examples:

      make the player say "Hello."
      force all players to send the message "I love this server"

      Message

      🔗
      Patterns:
      Since: 1.0, 2.2-dev26 (advanced features), 2.5.2 (optional sender), 2.6 (sending objects)
      Requirements: Minecraft 1.16.4+ for optional sender
      Sends a message to the given player. Only styles written in given string or in formatted expressions will be parsed. Adding an optional sender allows the messages to be sent as if a specific player sent them. This is useful with Minecraft 1.16.4's new chat ignore system, in which players can choose to ignore other players, but for this to work, the message needs to be sent from a player.

      Examples:

      message "A wild %player% appeared!"
      message "This message is a distraction. Mwahaha!"
      send "Your kill streak is %{kill streak::%uuid of player%}%." to player
      if the targeted entity exists:
          message "You're currently looking at a %type of the targeted entity%!"
      on chat:
          cancel event
          send "[%player%] >> %message%" to all players from player

      Open Book

      🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.14.2+
      Opens a written book to a player.

      Examples:

      open book player's tool to player

      Open/Close Inventory

      🔗
      Patterns:
      • (open|show) (((crafting [table]|workbench)|chest|anvil|hopper|dropper|dispenser) [(view|window|inventory)]|%inventory/inventory type%) (to|for) %players%
      • close [the] inventory [view] (to|of|for) %players%
      • close %players%'[s] inventory [view]
      Since: 2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil), 2.4 (hopper, dropper, dispenser
      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. 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.

      Examples:

      show the victim's inventory to the player
      open the player's inventory for the player

      Play Effect

      🔗
      Patterns:
      Since: 2.1
      Plays a visual effect at a given location or on a given entity. 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.

      Examples:

      play wolf hearts on the clicked wolf
      show mob spawner flames at the targeted block to the player

      Play Sound

      🔗
      Patterns:
      Since: 2.2-dev28, 2.4 (sound categories)
      Requirements: Minecraft 1.11+ (sound categories)
      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.

      Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself.

      Examples:

      play sound "block.note_block.pling" # It is block.note.pling in 1.12.2
      play sound "entity.experience_orb.pickup" with volume 0.5 to the player
      play sound "custom.music.1" in jukebox category at {speakerBlock}

      Player Info Visibility

      🔗
      Patterns:
      • hide [all] player [related] info[rmation] [(in|on|from) [the] server list]
      • (show|reveal) [all] player [related] info[rmation] [(in|to|on|from) [the] server list]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      Sets whether all player related information is hidden in the server list. The Vanilla Minecraft client will display ??? (dark gray) instead of player counts and will not show the hover hist when hiding player info. The version string can override the ???. Also the Online Players Count and Max Players expressions will return -1 when hiding player info.

      Examples:

      hide player info
      hide player related information in the server list
      reveal all player related info

      Player Visibility

      🔗
      Patterns:
      Since: 2.3
      Change visibility of a player for the given players. 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.

      Note: if a player was hidden and relogs, this player will be visible again.

      Examples:

      on join:
          if {vanished::%player's uuid%} is true:
              hide the player from all players

      reveal hidden players of {_player}

      Poison/Cure

      🔗
      Patterns:
      Since: 1.3.2
      Poison or cure a creature.

      Examples:

      poison the player
      poison the victim for 20 seconds
      cure the player from poison

      Potion Effects

      🔗
      Patterns:
      Since: 2.0, 2.2-dev27 (ambient and particle-less potion effects), 2.5 (replacing existing effect), 2.5.2 (potion effects)
      Apply or remove potion effects to/from entities.

      Examples:

      apply swiftness 2 to the player
      remove haste from the victim
      on join:
          apply potion of strength of tier {strength.%player%} to the player for 999 days
      apply potion effects of player's tool to player

      Push

      🔗
      Patterns:
      Since: 1.4.6
      Push entities around.

      Examples:

      push the player upwards
      push the victim downwards at speed 0.5

      PvP

      🔗
      Patterns:
      Since: 1.3.4
      Set the PvP state for a given world.

      Examples:

      enable PvP #(current world only)
      disable PvP in all worlds

      Replace

      🔗
      Patterns:
      Since: 2.0, 2.2-dev24 (replace in muliple strings and replace items in inventory), 2.5 (replace first, case sensitivity)
      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. Starting with 2.2-dev24, you can replace items in a inventory too.

      Examples:

      replace "" in {textvar} with "%item%"
      replace every "&" with "§" in line 1
      # The following acts as a simple chat censor, but it will e.g. censor mass, hassle, assassin, etc. as well:
      on chat:
          replace all "kys", "idiot" and "noob" with "****" in the message

      replace all stone and dirt in player's inventory and player's top inventory with diamond

      Return

      🔗
      Patterns:
      Since: 2.2
      Makes a function return a value

      Examples:

      function double(i: number) :: number:
          return 2 * {_i}

      Send Block Change

      🔗
      Patterns:
      Since: 2.2-dev37c, 2.5.1 (block data support)
      Makes a player see a block as something it really isn't. BlockData support is only for MC 1.13+

      Examples:

      make player see block at player as dirt
      make player see target block as campfire[facing=south]

      Send Resource Pack

      🔗
      Patterns:
      • send [the] resource pack [from [[the] URL]] %text% to %players%
      • send [the] resource pack [from [[the] URL]] %text% with hash %text% to %players%
      Since: 2.4
      Request that the player's client download and switch resource packs. The client will download the resource pack in the background, and will automatically switch to it once the download is complete. The URL must be a direct download link.

      The hash is used for caching, the player won't have to re-download the resource pack that way. The hash must be SHA-1, you can get SHA-1 hash of your resource pack using this online tool.

      The resource pack request action can be used to check status of the sent resource pack request.

      Examples:

      on join:
          send the resource pack from "URL" with hash "hash" to the player

      Shear

      🔗
      Patterns:
      Since: 2.0
      Shears or 'un-shears' a sheep. Please note that no wool is dropped, this only sets the 'sheared' state of the sheep.

      Examples:

      on rightclick on a sheep holding a sword:
          shear the clicked sheep

      Shoot

      🔗
      Patterns:
      Since: 1.4
      Shoots a projectile (or any other entity) from a given entity.

      Examples:

      shoot an arrow
      make the player shoot a creeper at speed 10
      shoot a pig from the creeper

      Silence Entity

      🔗
      Patterns:
      Since: 2.5
      Controls whether or not an entity is silent.

      Examples:

      make target entity silent

      Spawn

      🔗
      Patterns:
      Since: 1.0
      Spawn a creature.

      Examples:

      spawn 3 creepers at the targeted block
      spawn a ghast 5 meters above the player

      Stop Server

      🔗
      Patterns:
      • (stop|shut[ ]down) [the] server
      • restart [the] server
      Since: 2.5
      Stops or restarts the server. If restart is used when the restart-script spigot.yml option isn't defined, the server will stop instead.

      Examples:

      stop the server
      restart server

      Stop Sound

      🔗
      Patterns:
      Since: 2.4
      Requirements: Minecraft 1.10.2+, Minecraft 1.11+ (sound categories)
      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.

      Please note that sound names can get changed in any Minecraft or Spigot version, or even removed from Minecraft itself.

      Examples:

      stop sound "block.chest.open" for the player
      stop playing sounds "ambient.underwater.loop" and "ambient.underwater.loop.additions" to the player

      Swing Hand

      🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15.2+
      Makes an entity swing their hand. This does nothing if the entity does not have an animation for swinging their hand.

      Examples:

      make player swing their main hand

      Teleport

      🔗
      Patterns:
      Since: 1.0
      Teleport an entity to a specific location. This effect is delayed by default on Paper, meaning certain syntax such as the return effect for functions cannot be used after this effect. The keyword 'force' indicates this effect will not be delayed, which may cause lag spikes or server crashes when using this effect to teleport entities to unloaded chunks.

      Examples:

      teleport the player to {homes.%player%}
      teleport the attacker to the victim

      Title - Reset

      🔗
      Patterns:
      • reset [the] title[s] [of %players%]
      • reset [the] %players%'[s] title[s]
      Since: 2.3
      Resets the title of the player to the default values.

      Examples:

      reset the titles of all players
      reset the title

      Title - Send

      🔗
      Patterns:
      Since: 2.3
      Sends a title/subtitle to the given player(s) with optional fadein/stay/fadeout times for Minecraft versions 1.11 and above. 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.

      Examples:

      send title "Competition Started" with subtitle "Have fun, Stay safe!" to player for 5 seconds
      send title "Hi %player%" to player
      send title "Loot Drop" with subtitle "starts in 3 minutes" to all players
      send title "Hello %player%!" with subtitle "Welcome to our server" to player for 5 seconds with fadein 1 second and fade out 1 second
      send subtitle "Party!" to all players

      Toggle

      🔗
      Patterns:
      • (close|turn off|de[-]activate) %blocks%
      • (toggle|switch) [[the] state of] %blocks%
      • (open|turn on|activate) %blocks%
      Since: 1.4
      Toggle the state of a block.

      Examples:

      # use arrows to toggle switches, doors, etc.
      on projectile hit:
          projectile is arrow
          toggle the block at the arrow

      Toggle Flight

      🔗
      Patterns:
      • (allow|enable) (fly|flight) (for|to) %players%
      • (disallow|disable) (fly|flight) (for|to) %players%
      Since: 2.3
      Toggle the flight mode of a player.

      Examples:

      allow flight to event-player

      Tree

      🔗
      Patterns:
      Since: 1.0
      Creates a tree. 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.

      Examples:

      grow a tall redwood tree above the clicked block

      Vectors - Rotate Around Vector

      🔗
      Patterns:
      Since: 2.2-dev28
      Rotates a vector around another vector

      Examples:

      rotate {_v} around vector 1, 0, 0 by 90

      Vectors - Rotate around XYZ

      🔗
      Patterns:
      Since: 2.2-dev28
      Rotates a vector around x, y, or z axis by some degrees

      Examples:

      rotate {_v} around x-axis by 90
      rotate {_v} around y-axis by 90
      rotate {_v} around z-axis by 90 degrees

      Vehicle

      🔗
      Patterns:
      • (make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%
      • (make|let|force) %entities% [to] (dismount|(dismount|leave) [(from|of)] [(any|the[ir]|his|her)] vehicle[s])
      • (eject|dismount) [(any|the)] passenger[s] (of|from) %entities%
      Since: 2.0
      Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc.

      Examples:

      make the player ride a saddled pig
      make the attacker ride the victim

      op/deop

      🔗
      Patterns:
      Since: 1.0
      Grant/revoke a user operator state.

      Examples:

      op the player
      deop all players
      \ No newline at end of file diff --git a/events.html b/events.html index c59ba6aba5c..5fc153366a1 100644 --- a/events.html +++ b/events.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

      Events

      At Time 🔗
      Patterns:
      Since: 1.3.4
      An event that occurs at a given minecraft time in every world or only in specific worlds.
      Examples:
      at 18:00
      at 7am in "world"
      On AoE Cloud Effect 🔗
      Patterns:
      • (area|AoE) [cloud] effect
      Since: 2.2-dev21
      Called when area effect cloud applies its potion effect. This happens every 5 ticks by default.
      Examples:
      on area cloud effect:
      On Arm Swing 🔗
      Patterns:
      • [player] arm swing
      Since: 2.5.1
      Called when a player swings his arm.
      Examples:
      on arm swing:
          send "You swung your arm!"
      On Armor Change 🔗
      Patterns:
      • [player] armor change[d]
      Since: 2.5
      Called when armor pieces of a player are changed.
      Examples:
      on armor change:
          send "You equipped %event-item%!"
      On Bed Enter 🔗
      Patterns:
      • bed enter[ing]
      • [player] enter[ing] [a] bed
      Since: 1.0
      Called when a player starts sleeping.
      Examples:
      on bed enter:
      On Bed Leave 🔗
      Patterns:
      • bed leav(e|ing)
      • [player] leav(e|ing) [a] bed
      Since: 1.0
      Called when a player leaves a bed.
      Examples:
      on player leaving a bed:
      On Block Damage 🔗
      Patterns:
      • block damag(ing|e)
      Since: 1.0
      Called when a player starts to break a block. You can usually just use the leftclick event for this.
      Examples:
      on block damaging:
          if block is log:
              send "You can't break the holy log!"
      On Block Fertilize 🔗
      Patterns:
      • [block] fertilize
      Since: 2.5
      Called when a player fertilizes blocks.
      Examples:
      on block fertilize:
          send "Fertilized %size of fertilized blocks% blocks got fertilized."
      On Block Growth 🔗
      Patterns:
      • (plant|crop|block) grow[(th|ing)] [[of] %item types%]
      Since: 2.2-Fixes-V10
      Called when a crop grows. Alternative to new form of generic grow event.
      Examples:
      on crop growth:
      On Book Edit 🔗
      Patterns:
      • book (edit|change|write)
      Since: 2.2-dev31
      Called when a player edits a book.
      Examples:
      on book edit:
      On Book Sign 🔗
      Patterns:
      • book sign[ing]
      Since: 2.2-dev31
      Called when a player signs a book.
      Examples:
      on book sign:
      On Break / Mine 🔗
      Patterns:
      Since: 1.0 (break), unknown (mine), 2.6 (BlockData support)
      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.
      Examples:
      on mine:
      on break of stone:
      on mine of any ore:
      on break of chest[facing=north]:
      on break of potatoes[age=7]:
      On Bucket Empty 🔗
      Patterns:
      • bucket empty[ing]
      • [player] empty[ing] [a] bucket
      Since: 1.0
      Called when a player empties a bucket. You can also use the place event with a check for water or lava.
      Examples:
      on bucket empty:
      On Bucket fill 🔗
      Patterns:
      • bucket fill[ing]
      • [player] fill[ing] [a] bucket
      Since: 1.0
      Called when a player fills a bucket.
      Examples:
      on player filling a bucket:
      On Burn 🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a block is destroyed by fire.
      Examples:
      on burn:
      on burn of wood, fences, or chests:
      on burn of oak_log[axis=y]:
      On Can Build Check 🔗
      Patterns:
      • [block] can build check
      Since: 1.0 (basic), 2.0 ([un]cancellable)
      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. Please note that the data value of the block to be placed is not available in this event, only its ID.
      Examples:
      on block can build check:
          cancel event
      On Chat 🔗
      Patterns:
      • chat
      Since: 1.4.1
      Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients.
      Examples:
      on chat:
          if player has permission "owner":
              set chat format to "[player]: [message]"
          else if player has permission "admin":
              set chat format to "[player]: [message]"
          else: #default message format
              set chat format to "[player]: [message]"
      On Chunk Generate 🔗
      Patterns:
      • chunk (generat|populat)(e|ing)
      Since: 1.0
      Called after a new chunk was generated.
      Examples:
      on chunk generate:
      On Chunk Load 🔗
      Patterns:
      • chunk load[ing]
      Since: 1.0
      Called when a chunk loads. The chunk might or might not contain mobs when it's loaded.
      Examples:
      on chunk load:
      On Chunk Unload 🔗
      Patterns:
      • chunk unload[ing]
      Since: 1.0
      Called when a chunk is unloaded due to not being near any player.
      Examples:
      on chunk unload:
      On Click 🔗
      Patterns:
      Since: 1.0
      Called when a user clicks on a block, an entity or air with or without an item in their hand. 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.
      Examples:
      on click:
      on rightclick holding a fishing rod:
      on leftclick on a stone or obsidian:
      on rightclick on a creeper:
      on click with a sword:
      On Combust 🔗
      Patterns:
      • combust[ing]
      Since: 1.0
      Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons).
      Examples:
      on combust:
      On Command 🔗
      Patterns:
      Since: 2.0
      Called when a player enters a command (not necessarily a Skript command) but you can check if command is a skript command, see Is a Skript command condition.
      Examples:
      on command:
      on command "/stop":
      on command "pm Njol ":
      On Connect 🔗
      Patterns:
      • [player] connect[ing]
      Since: 2.0
      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.
      Examples:
      on connect:
          player doesn't have permission "VIP"
          number of players is greater than 15
          kick the player due to "The last 5 slots are reserved for VIP players."
      On Consume 🔗
      Patterns:
      • [player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]
      Since: 2.0
      Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion.
      Examples:
      on consume:
      On Craft 🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a player crafts an item.
      Examples:
      on craft:
      On Creeper Power 🔗
      Patterns:
      • creeper power
      Since: 1.0
      Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered.
      Examples:
      on creeper power:
      On Damage 🔗
      Patterns:
      Since: 1.0
      Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc.
      Examples:
      on damage:
      on damage of a player:
      On Death 🔗
      Patterns:
      Since: 1.0
      Called when a living entity (including players) dies.
      Examples:
      on death:
      on death of player:
      on death of a wither or ender dragon:
          broadcast "A %entity% has been slain in %world%!"
      On Dispense 🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a dispenser dispenses an item.
      Examples:
      on dispense of iron block:
          send "that'd be 19.99 please!"
      On Drop 🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a player drops an item from their inventory.
      Examples:
      on drop:
      On Enchant 🔗
      Patterns:
      • [item] enchant
      Since: 2.5
      Called when a player successfully enchants an item. To get the enchanted item, see the enchant item expression
      Examples:
      on enchant:
          if the clicked button is enchantment option 1:
              set the applied enchantments to sharpness 10 and unbreaking 10
      On Enchant Prepare 🔗
      Patterns:
      • [item] enchant prepare
      Since: 2.5
      Called when a player puts an item into enchantment table. This event may be called multiple times. To get the enchant item, see the enchant item expression
      Examples:
      on enchant prepare:
          set enchant offer 1 to sharpness 1
          set the cost of enchant offer 1 to 10 levels
      On Enderman/Sheep/Silverfish/Falling Block 🔗
      Patterns:
      • enderman place
      • enderman pickup
      • sheep eat
      • silverfish enter
      • silverfish exit
      • falling block land[ing]
      Since: unknown, 2.5.2 (falling block)
      Called when an enderman places or picks up a block, a sheep eats grass, a silverfish boops into/out of a block or a falling block lands and turns into a block respectively.
      Examples:
      on sheep eat:
          kill entity
          broadcast "A sheep stole some grass!"
      on falling block land:
          if event-entity is a falling dirt:
              cancel event
      On Entity Dismount 🔗
      Patterns:
      • dismount[ing]
      Since: 2.2-dev13b
      Called when an entity dismounts.
      Examples:
      on dismount:
          kill event-entity
      On Entity Mount 🔗
      Patterns:
      • mount[ing]
      Since: 2.2-dev13b
      Called when entity starts riding another.
      Examples:
      on mount:
          cancel event
      On Entity Portal 🔗
      Patterns:
      • entity portal
      Since: 2.5.3
      Called when an entity uses a nether or end portal. Cancel the event to prevent the entity from teleporting.
      Examples:
      on entity portal:
          broadcast "A %type of event-entity% has entered a portal!
      On Experience Spawn 🔗
      Patterns:
      • [e]xp[erience] [orb] spawn
      • spawn of [a[n]] [e]xp[erience] [orb]
      Since: 2.0
      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. 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)
      Examples:
      on xp spawn:
          world is "minigame_world"
          cancel event
      On Explode 🔗
      Patterns:
      • explo(d(e|ing)|sion)
      Since: 1.0
      Called when an entity (a primed TNT or a creeper) explodes.
      Examples:
      on explosion:
      On Explosion Prime 🔗
      Patterns:
      • explosion prime
      Since: 1.0
      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.
      Examples:
      on explosion prime:
      On Fade 🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a block 'fades away', e.g. ice or snow melts.
      Examples:
      on fade of snow or ice:
      on fade of snow[layers=2]
      On Firework Explode 🔗
      Patterns:
      • [a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]
      Since: 2.4
      Called when a firework explodes.
      Examples:
      on firework explode
      on firework exploding colored red, light green and black
      on firework explosion coloured light green:
          broadcast "A firework colored %colors% was exploded at %location%!"
      On First Join 🔗
      Patterns:
      • first (join|login)
      Since: 1.3.7
      Called when a player joins the server for the first time.
      Examples:
      on first join:
          broadcast "Welcome %player% to the server!"
      On Fishing 🔗
      Patterns:
      • [player] fish[ing]
      Since: 1.0
      Called when a player fishes something. This is not of much use yet.
      Examples:
      on fish:
      On Flight Toggle 🔗
      Patterns:
      • [player] flight toggl(e|ing)
      • [player] toggl(e|ing) flight
      Since: 2.2-dev36
      Called when a players stops/starts flying.
      Examples:
      on flight toggle:
          if {game::%player%::playing} exists:
              cancel event
      On Flow 🔗
      Patterns:
      • [block] flow[ing]
      • block mov(e|ing)
      Since: 1.0
      Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well.
      Examples:
      on block flow:
          if event-block is water:
              broadcast "Build more dams! It's starting to get wet in here"
      On Form 🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      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).
      Examples:
      on form of snow:
      on form of a mushroom:
      On Fuel Burn 🔗
      Patterns:
      • fuel burn[ing]
      Since: 1.0
      Called when a furnace burns an item from its fuel slot.
      Examples:
      on fuel burning:
      On Gamemode Change 🔗
      Patterns:
      Since: 1.0
      Called when a player's gamemode changes.
      Examples:
      on gamemode change:
      on gamemode change to adventure:
      On Gliding State Change 🔗
      Patterns:
      • (gliding state change|toggl(e|ing) gliding)
      Since: 2.2-dev21
      Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly.
      Examples:
      on toggling gliding:
          cancel the event # bad idea, but you CAN do it!
      On Grow 🔗
      Patterns:
      Since: 1.0 (2.2-dev20 for plants)
      Called when a tree, giant mushroom or plant grows to next stage.
      Examples:
      on grow:
      on grow of a tree:
      on grow of a huge jungle tree:
      On Hand Item Swap 🔗
      Patterns:
      • swap[ping of] [(hand|held)] item[s]
      Since: 2.3
      Called whenever a player swaps the items in their main- and offhand slots. Works also when one or both of the slots are empty. The event is called before the items are actually swapped, so when you use the player's tool or player's offtool expressions, they will return the values before the swap - this enables you to cancel the event before anything happens.
      Examples:
      on swap hand items:
          event-player's tool is a diamond sword
          cancel event
      On Heal 🔗
      Patterns:
      • heal[ing]
      Since: 1.0
      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).
      Examples:
      on heal:
      On Horse Jump 🔗
      Patterns:
      • horse jump
      Since: 2.5.1
      Called when a horse jumps.
      Examples:
      on horse jump:
          push event-entity upwards at speed 2
      On Hunger Meter Change 🔗
      Patterns:
      • (food|hunger) (level|met(er|re)|bar) chang(e|ing)
      Since: 1.4.4
      Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time.
      Examples:
      on food bar change:
      On Ignition 🔗
      Patterns:
      • [block] ignit(e|ion)
      Since: 1.0
      Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable. The burn event will be called when the block is about do be destroyed by the fire.
      Examples:
      on block ignite:
          if event-block is a ladder:
              cancel event
      On Inventory Click 🔗
      Patterns:
      • [player] inventory(-| )click[ing] [[at] %item types%]
      Since: 2.2-Fixes-V10
      Called when clicking on inventory slot.
      Examples:
      on inventory click:
          if event-item is stone:
              give player 1 stone
              remove 20$ from player's balance
      On Inventory Close 🔗
      Patterns:
      • inventory clos(ing|e[d])
      Since: 2.2-dev21
      Called when player's currently viewed inventory is closed.
      Examples:
      on inventory close:
          if player's location is {location}:
              send "You exited the shop!"
      On Inventory Open 🔗
      Patterns:
      • inventory open[ed]
      Since: 2.2-dev21
      Called when an inventory is opened for player.
      Examples:
      on inventory open:
          close player's inventory
      On Inventory Pickup 🔗
      Patterns:
      • inventory pick[ ]up
      Since: 2.5.1
      Called when an inventory (a hopper, a hopper minecart, etc.) picks up an item
      Examples:
      on inventory pickup:
      On Item Break 🔗
      Patterns:
      • [player] tool break[ing]
      • [player] break[ing] [(a|the)] tool
      Since: 2.1.1
      Called when a player breaks their tool because its damage reached the maximum value. This event cannot be cancelled.
      Examples:
      on tool break:
      On Item Damage 🔗
      Patterns:
      • item damag(e|ing)
      Since: 2.5
      Called when an item is damaged. Most tools are damaged by using them; armor is damaged when the wearer takes damage.
      Examples:
      on item damage:
          cancel event
      On Item Despawn 🔗
      Patterns:
      • (item[ ][stack]|[item] %item types%) despawn[ing]
      • [item[ ][stack]] despawn[ing] [[of] %item types%]
      Since: 2.2-dev35
      Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped.
      Examples:
      on item despawn of diamond:
          send "Not my precious!"
          cancel event
      On Item Mend 🔗
      Patterns:
      • item mend[ing]
      Since: 2.5.1
      Called when a player has an item repaired via the Mending enchantment.
      Examples:
      on item mend:
          chance of 50%:
              cancel the event
              send "Oops! Mending failed!" to player
      On Item Merge 🔗
      Patterns:
      Since: 2.2-dev35
      Called when dropped items merge into a single stack. event-entity will be the entity which is trying to merge, and future event-entity will be the entity which is being merged into.
      Examples:
      on item merge of gold blocks:
          cancel event
      On Item Spawn 🔗
      Patterns:
      Since: unknown (before 2.1)
      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 their inventory, or a dispenser dispensing an item (not shooting it).
      Examples:
      on item spawn of iron sword:
          broadcast "Someone dropped an iron sword!"
      On Join 🔗
      Patterns:
      • [player] (login|logging in|join[ing])
      Since: 1.0
      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.
      Examples:
      on join:
          message "Welcome on our awesome server!"
          broadcast "%player% just joined the server!"
      On Jump 🔗
      Patterns:
      • [player] jump[ing]
      Since: 2.3
      Called whenever a player jumps. This event requires PaperSpigot.
      Examples:
      on jump:
          event-player does not have permission "jump"
          cancel event
      On Kick 🔗
      Patterns:
      • [player] (kick|being kicked)
      Since: 1.0
      Called when a player is kicked from the server. You can change the kick message or cancel the event entirely.
      Examples:
      on kick:
      On Language Change 🔗
      Patterns:
      • [player] (language|locale) chang(e|ing)
      • [player] chang(e|ing) (language|locale)
      Since: 2.3
      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. This event requires Minecraft 1.12+.
      Examples:
      on language change:
          if player's language starts with "en":
              send "Hello!"
      On Leaves Decay 🔗
      Patterns:
      • leaves decay[ing]
      Since: 1.0
      Called when a leaf block decays due to not being connected to a tree.
      Examples:
      on leaves decay:
      On Level Change 🔗
      Patterns:
      • [player] level (change|up|down)
      Since: 1.0, 2.4 (level up/down)
      Called when a player's level changes, e.g. by gathering experience or by enchanting something.
      Examples:
      on level change:
      On Lightning Strike 🔗
      Patterns:
      • lightning [strike]
      Since: 1.0
      Called when lightning strikes.
      Examples:
      on lightning:
          spawn a zombie at location of event-entity
      On Move 🔗
      Patterns:
      Since: 2.6
      Called when a player or entity moves. NOTE: Move event will only be called when the entity/player moves position, not orientation (ie: looking around). NOTE: These events can be performance heavy as they are called quite often. If you use these events, and later remove them, a server restart is recommended to clear registered events from Skript.
      Examples:
      on player move:
          if player does not have permission "player.can.move":
              cancel event
      on skeleton move:
          if event-entity is not in world "world":
              kill event-entity
      On Move On 🔗
      Patterns:
      Since: 2.0
      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.
      Examples:
      on walking on dirt or grass:
      on stepping on stone:
      On Physics 🔗
      Patterns:
      • [block] physics
      Since: 1.4.6
      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.
      Examples:
      # prevents sand from falling
      on block physics:
          block is sand
          cancel event
      On Pick Up 🔗
      Patterns:
      • [(player|entity)] (pick[ ]up|picking up) [[of] %item types%]
      Since: unknown (before 2.1), 2.5 (entity)
      Called when a player/entity picks up an item. Please note that the item is still on the ground when this event is called.
      Examples:
      on pick up:
      on entity pickup of wheat:
      On Pig Zap 🔗
      Patterns:
      • pig[ ]zap
      Since: 1.0
      Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation.
      Examples:
      on pig zap:
      On Piston Extend 🔗
      Patterns:
      • piston extend[ing]
      Since: 1.0
      Called when a piston is about to extend.
      Examples:
      on piston extend:
          broadcast "A piston is extending!"
      On Piston Retract 🔗
      Patterns:
      • piston retract[ing]
      Since: 1.0
      Called when a piston is about to retract.
      Examples:
      on piston retract:
          broadcast "A piston is retracting!"
      On Place 🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a player places a block.
      Examples:
      on place:
      on place of a furnace, workbench or chest:
      on break of chest[type=right] or chest[type=left]
      On Player World Change 🔗
      Patterns:
      • [player] world chang(ing|e[d])
      Since: 2.2-dev28
      Called when a player enters a world. Does not work with other entities!
      Examples:
      on player world change:
          world is "city"
          send "Welcome to the City!"
      On Portal 🔗
      Patterns:
      • [player] portal
      Since: 1.0
      Called when a player uses a nether or end portal. Cancel the event to prevent the player from teleporting.
      Examples:
      on player portal:
      On Portal Create 🔗
      Patterns:
      • portal creat(e|ion)
      Since: 1.0, 2.5.3 (event-entity support)
      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. In Minecraft 1.14+, you can use the player in this event. Please note that there may not always be a player (or other entity) in this event.
      Examples:
      on portal create:
      On Portal Enter 🔗
      Patterns:
      • portal enter[ing]
      • entering [a] portal
      Since: 1.0
      Called when an entity enters a nether portal or an end portal. Please note that this event will be fired many times for a nether portal.
      Examples:
      on portal enter:
      On Prepare Craft 🔗
      Patterns:
      • [player] (preparing|beginning) craft[ing] [[of] %item types%]
      Since: 2.2-Fixes-V10
      Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs.
      Examples:
      on preparing craft of torch:
      On Pressure Plate / Trip 🔗
      Patterns:
      • [step[ping] on] [a] [pressure] plate
      • (trip|[step[ping] on] [a] tripwire)
      Since: 1.0 (pressure plate), 1.4.4 (tripwire)
      Called when a player steps on a pressure plate or tripwire respectively.
      Examples:
      on step on pressure plate:
      On Projectile Collide 🔗
      Patterns:
      • projectile collide
      Since: 2.5
      Called when a projectile collides with an entity.
      Examples:
      on projectile collide:
          teleport shooter of event-projectile to event-entity
      On Projectile Hit 🔗
      Patterns:
      • projectile hit
      Since: 1.0
      Called when a projectile hits an entity or a block. 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. A damage event will even be fired if the damage is 0, e.g. when throwing snowballs at non-nether mobs.
      Examples:
      on projectile hit:
          event-projectile is arrow
          delete event-projectile
      On Quit 🔗
      Patterns:
      • (quit[ting]|disconnect[ing]|log[ ]out|logging out|leav(e|ing))
      Since: 1.0 (simple disconnection)
      Called when a player leaves the server.
      Examples:
      on quit:
      on disconnect:
      On Redstone 🔗
      Patterns:
      • redstone [current] [chang(e|ing)]
      Since: 1.0
      Called when the redstone current of a block changes. This event is of not much use yet.
      Examples:
      on redstone change:
          send "someone is using redstone" to console
      On Region Enter/Leave 🔗
      Patterns:
      • (enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)
      • region (enter[ing]|leav(e|ing)|exit[ing])
      Since: 2.1
      Called when a player enters or leaves a region. This event requires a supported regions plugin to be installed.
      Examples:
      on region exit:
          message "Leaving %region%."
      On Resource Pack Request Response 🔗
      Patterns:
      Since: 2.4
      Called when a player takes action on a resource pack request sent via the send resource pack effect. The resource pack condition can be used to check the resource pack state.

      This event will be triggered once when the player accepts or declines the resource pack request, and once when the resource pack is successfully installed or failed to download.

      Examples:
      on resource pack request response:
          if the resource pack was declined or failed to download:

      on resource pack deny:
          kick the player due to "You have to install the resource pack to play in this server!"
      On Respawn 🔗
      Patterns:
      • [player] respawn[ing]
      Since: 1.0
      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.
      Examples:
      on respawn:
      On Resurrect Attempt 🔗
      Patterns:
      • [entity] resurrect[ion] [attempt]
      Since: 2.2-dev28
      Called when an entity dies, always. If they are not holding a totem, this is cancelled - you can, however, uncancel it.
      Examples:
      on resurrect attempt:
          entity is player
          entity has permission "admin.undying"
          uncancel the event
      On Riptide 🔗
      Patterns:
      • [use of] riptide [enchant[ment]]
      Since: 2.5
      Called when the player activates the riptide enchantment, using their trident to propel them through the air. Note: the riptide action is performed client side, so manipulating the player in this event may have undesired effects.
      Examples:
      on riptide:
          send "You are riptiding!"
      On Script Load/Unload 🔗
      Patterns:
      • [(async)] [script] (load|init|enable)
      • [(async)] [script] (unload|stop|disable)
      Since: 2.0
      Called directly after the trigger is loaded, or directly before the whole script is unloaded. The keyword 'async' indicates the trigger can be ran asynchronously,
      Examples:
      on load:
          set {running::%script%} to true
      on unload:
          set {running::%script%} to false
      On Server List Ping 🔗
      Patterns:
      • server [list] ping
      Since: 2.3
      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. The IP expression can be used to get the IP adress of the pinger. 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).

      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.

      Examples:
      on server list ping:
          set the motd to "Welcome %{player-by-IP::%ip%}%! Join now!" if {player-by-IP::%ip%} is set, else "Join now!"
          set the fake max players count to (online players count + 1)
          set the shown icon to a random server icon out of {server-icons::*}
      On Server Start/Stop 🔗
      Patterns:
      • (server|skript) (start|load|enable)
      • (server|skript) (stop|unload|disable)
      Since: 2.0
      Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well).
      Examples:
      on skript start:
      on server stop:
      On Sheep Regrow Wool 🔗
      Patterns:
      • sheep [re]grow[ing] wool
      Since: 2.2-dev21
      Called when sheep regrows its sheared wool back.
      Examples:
      on sheep grow wool:
          cancel event
      On Shoot 🔗
      Patterns:
      • [projectile] shoot
      Since: 1.0
      Called whenever a projectile is shot. Use the shooter expression to get who shot the projectile.
      Examples:
      on shoot:
          if projectile is an arrow:
              send "you shot an arrow!" to shooter
      On Sign Change 🔗
      Patterns:
      • sign (chang[e]|edit)[ing]
      • [player] (chang[e]|edit)[ing] [a] sign
      Since: 1.0
      As signs are placed empty, this event is called when a player is done editing a sign.
      Examples:
      on sign change:
          line 2 is empty
          set line 1 to "%line 1%"
      On Slime Split 🔗
      Patterns:
      • slime split[ting]
      Since: 2.2-dev26
      Called when a slime splits. Usually this happens when a big slime dies.
      Examples:
      on slime split:
      On Smelt 🔗
      Patterns:
      • [ore] smelt[ing]
      • smelt[ing] of ore
      Since: 1.0
      Called when a furnace smelts an item in its ore slot.
      Examples:
      on smelt:
      On Sneak Toggle 🔗
      Patterns:
      • [player] toggl(e|ing) sneak
      • [player] sneak toggl(e|ing)
      Since: 1.0
      Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called.
      Examples:
      # make players that stop sneaking jump
      on sneak toggle:
          player was sneaking
          push the player upwards at speed 0.5
      On Spawn 🔗
      Patterns:
      Since: 1.0, 2.5.1 (non-living entities)
      Called when an entity spawns (excluding players).
      Examples:
      on spawn of a zombie:
      on spawn of an ender dragon:
          broadcast "A dragon has been sighted in %world%!"
      On Spawn Change 🔗
      Patterns:
      • [world] spawn change
      Since: 1.0
      Called when the spawn point of a world changes.
      Examples:
      on spawn change:
          broadcast "someone changed the spawn!"
      On Sponge Absorb 🔗
      Patterns:
      • sponge absorb
      Since: 2.5
      Called when a sponge absorbs blocks.
      Examples:
      on sponge absorb:
          loop absorbed blocks:
              broadcast "%loop-block% was absorbed by a sponge"!
      On Spread 🔗
      Patterns:
      • spread[ing]
      Since: 1.0
      Called when a new block forms as a result of a block that can spread, e.g. water or mushrooms.
      Examples:
      on spread:
      On Sprint Toggle 🔗
      Patterns:
      • [player] toggl(e|ing) sprint
      • [player] sprint toggl(e|ing)
      Since: 1.0
      Called when a player starts or stops sprinting. Use is sprinting to get whether the player was sprinting before the event was called.
      Examples:
      on sprint toggle:
          player is not sprinting
          send "Run!"
      On Swim Toggle 🔗
      Patterns:
      • [entity] toggl(e|ing) swim
      • [entity] swim toggl(e|ing)
      Since: 2.3
      Called when an entity swims or stops swimming.
      Examples:
      on swim toggle:
          event-entity does not have permission "swim"
          cancel event
      On Tame 🔗
      Patterns:
      • [entity] tam(e|ing)
      Since: 1.0
      Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed.
      Examples:
      on tame:
      On Target 🔗
      Patterns:
      • [entity] target
      • [entity] un[-]target
      Since: 1.0
      Called when a mob starts/stops following/attacking another entity, usually a player.
      Examples:
      on entity target:
          target is a player
      On Teleport 🔗
      Patterns:
      • [player] teleport[ing]
      Since: 1.0
      Called whenever a player is teleported, either by a nether/end portal or other means (e.g. by plugins).
      Examples:
      on teleport:
      On Throwing of an Egg 🔗
      Patterns:
      • throw[ing] [of] [an] egg
      • [player] egg throw
      Since: 1.0
      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.
      Examples:
      on throw of an egg:
      On Tool Change 🔗
      Patterns:
      • [player['s]] (tool|item held|held item) chang(e|ing)
      Since: 1.0
      Called whenever a player changes their 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.
      Examples:
      on player's held item change:
      On Vehicle Create 🔗
      Patterns:
      • vehicle create
      • creat(e|ing|ion of) [a] vehicle
      Since: 1.0
      Called when a new vehicle is created, e.g. when a player places a boat or minecart.
      Examples:
      on vehicle create:
      On Vehicle Damage 🔗
      Patterns:
      • vehicle damage
      • damag(e|ing) [a] vehicle
      Since: 1.0
      Called when a vehicle gets damage. Too much damage will destroy the vehicle.
      Examples:
      on vehicle damage:
      On Vehicle Destroy 🔗
      Patterns:
      • vehicle destroy
      • destr(oy[ing]|uction of) [a] vehicle
      Since: 1.0
      Called when a vehicle is destroyed. Any passenger will be ejected and the vehicle might drop some item(s).
      Examples:
      on vehicle destroy:
          cancel event
      On Vehicle Enter 🔗
      Patterns:
      • vehicle enter
      • enter[ing] [a] vehicle
      Since: 1.0
      Called when an entity enters a vehicle, either deliberately (players) or by falling into them (mobs).
      Examples:
      on vehicle enter:
          entity is a player
          cancel event
      On Vehicle Exit 🔗
      Patterns:
      • vehicle exit
      • exit[ing] [a] vehicle
      Since: 1.0
      Called when an entity exits a vehicle.
      Examples:
      on vehicle exit:
          if event-entity is a spider:
              kill event-entity
      On Weather Change 🔗
      Patterns:
      Since: 1.0
      Called when a world's weather changes.
      Examples:
      on weather change:
      on weather change to sunny:
      On World Init 🔗
      Patterns:
      • world init[ialization]
      Since: 1.0
      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. World management plugins might change the behaviour of this event though.
      Examples:
      on world init:
      On World Load 🔗
      Patterns:
      • world load[ing]
      Since: 1.0
      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).
      Examples:
      on world load:
          send "World is loading..." to console
      On World Save 🔗
      Patterns:
      • world sav(e|ing)
      Since: 1.0
      Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this.
      Examples:
      on world saving:
          broadcast "World has been saved!"
      On World Unload 🔗
      Patterns:
      • world unload[ing]
      Since: 1.0
      Called when a world is unloaded. This event might never be called if you don't have a world management plugin.
      Examples:
      on world unload:
          cancel event
      On Zombie Break Door 🔗
      Patterns:
      • zombie break[ing] [a] [wood[en]] door
      Since: 1.0
      Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door.
      Examples:
      on zombie breaking a wood door:
      Periodical 🔗
      Patterns:
      Since: 1.0
      An event that is called periodically.
      Examples:
      every 2 seconds:
      every minecraft hour:
      every tick: # can cause lag depending on the code inside the event
      every minecraft days:
      Periodical 🔗
      Patterns:
      Since: 1.0
      An event that is called periodically.
      Examples:
      every 2 seconds in "world":
      every minecraft hour in "flatworld":
      every tick in "world": # can cause lag depending on the code inside the event
      every minecraft days in "plots":
      \ No newline at end of file + Skript Documentation - 2.6-beta3

      Events

      At Time

      🔗
      Patterns:
      Since: 1.3.4
      An event that occurs at a given minecraft time in every world or only in specific worlds.

      Examples:

      at 18:00
      at 7am in "world"

      On AoE Cloud Effect

      🔗
      Patterns:
      • [on] (area|AoE) [cloud] effect
      Since: 2.2-dev21
      Called when area effect cloud applies its potion effect. This happens every 5 ticks by default.

      Examples:

      on area cloud effect:

      On Arm Swing

      🔗
      Patterns:
      • [on] [player] arm swing
      Since: 2.5.1
      Called when a player swings his arm.

      Examples:

      on arm swing:
          send "You swung your arm!"

      On Armor Change

      🔗
      Patterns:
      • [on] [player] armor change[d]
      Since: 2.5
      Called when armor pieces of a player are changed.

      Examples:

      on armor change:
          send "You equipped %event-item%!"

      On Bed Enter

      🔗
      Patterns:
      • [on] bed enter[ing]
      • [on] [player] enter[ing] [a] bed
      Since: 1.0
      Called when a player starts sleeping.

      Examples:

      on bed enter:

      On Bed Leave

      🔗
      Patterns:
      • [on] bed leav(e|ing)
      • [on] [player] leav(e|ing) [a] bed
      Since: 1.0
      Called when a player leaves a bed.

      Examples:

      on player leaving a bed:

      On Block Damage

      🔗
      Patterns:
      • [on] block damag(ing|e)
      Since: 1.0
      Called when a player starts to break a block. You can usually just use the leftclick event for this.

      Examples:

      on block damaging:
          if block is log:
              send "You can't break the holy log!"

      On Block Fertilize

      🔗
      Patterns:
      • [on] [block] fertilize
      Since: 2.5
      Called when a player fertilizes blocks.

      Examples:

      on block fertilize:
          send "Fertilized %size of fertilized blocks% blocks got fertilized."

      On Block Growth

      🔗
      Patterns:
      • [on] (plant|crop|block) grow[(th|ing)] [[of] %item types%]
      Since: 2.2-Fixes-V10
      Called when a crop grows. Alternative to new form of generic grow event.

      Examples:

      on crop growth:

      On Book Edit

      🔗
      Patterns:
      • [on] book (edit|change|write)
      Since: 2.2-dev31
      Called when a player edits a book.

      Examples:

      on book edit:

      On Book Sign

      🔗
      Patterns:
      • [on] book sign[ing]
      Since: 2.2-dev31
      Called when a player signs a book.

      Examples:

      on book sign:

      On Break / Mine

      🔗
      Patterns:
      Since: 1.0 (break), unknown (mine), 2.6 (BlockData support)
      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.

      Examples:

      on mine:
      on break of stone:
      on mine of any ore:
      on break of chest[facing=north]:
      on break of potatoes[age=7]:

      On Bucket Empty

      🔗
      Patterns:
      • [on] bucket empty[ing]
      • [on] [player] empty[ing] [a] bucket
      Since: 1.0
      Called when a player empties a bucket. You can also use the place event with a check for water or lava.

      Examples:

      on bucket empty:

      On Bucket fill

      🔗
      Patterns:
      • [on] bucket fill[ing]
      • [on] [player] fill[ing] [a] bucket
      Since: 1.0
      Called when a player fills a bucket.

      Examples:

      on player filling a bucket:

      On Burn

      🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a block is destroyed by fire.

      Examples:

      on burn:
      on burn of wood, fences, or chests:
      on burn of oak_log[axis=y]:

      On Can Build Check

      🔗
      Patterns:
      • [on] [block] can build check
      Since: 1.0 (basic), 2.0 ([un]cancellable)
      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. Please note that the data value of the block to be placed is not available in this event, only its ID.

      Examples:

      on block can build check:
          cancel event

      On Chat

      🔗
      Patterns:
      • [on] chat
      Since: 1.4.1
      Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients.

      Examples:

      on chat:
          if player has permission "owner":
              set chat format to "<red>[player]<light gray>: <light red>[message]"
          else if player has permission "admin":
              set chat format to "<light red>[player]<light gray>: <orange>[message]"
          else: #default message format
              set chat format to "<orange>[player]<light gray>: <white>[message]"

      On Chunk Generate

      🔗
      Patterns:
      • [on] chunk (generat|populat)(e|ing)
      Since: 1.0
      Called after a new chunk was generated.

      Examples:

      on chunk generate:

      On Chunk Load

      🔗
      Patterns:
      • [on] chunk load[ing]
      Since: 1.0
      Called when a chunk loads. The chunk might or might not contain mobs when it's loaded.

      Examples:

      on chunk load:

      On Chunk Unload

      🔗
      Patterns:
      • [on] chunk unload[ing]
      Since: 1.0
      Called when a chunk is unloaded due to not being near any player.

      Examples:

      on chunk unload:

      On Click

      🔗
      Patterns:
      Since: 1.0
      Called when a user clicks on a block, an entity or air with or without an item in their hand. 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.

      Examples:

      on click:
      on rightclick holding a fishing rod:
      on leftclick on a stone or obsidian:
      on rightclick on a creeper:
      on click with a sword:

      On Combust

      🔗
      Patterns:
      • [on] combust[ing]
      Since: 1.0
      Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons).

      Examples:

      on combust:

      On Command

      🔗
      Patterns:
      • [on] command [%text%]
      Since: 2.0
      Called when a player enters a command (not necessarily a Skript command) but you can check if command is a skript command, see Is a Skript command condition.

      Examples:

      on command:
      on command "/stop":
      on command "pm Njol ":

      On Connect

      🔗
      Patterns:
      • [on] [player] connect[ing]
      Since: 2.0
      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.

      Examples:

      on connect:
          player doesn't have permission "VIP"
          number of players is greater than 15
          kick the player due to "The last 5 slots are reserved for VIP players."

      On Consume

      🔗
      Patterns:
      • [on] [player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]
      Since: 2.0
      Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion.

      Examples:

      on consume:

      On Craft

      🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a player crafts an item.

      Examples:

      on craft:

      On Creeper Power

      🔗
      Patterns:
      • [on] creeper power
      Since: 1.0
      Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered.

      Examples:

      on creeper power:

      On Damage

      🔗
      Patterns:
      Since: 1.0
      Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc.

      Examples:

      on damage:
      on damage of a player:

      On Death

      🔗
      Patterns:
      Since: 1.0
      Called when a living entity (including players) dies.

      Examples:

      on death:
      on death of player:
      on death of a wither or ender dragon:
          broadcast "A %entity% has been slain in %world%!"

      On Dispense

      🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a dispenser dispenses an item.

      Examples:

      on dispense of iron block:
          send "that'd be 19.99 please!"

      On Drop

      🔗
      Patterns:
      Since: unknown (before 2.1)
      Called when a player drops an item from their inventory.

      Examples:

      on drop:

      On Enchant

      🔗
      Patterns:
      • [on] [item] enchant
      Since: 2.5
      Called when a player successfully enchants an item. To get the enchanted item, see the enchant item expression

      Examples:

      on enchant:
          if the clicked button is enchantment option 1:
              set the applied enchantments to sharpness 10 and unbreaking 10

      On Enchant Prepare

      🔗
      Patterns:
      • [on] [item] enchant prepare
      Since: 2.5
      Called when a player puts an item into enchantment table. This event may be called multiple times. To get the enchant item, see the enchant item expression

      Examples:

      on enchant prepare:
          set enchant offer 1 to sharpness 1
          set the cost of enchant offer 1 to 10 levels

      On Enderman/Sheep/Silverfish/Falling Block

      🔗
      Patterns:
      • [on] enderman place
      • [on] enderman pickup
      • [on] sheep eat
      • [on] silverfish enter
      • [on] silverfish exit
      • [on] falling block land[ing]
      Since: unknown, 2.5.2 (falling block)
      Called when an enderman places or picks up a block, a sheep eats grass, a silverfish boops into/out of a block or a falling block lands and turns into a block respectively.

      Examples:

      on sheep eat:
          kill entity
          broadcast "A sheep stole some grass!"
      on falling block land:
          if event-entity is a falling dirt:
              cancel event

      On Entity Dismount

      🔗
      Patterns:
      • [on] dismount[ing]
      Since: 2.2-dev13b
      Called when an entity dismounts.

      Examples:

      on dismount:
          kill event-entity

      On Entity Mount

      🔗
      Patterns:
      • [on] mount[ing]
      Since: 2.2-dev13b
      Called when entity starts riding another.

      Examples:

      on mount:
          cancel event

      On Entity Portal

      🔗
      Patterns:
      • [on] entity portal
      Since: 2.5.3
      Called when an entity uses a nether or end portal. Cancel the event to prevent the entity from teleporting.

      Examples:

      on entity portal:
          broadcast "A %type of event-entity% has entered a portal!

      On Experience Spawn

      🔗
      Patterns:
      • [on] [e]xp[erience] [orb] spawn
      • [on] spawn of [a[n]] [e]xp[erience] [orb]
      Since: 2.0
      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. 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)

      Examples:

      on xp spawn:
          world is "minigame_world"
          cancel event

      On Explode

      🔗
      Patterns:
      • [on] explo(d(e|ing)|sion)
      Since: 1.0
      Called when an entity (a primed TNT or a creeper) explodes.

      Examples:

      on explosion:

      On Explosion Prime

      🔗
      Patterns:
      • [on] explosion prime
      Since: 1.0
      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.

      Examples:

      on explosion prime:

      On Fade

      🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a block 'fades away', e.g. ice or snow melts.

      Examples:

      on fade of snow or ice:
      on fade of snow[layers=2]

      On Firework Explode

      🔗
      Patterns:
      • [on] [a] firework explo(d(e|ing)|sion) [colo[u]red %colors%]
      Since: 2.4
      Called when a firework explodes.

      Examples:

      on firework explode
      on firework exploding colored red, light green and black
      on firework explosion coloured light green:
          broadcast "A firework colored %colors% was exploded at %location%!"

      On First Join

      🔗
      Patterns:
      • [on] first (join|login)
      Since: 1.3.7
      Called when a player joins the server for the first time.

      Examples:

      on first join:
          broadcast "Welcome %player% to the server!"

      On Fishing

      🔗
      Patterns:
      • [on] [player] fish[ing]
      Since: 1.0
      Called when a player fishes something. This is not of much use yet.

      Examples:

      on fish:

      On Flight Toggle

      🔗
      Patterns:
      • [on] [player] flight toggl(e|ing)
      • [on] [player] toggl(e|ing) flight
      Since: 2.2-dev36
      Called when a players stops/starts flying.

      Examples:

      on flight toggle:
          if {game::%player%::playing} exists:
              cancel event

      On Flow

      🔗
      Patterns:
      • [on] [block] flow[ing]
      • [on] block mov(e|ing)
      Since: 1.0
      Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well.

      Examples:

      on block flow:
          if event-block is water:
              broadcast "Build more dams! It's starting to get wet in here"

      On Form

      🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      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).

      Examples:

      on form of snow:
      on form of a mushroom:

      On Fuel Burn

      🔗
      Patterns:
      • [on] fuel burn[ing]
      Since: 1.0
      Called when a furnace burns an item from its fuel slot.

      Examples:

      on fuel burning:

      On Gamemode Change

      🔗
      Patterns:
      • [on] game[ ]mode change [to %gamemode%]
      Since: 1.0
      Called when a player's gamemode changes.

      Examples:

      on gamemode change:
      on gamemode change to adventure:

      On Gliding State Change

      🔗
      Patterns:
      • [on] (gliding state change|toggl(e|ing) gliding)
      Since: 2.2-dev21
      Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly.

      Examples:

      on toggling gliding:
          cancel the event # bad idea, but you CAN do it!

      On Grow

      🔗
      Patterns:
      Since: 1.0 (2.2-dev20 for plants)
      Called when a tree, giant mushroom or plant grows to next stage.

      Examples:

      on grow:
      on grow of a tree:
      on grow of a huge jungle tree:

      On Hand Item Swap

      🔗
      Patterns:
      • [on] swap[ping of] [(hand|held)] item[s]
      Since: 2.3
      Called whenever a player swaps the items in their main- and offhand slots. Works also when one or both of the slots are empty. The event is called before the items are actually swapped, so when you use the player's tool or player's offtool expressions, they will return the values before the swap - this enables you to cancel the event before anything happens.

      Examples:

      on swap hand items:
          event-player's tool is a diamond sword
          cancel event

      On Heal

      🔗
      Patterns:
      • [on] heal[ing]
      Since: 1.0
      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).

      Examples:

      on heal:

      On Horse Jump

      🔗
      Patterns:
      • [on] horse jump
      Since: 2.5.1
      Called when a horse jumps.

      Examples:

      on horse jump:
          push event-entity upwards at speed 2

      On Hunger Meter Change

      🔗
      Patterns:
      • [on] (food|hunger) (level|met(er|re)|bar) chang(e|ing)
      Since: 1.4.4
      Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time.

      Examples:

      on food bar change:

      On Ignition

      🔗
      Patterns:
      • [on] [block] ignit(e|ion)
      Since: 1.0
      Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable. The burn event will be called when the block is about do be destroyed by the fire.

      Examples:

      on block ignite:
          if event-block is a ladder:
              cancel event

      On Inventory Click

      🔗
      Patterns:
      • [on] [player] inventory(-| )click[ing] [[at] %item types%]
      Since: 2.2-Fixes-V10
      Called when clicking on inventory slot.

      Examples:

      on inventory click:
          if event-item is stone:
              give player 1 stone
              remove 20$ from player's balance

      On Inventory Close

      🔗
      Patterns:
      • [on] inventory clos(ing|e[d])
      Since: 2.2-dev21
      Called when player's currently viewed inventory is closed.

      Examples:

      on inventory close:
          if player's location is {location}:
              send "You exited the shop!"

      On Inventory Open

      🔗
      Patterns:
      • [on] inventory open[ed]
      Since: 2.2-dev21
      Called when an inventory is opened for player.

      Examples:

      on inventory open:
          close player's inventory

      On Inventory Pickup

      🔗
      Patterns:
      • [on] inventory pick[ ]up
      Since: 2.5.1
      Called when an inventory (a hopper, a hopper minecart, etc.) picks up an item

      Examples:

      on inventory pickup:

      On Item Break

      🔗
      Patterns:
      • [on] [player] tool break[ing]
      • [on] [player] break[ing] [(a|the)] tool
      Since: 2.1.1
      Called when a player breaks their tool because its damage reached the maximum value. This event cannot be cancelled.

      Examples:

      on tool break:

      On Item Damage

      🔗
      Patterns:
      • [on] item damag(e|ing)
      Since: 2.5
      Called when an item is damaged. Most tools are damaged by using them; armor is damaged when the wearer takes damage.

      Examples:

      on item damage:
          cancel event

      On Item Despawn

      🔗
      Patterns:
      • [on] (item[ ][stack]|[item] %item types%) despawn[ing]
      • [on] [item[ ][stack]] despawn[ing] [[of] %item types%]
      Since: 2.2-dev35
      Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped.

      Examples:

      on item despawn of diamond:
          send "Not my precious!"
          cancel event

      On Item Mend

      🔗
      Patterns:
      • [on] item mend[ing]
      Since: 2.5.1
      Called when a player has an item repaired via the Mending enchantment.

      Examples:

      on item mend:
          chance of 50%:
              cancel the event
              send "Oops! Mending failed!" to player

      On Item Merge

      🔗
      Patterns:
      • [on] (item[ ][stack]|[item] %item types%) merg(e|ing)
      • [on] item[ ][stack] merg(e|ing) [[of] %item types%]
      Since: 2.2-dev35
      Called when dropped items merge into a single stack. event-entity will be the entity which is trying to merge, and future event-entity will be the entity which is being merged into.

      Examples:

      on item merge of gold blocks:
          cancel event

      On Item Spawn

      🔗
      Patterns:
      Since: unknown (before 2.1)
      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 their inventory, or a dispenser dispensing an item (not shooting it).

      Examples:

      on item spawn of iron sword:
          broadcast "Someone dropped an iron sword!"

      On Join

      🔗
      Patterns:
      • [on] [player] (login|logging in|join[ing])
      Since: 1.0
      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.

      Examples:

      on join:
          message "Welcome on our awesome server!"
          broadcast "%player% just joined the server!"

      On Jump

      🔗
      Patterns:
      • [on] [player] jump[ing]
      Since: 2.3
      Called whenever a player jumps. This event requires PaperSpigot.

      Examples:

      on jump:
          event-player does not have permission "jump"
          cancel event

      On Kick

      🔗
      Patterns:
      • [on] [player] (kick|being kicked)
      Since: 1.0
      Called when a player is kicked from the server. You can change the kick message or cancel the event entirely.

      Examples:

      on kick:

      On Language Change

      🔗
      Patterns:
      • [on] [player] (language|locale) chang(e|ing)
      • [on] [player] chang(e|ing) (language|locale)
      Since: 2.3
      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. This event requires Minecraft 1.12+.

      Examples:

      on language change:
          if player's language starts with "en":
              send "Hello!"

      On Leaves Decay

      🔗
      Patterns:
      • [on] leaves decay[ing]
      Since: 1.0
      Called when a leaf block decays due to not being connected to a tree.

      Examples:

      on leaves decay:

      On Level Change

      🔗
      Patterns:
      • [on] [player] level (change|up|down)
      Since: 1.0, 2.4 (level up/down)
      Called when a player's level changes, e.g. by gathering experience or by enchanting something.

      Examples:

      on level change:

      On Lightning Strike

      🔗
      Patterns:
      • [on] lightning [strike]
      Since: 1.0
      Called when lightning strikes.

      Examples:

      on lightning:
          spawn a zombie at location of event-entity

      On Move

      🔗
      Patterns:
      Since: 2.6
      Called when a player or entity moves. NOTE: Move event will only be called when the entity/player moves position, not orientation (ie: looking around). NOTE: These events can be performance heavy as they are called quite often. If you use these events, and later remove them, a server restart is recommended to clear registered events from Skript.

      Examples:

      on player move:
          if player does not have permission "player.can.move":
              cancel event
      on skeleton move:
          if event-entity is not in world "world":
              kill event-entity

      On Move On

      🔗
      Patterns:
      Since: 2.0
      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.

      Examples:

      on walking on dirt or grass:
      on stepping on stone:

      On Physics

      🔗
      Patterns:
      • [on] [block] physics
      Since: 1.4.6
      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.

      Examples:

      # prevents sand from falling
      on block physics:
          block is sand
          cancel event

      On Pick Up

      🔗
      Patterns:
      • [on] [(player|entity)] (pick[ ]up|picking up) [[of] %item types%]
      Since: unknown (before 2.1), 2.5 (entity)
      Called when a player/entity picks up an item. Please note that the item is still on the ground when this event is called.

      Examples:

      on pick up:
      on entity pickup of wheat:

      On Pig Zap

      🔗
      Patterns:
      • [on] pig[ ]zap
      Since: 1.0
      Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation.

      Examples:

      on pig zap:

      On Piston Extend

      🔗
      Patterns:
      • [on] piston extend[ing]
      Since: 1.0
      Called when a piston is about to extend.

      Examples:

      on piston extend:
          broadcast "A piston is extending!"

      On Piston Retract

      🔗
      Patterns:
      • [on] piston retract[ing]
      Since: 1.0
      Called when a piston is about to retract.

      Examples:

      on piston retract:
          broadcast "A piston is retracting!"

      On Place

      🔗
      Patterns:
      Since: 1.0, 2.6 (BlockData support)
      Called when a player places a block.

      Examples:

      on place:
      on place of a furnace, workbench or chest:
      on break of chest[type=right] or chest[type=left]

      On Player World Change

      🔗
      Patterns:
      • [on] [player] world chang(ing|e[d])
      Since: 2.2-dev28
      Called when a player enters a world. Does not work with other entities!

      Examples:

      on player world change:
          world is "city"
          send "Welcome to the City!"

      On Portal

      🔗
      Patterns:
      • [on] [player] portal
      Since: 1.0
      Called when a player uses a nether or end portal. Cancel the event to prevent the player from teleporting.

      Examples:

      on player portal:

      On Portal Create

      🔗
      Patterns:
      • [on] portal creat(e|ion)
      Since: 1.0, 2.5.3 (event-entity support)
      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. In Minecraft 1.14+, you can use the player in this event. Please note that there may not always be a player (or other entity) in this event.

      Examples:

      on portal create:

      On Portal Enter

      🔗
      Patterns:
      • [on] portal enter[ing]
      • [on] entering [a] portal
      Since: 1.0
      Called when an entity enters a nether portal or an end portal. Please note that this event will be fired many times for a nether portal.

      Examples:

      on portal enter:

      On Prepare Craft

      🔗
      Patterns:
      • [on] [player] (preparing|beginning) craft[ing] [[of] %item types%]
      Since: 2.2-Fixes-V10
      Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs.

      Examples:

      on preparing craft of torch:

      On Pressure Plate / Trip

      🔗
      Patterns:
      • [on] [step[ping] on] [a] [pressure] plate
      • [on] (trip|[step[ping] on] [a] tripwire)
      Since: 1.0 (pressure plate), 1.4.4 (tripwire)
      Called when a player steps on a pressure plate or tripwire respectively.

      Examples:

      on step on pressure plate:

      On Projectile Collide

      🔗
      Patterns:
      • [on] projectile collide
      Since: 2.5
      Called when a projectile collides with an entity.

      Examples:

      on projectile collide:
          teleport shooter of event-projectile to event-entity

      On Projectile Hit

      🔗
      Patterns:
      • [on] projectile hit
      Since: 1.0
      Called when a projectile hits an entity or a block. 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. A damage event will even be fired if the damage is 0, e.g. when throwing snowballs at non-nether mobs.

      Examples:

      on projectile hit:
          event-projectile is arrow
          delete event-projectile

      On Quit

      🔗
      Patterns:
      • [on] (quit[ting]|disconnect[ing]|log[ ]out|logging out|leav(e|ing))
      Since: 1.0 (simple disconnection)
      Called when a player leaves the server.

      Examples:

      on quit:
      on disconnect:

      On Redstone

      🔗
      Patterns:
      • [on] redstone [current] [chang(e|ing)]
      Since: 1.0
      Called when the redstone current of a block changes. This event is of not much use yet.

      Examples:

      on redstone change:
          send "someone is using redstone" to console

      On Region Enter/Leave

      🔗
      Patterns:
      • [on] (enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)
      • [on] region (enter[ing]|leav(e|ing)|exit[ing])
      Since: 2.1
      Called when a player enters or leaves a region. This event requires a supported regions plugin to be installed.

      Examples:

      on region exit:
          message "Leaving %region%."

      On Resource Pack Request Response

      🔗
      Patterns:
      Since: 2.4
      Called when a player takes action on a resource pack request sent via the send resource pack effect. The resource pack condition can be used to check the resource pack state.

      This event will be triggered once when the player accepts or declines the resource pack request, and once when the resource pack is successfully installed or failed to download.

      Examples:

      on resource pack request response:
          if the resource pack was declined or failed to download:

      on resource pack deny:
          kick the player due to "You have to install the resource pack to play in this server!"

      On Respawn

      🔗
      Patterns:
      • [on] [player] respawn[ing]
      Since: 1.0
      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.

      Examples:

      on respawn:

      On Resurrect Attempt

      🔗
      Patterns:
      • [on] [entity] resurrect[ion] [attempt]
      Since: 2.2-dev28
      Called when an entity dies, always. If they are not holding a totem, this is cancelled - you can, however, uncancel it.

      Examples:

      on resurrect attempt:
          entity is player
          entity has permission "admin.undying"
          uncancel the event

      On Riptide

      🔗
      Patterns:
      • [on] [use of] riptide [enchant[ment]]
      Since: 2.5
      Called when the player activates the riptide enchantment, using their trident to propel them through the air. Note: the riptide action is performed client side, so manipulating the player in this event may have undesired effects.

      Examples:

      on riptide:
          send "You are riptiding!"

      On Script Load/Unload

      🔗
      Patterns:
      • [on] [(async)] [script] (load|init|enable)
      • [on] [(async)] [script] (unload|stop|disable)
      Since: 2.0
      Called directly after the trigger is loaded, or directly before the whole script is unloaded. The keyword 'async' indicates the trigger can be ran asynchronously,

      Examples:

      on load:
          set {running::%script%} to true
      on unload:
          set {running::%script%} to false

      On Server List Ping

      🔗
      Patterns:
      • [on] server [list] ping
      Since: 2.3
      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. The IP expression can be used to get the IP adress of the pinger. 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).

      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.

      Examples:

      on server list ping:
          set the motd to "Welcome %{player-by-IP::%ip%}%! Join now!" if {player-by-IP::%ip%} is set, else "Join now!"
          set the fake max players count to (online players count + 1)
          set the shown icon to a random server icon out of {server-icons::*}

      On Server Start/Stop

      🔗
      Patterns:
      • [on] (server|skript) (start|load|enable)
      • [on] (server|skript) (stop|unload|disable)
      Since: 2.0
      Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well).

      Examples:

      on skript start:
      on server stop:

      On Sheep Regrow Wool

      🔗
      Patterns:
      • [on] sheep [re]grow[ing] wool
      Since: 2.2-dev21
      Called when sheep regrows its sheared wool back.

      Examples:

      on sheep grow wool:
          cancel event

      On Shoot

      🔗
      Patterns:
      • [on] [projectile] shoot
      Since: 1.0
      Called whenever a projectile is shot. Use the shooter expression to get who shot the projectile.

      Examples:

      on shoot:
          if projectile is an arrow:
              send "you shot an arrow!" to shooter

      On Sign Change

      🔗
      Patterns:
      • [on] sign (chang[e]|edit)[ing]
      • [on] [player] (chang[e]|edit)[ing] [a] sign
      Since: 1.0
      As signs are placed empty, this event is called when a player is done editing a sign.

      Examples:

      on sign change:
          line 2 is empty
          set line 1 to "<red>%line 1%"

      On Slime Split

      🔗
      Patterns:
      • [on] slime split[ting]
      Since: 2.2-dev26
      Called when a slime splits. Usually this happens when a big slime dies.

      Examples:

      on slime split:

      On Smelt

      🔗
      Patterns:
      • [on] [ore] smelt[ing]
      • [on] smelt[ing] of ore
      Since: 1.0
      Called when a furnace smelts an item in its ore slot.

      Examples:

      on smelt:

      On Sneak Toggle

      🔗
      Patterns:
      • [on] [player] toggl(e|ing) sneak
      • [on] [player] sneak toggl(e|ing)
      Since: 1.0
      Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called.

      Examples:

      # make players that stop sneaking jump
      on sneak toggle:
          player is sneaking
          push the player upwards at speed 0.5

      On Spawn

      🔗
      Patterns:
      Since: 1.0, 2.5.1 (non-living entities)
      Called when an entity spawns (excluding players).

      Examples:

      on spawn of a zombie:
      on spawn of an ender dragon:
          broadcast "A dragon has been sighted in %world%!"

      On Spawn Change

      🔗
      Patterns:
      • [on] [world] spawn change
      Since: 1.0
      Called when the spawn point of a world changes.

      Examples:

      on spawn change:
          broadcast "someone changed the spawn!"

      On Sponge Absorb

      🔗
      Patterns:
      • [on] sponge absorb
      Since: 2.5
      Called when a sponge absorbs blocks.

      Examples:

      on sponge absorb:
          loop absorbed blocks:
              broadcast "%loop-block% was absorbed by a sponge"!

      On Spread

      🔗
      Patterns:
      • [on] spread[ing]
      Since: 1.0
      Called when a new block forms as a result of a block that can spread, e.g. water or mushrooms.

      Examples:

      on spread:

      On Sprint Toggle

      🔗
      Patterns:
      • [on] [player] toggl(e|ing) sprint
      • [on] [player] sprint toggl(e|ing)
      Since: 1.0
      Called when a player starts or stops sprinting. Use is sprinting to get whether the player was sprinting before the event was called.

      Examples:

      on sprint toggle:
          player is not sprinting
          send "Run!"

      On Swim Toggle

      🔗
      Patterns:
      • [on] [entity] toggl(e|ing) swim
      • [on] [entity] swim toggl(e|ing)
      Since: 2.3
      Called when an entity swims or stops swimming.

      Examples:

      on swim toggle:
          event-entity does not have permission "swim"
          cancel event

      On Tame

      🔗
      Patterns:
      • [on] [entity] tam(e|ing)
      Since: 1.0
      Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed.

      Examples:

      on tame:

      On Target

      🔗
      Patterns:
      • [on] [entity] target
      • [on] [entity] un[-]target
      Since: 1.0
      Called when a mob starts/stops following/attacking another entity, usually a player.

      Examples:

      on entity target:
          target is a player

      On Teleport

      🔗
      Patterns:
      • [on] [player] teleport[ing]
      Since: 1.0
      Called whenever a player is teleported, either by a nether/end portal or other means (e.g. by plugins).

      Examples:

      on teleport:

      On Throwing of an Egg

      🔗
      Patterns:
      • [on] throw[ing] [of] [an] egg
      • [on] [player] egg throw
      Since: 1.0
      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.

      Examples:

      on throw of an egg:

      On Tool Change

      🔗
      Patterns:
      • [on] [player['s]] (tool|item held|held item) chang(e|ing)
      Since: 1.0
      Called whenever a player changes their 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.

      Examples:

      on player's held item change:

      On Vehicle Create

      🔗
      Patterns:
      • [on] vehicle create
      • [on] creat(e|ing|ion of) [a] vehicle
      Since: 1.0
      Called when a new vehicle is created, e.g. when a player places a boat or minecart.

      Examples:

      on vehicle create:

      On Vehicle Damage

      🔗
      Patterns:
      • [on] vehicle damage
      • [on] damag(e|ing) [a] vehicle
      Since: 1.0
      Called when a vehicle gets damage. Too much damage will destroy the vehicle.

      Examples:

      on vehicle damage:

      On Vehicle Destroy

      🔗
      Patterns:
      • [on] vehicle destroy
      • [on] destr(oy[ing]|uction of) [a] vehicle
      Since: 1.0
      Called when a vehicle is destroyed. Any passenger will be ejected and the vehicle might drop some item(s).

      Examples:

      on vehicle destroy:
          cancel event

      On Vehicle Enter

      🔗
      Patterns:
      • [on] vehicle enter
      • [on] enter[ing] [a] vehicle
      Since: 1.0
      Called when an entity enters a vehicle, either deliberately (players) or by falling into them (mobs).

      Examples:

      on vehicle enter:
          entity is a player
          cancel event

      On Vehicle Exit

      🔗
      Patterns:
      • [on] vehicle exit
      • [on] exit[ing] [a] vehicle
      Since: 1.0
      Called when an entity exits a vehicle.

      Examples:

      on vehicle exit:
          if event-entity is a spider:
              kill event-entity

      On Weather Change

      🔗
      Patterns:
      Since: 1.0
      Called when a world's weather changes.

      Examples:

      on weather change:
      on weather change to sunny:

      On World Init

      🔗
      Patterns:
      • [on] world init[ialization]
      Since: 1.0
      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. World management plugins might change the behaviour of this event though.

      Examples:

      on world init:

      On World Load

      🔗
      Patterns:
      • [on] world load[ing]
      Since: 1.0
      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).

      Examples:

      on world load:
          send "World is loading..." to console

      On World Save

      🔗
      Patterns:
      • [on] world sav(e|ing)
      Since: 1.0
      Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this.

      Examples:

      on world saving:
          broadcast "World has been saved!"

      On World Unload

      🔗
      Patterns:
      • [on] world unload[ing]
      Since: 1.0
      Called when a world is unloaded. This event might never be called if you don't have a world management plugin.

      Examples:

      on world unload:
          cancel event

      On Zombie Break Door

      🔗
      Patterns:
      • [on] zombie break[ing] [a] [wood[en]] door
      Since: 1.0
      Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door.

      Examples:

      on zombie breaking a wood door:

      Periodical

      🔗
      Patterns:
      Since: 1.0
      An event that is called periodically.

      Examples:

      every 2 seconds:
      every minecraft hour:
      every tick: # can cause lag depending on the code inside the event
      every minecraft days:

      Periodical

      🔗
      Patterns:
      Since: 1.0
      An event that is called periodically.

      Examples:

      every 2 seconds in "world":
      every minecraft hour in "flatworld":
      every tick in "world": # can cause lag depending on the code inside the event
      every minecraft days in "plots":
      \ No newline at end of file diff --git a/expressions.html b/expressions.html index f515fce0449..31c098b952c 100644 --- a/expressions.html +++ b/expressions.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

      Expressions

      Absorbed blocks 🔗
      Patterns:
      • [the] absorbed blocks
      Since: 2.5
      Usable in events: sponge absorb
      The blocks absorbed by a sponge block.
      Examples:
      the absorbed blocks
      Affected Entities 🔗
      Patterns:
      • [the] affected entities
      Since: 2.4
      The affected entities in the area cloud effect event.
      Examples:
      on area cloud effect:
          loop affected entities:
              if loop-value is a player:
                  send "WARNING: you've step on an area effect cloud!" to loop-value
      All Groups 🔗
      Patterns:
      • all groups
      Since: 2.2-dev35
      Requirements: Vault, a permission plugin that supports Vault
      All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed.
      Examples:
      command /group :
          trigger:
              if argument is "list":
                  send "%all groups%"
      All Permissions 🔗
      Patterns:
      • [(all [[of] the]|the)] permissions (from|of) %players%
      • [(all [[of] the]|the)] %players%'[s] permissions
      Since: 2.2-dev33
      Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions.
      Examples:
      set {_permissions::*} to all permissions of the player
      All Scripts 🔗
      Patterns:
      • [all [of the]] scripts [(without ([subdirectory] paths|parents))]
      • [all [of the]] (enabled|loaded) scripts [(without ([subdirectory] paths|parents))]
      • [all [of the]] (disabled|unloaded) scripts [(without ([subdirectory] paths|parents))]
      Since: 2.5
      Returns all of the scripts, or just the enabled or disabled ones.
      Examples:
      command /scripts:
          trigger:
              send "All Scripts: %scripts%" to player
              send "Loaded Scripts: %enabled scripts%" to player
              send "Unloaded Scripts: %disabled scripts%" to player
      All commands 🔗
      Patterns:
      • [(all|the|all [of] the)] [registered] [(script)] commands
      Since: 2.6
      Returns all registered commands or all script commands.
      Examples:
      send "Number of all commands: %size of all commands%"
      send "Number of all script commands: %size of all script commands%"
      Alphabetical Sort 🔗
      Patterns:
      • alphabetically sorted %texts%
      Since: 2.2-dev18b
      Sorts given strings in alphabetical order.
      Examples:
      set {_list::*} to alphabetically sorted {_strings::*}
      Altitude 🔗
      Patterns:
      Since: 1.4.3
      Effectively an alias of 'y-coordinate of …', it represents the height of some object above bedrock.
      Examples:
      on damage:
          altitude of the attacker is higher than the altitude of the victim
          set damage to damage * 1.2
      Amount 🔗
      Patterns:
      • (amount|number|size) of %objects%
      • recursive (amount|number|size) of %objects%
      Since: 1.0
      The amount of something. 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.

      Also, you can get the recursive size of a list, which will return the recursive size of the list with sublists included, e.g. {list::*} Structure ├──── {list::1}: 1 ├──── {list::2}: 2 │ ├──── {list::2::1}: 3 │ │ └──── {list::2::1::1}: 4 │ └──── {list::2::2}: 5 └──── {list::3}: 6 Where using %size of {list::*}% will only return 3 (the first layer of indices only), while %recursive size of {list::*}% will return 6 (the entire list) Please note that getting a list's recursive size can cause lag if the list is large, so only use this expression if you need to!

      Examples:
      message "There are %number of all players% players online!"
      Amount of Items 🔗
      Patterns:
      Since: 2.0
      Counts how many of a particular item type are in a given inventory.
      Examples:
      message "You have %number of ores in the player's inventory% ores in your inventory."
      Applied Enchantments 🔗
      Patterns:
      • [the] applied enchant[ment]s
      Since: 2.5
      Usable in events: enchant
      The applied enchantments in an enchant event. Deleting or removing the applied enchantments will prevent the item's enchantment.
      Examples:
      on enchant:
          set the applied enchantments to sharpness 10 and fire aspect 5
      Argument 🔗
      Patterns:
      • [the] last arg[ument][s]
      • [the] arg[ument][s](-| )<(\d+)>
      • [the] <(\d*1)st|(\d*2)nd|(\d*3)rd|(\d*[4-90])th> arg[ument][s]
      • [the] arg[ument][s]
      • [the] %*type%( |-)arg[ument][( |-)<\d+>]
      • [the] arg[ument]( |-)%*type%[( |-)<\d+>]
      Since: 1.0
      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!". 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'.
      Examples:
      give the item-argument to the player-argument
      damage the player-argument by the number-argument
      give a diamond pickaxe to the argument
      add argument 1 to argument 2
      heal the last argument
      Arithmetic 🔗
      Patterns:
      Since: 1.4.2
      Arithmetic expressions, e.g. 1 + 2, (health of player - 2) / 3, etc.
      Examples:
      set the player's health to 10 - the player's health
      loop (argument + 2) / 5 times:
          message "Two useless numbers: %loop-num * 2 - 5%, %2^loop-num - 1%"
      message "You have %health of player * 2% half hearts of HP!"
      Armour Slot 🔗
      Patterns:
      • [the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%
      • %living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]
      Since: 1.0
      A part of a player's armour, i.e. the boots, leggings, chestplate or helmet.
      Examples:
      set chestplate of the player to a diamond chestplate
      helmet of player is neither a helmet nor air # player is wearing a block, e.g. from another plugin
      Arrow Knockback Strength 🔗
      Patterns:
      Since: 2.5.1
      An arrow's knockback strength.
      Examples:
      on shoot:
          event-projectile is an arrow
          set arrow knockback strength of event-projectile to 10
      Arrows Stuck 🔗
      Patterns:
      Since: 2.5
      The number of arrows stuck in a living entity.
      Examples:
      set arrows stuck in player to 5
      Attacked 🔗
      Patterns:
      • [the] (attacked|damaged|victim) [<(.+)>]
      Since: 1.3
      Usable in events: damage, death
      The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie.
      Examples:
      on damage:
          victim is a creeper
          damage the attacked by 1 heart
      Attacker 🔗
      Patterns:
      • [the] (attacker|damager)
      Since: 1.3
      Usable in events: damage, death, destroy
      The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player. 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.
      Examples:
      on damage:
          attacker is a player
          health of attacker is less than or equal to 2
          damage victim by 1 heart
      Bed 🔗
      Patterns:
      • [the] bed[s] [location[s]] of %players%
      • %players%'[s] bed[s] [location[s]]
      Since: 2.0
      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.
      Examples:
      bed of player exists:
          teleport player the the player's bed
      else:
          teleport the player to the world's spawn point
      Biome 🔗
      Patterns:
      Since: 1.4.4
      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.
      Examples:
      # damage player in deserts constantly
      every real minute:
          loop all players:
              biome at loop-player is desert
              damage the loop-player by 1
      Block 🔗
      Patterns:
      • [the] [event-]block
      Since: 1.0
      The block involved in the event, e.g. the clicked block or the placed block. Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.
      Examples:
      block is ore
      set block below to air
      spawn a creeper above the block
      loop blocks in radius 4:
          loop-block is obsidian
          set loop-block to water
      block is a chest:
          clear the inventory of the block
      Block 🔗
      Patterns:
      Since: 1.0
      The block involved in the event, e.g. the clicked block or the placed block. Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.
      Examples:
      block is ore
      set block below to air
      spawn a creeper above the block
      loop blocks in radius 4:
          loop-block is obsidian
          set loop-block to water
      block is a chest:
          clear the inventory of the block
      Block Data 🔗
      Patterns:
      Since: 2.5, 2.5.2 (set)
      Requirements: Minecraft 1.13+
      Get the block data associated with a block. This data can also be used to set blocks.
      Examples:
      set {data} to block data of target block
      set block at player to {data}
      set block data of target block to oak_stairs[facing=south;waterlogged=true]
      Block Hardness 🔗
      Patterns:
      Since: 2.6
      Requirements: Minecraft 1.13+
      Obtains the block's hardness level (also known as "strength"). This number is used to calculate the time required to break each block.
      Examples:
      set {_hard} to block hardness of target block
      if block hardness of target block > 5:
      Block Sphere 🔗
      Patterns:
      • [(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]
      • [(all [[of] the]|the)] blocks around %location% in radius %number%
      Since: 1.0
      All blocks in a sphere around a center, mostly useful for looping.
      Examples:
      loop blocks in radius 5 around the player:
          set loop-block to air
      Blocks 🔗
      Patterns:
      Since: 1.0, 2.5.1 (within/cuboid/chunk)
      Blocks relative to other blocks or between other blocks. Can be used to get blocks relative to other blocks or for looping. Blocks from/to and between will return a straight line whereas blocks within will return a cuboid.
      Examples:
      loop blocks above the player:
      loop blocks between the block below the player and the targeted block:
      set the blocks below the player, the victim and the targeted block to air
      set all blocks within {loc1} and {loc2} to stone
      set all blocks within chunk at player to air
      Blocks in Region 🔗
      Patterns:
      • [(all|the)] blocks (in|of) [[the] region[s]] %regions%
      Since: 2.1
      All blocks in a region. This expression requires a supported regions plugin to be installed.
      Examples:
      loop all blocks in the region {arena.%{faction.%player%}%}:
          clear the loop-block
      Book Author 🔗
      Patterns:
      • [the] [book] (author|writer|publisher) of %item types%
      • %item types%'[s] [book] (author|writer|publisher)
      Since: 2.2-dev31
      The author of a book.
      Examples:
      on book sign:
          message "Book Title: %author of event-item%"
      Book Pages 🔗
      Patterns:
      Since: 2.2-dev31
      The pages of a book.
      Examples:
      on book sign:
          message "Book Pages: %pages of event-item%"
          message "Book Page 1: %page 1 of event-item%"
      Book Title 🔗
      Patterns:
      Since: 2.2-dev31
      The title of a book.
      Examples:
      on book sign:
          message "Book Title: %title of event-item%"
      Burn/Cook Time 🔗
      Patterns:
      • [the] burn[ing] time
      • [the] (burn|cook)[ing] time of %blocks%
      • %blocks%'[s] (burn|cook)[ing] time
      Since: 2.3
      The time a furnace takes to burn an item in a fuel burn event. Can also be used to change the burn/cook time of a placed furnace.
      Examples:
      on fuel burn:
          if fuel slot is coal:
              set burning time to 1 tick
      Case Text 🔗
      Patterns:
      • %texts% in (upper|lower)[ ]case
      • (upper|lower)[ ]case %texts%
      • capitali(s|z)ed %texts%
      • %texts% in [(lenient|strict) ](proper|title)[ ]case
      • [(lenient|strict) ](proper|title)[ ]case %texts%
      • %texts% in [(lenient|strict) ]camel[ ]case
      • [(lenient|strict) ]camel[ ]case %texts%
      • %texts% in [(lenient|strict) ]pascal[ ]case
      • [(lenient|strict) ]pascal[ ]case %texts%
      • %texts% in [(lower|upper|capital|screaming)[ ]]snake[ ]case
      • [(lower|upper|capital|screaming)[ ]]snake[ ]case %texts%
      • %texts% in [(lower|upper|capital)[ ]]kebab[ ]case
      • [(lower|upper|capital)[ ]]kebab[ ]case %texts%
      Since: 2.2-dev16 (lowercase and uppercase), 2.5 (advanced cases)
      Copy of given text in Lowercase, Uppercase, Proper Case, camelCase, PascalCase, Snake_Case, and Kebab-Case
      Examples:
      "Oops!" in lowercase # oops!
      "oops!" in uppercase # OOPS!
      "hellO i'm steve!" in proper case # HellO I'm Steve!
      "hellO i'm steve!" in strict proper case # Hello I'm Steve!
      "spAwn neW boSs ()" in camel case # spAwnNeWBoSs()
      "spAwn neW boSs ()" in strict camel case # spawnNewBoss()
      "geneRate ranDom numBer ()" in pascal case # GeneRateRanDomNumBer()
      "geneRate ranDom numBer ()" in strict pascal case # GenerateRandomNumber()
      "Hello Player!" in snake case # Hello_Player!
      "Hello Player!" in lower snake case # hello_player!
      "Hello Player!" in upper snake case # HELLO_PLAYER!
      "What is your name?" in kebab case # What-is-your-name?
      "What is your name?" in lower kebab case # what-is-your-name?
      "What is your name?" in upper kebab case # WHAT-IS-YOUR-NAME?
      Chat Format 🔗
      Patterns:
      • [the] (message|chat) format[ting]
      Since: 2.2-dev31
      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].
      Examples:
      set the chat format to "[player]: [message]"
      Chat Recipients 🔗
      Patterns:
      • [chat][( |-)]recipients
      Since: 2.2-Fixes-v7, 2.2-dev35 (clearing recipients)
      Recipients of chat events where this is called.
      Examples:
      chat recipients
      Chunk 🔗
      Patterns:
      Since: 2.0
      The chunk a block, location or entity is in.
      Examples:
      add the chunk at the player to {protected chunks::*}
      Clicked Block/Entity/Inventory/Slot 🔗
      Patterns:
      • [the] (clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action|clicked [enchant[ment]] button)
      Since: 1.0, 2.2-dev35 (more clickable things)
      Usable in events: click, inventory click
      The clicked block, entity, inventory, inventory slot, inventory click type or inventory action.
      Examples:
      message "You clicked on a %type of clicked entity%!"
      if the clicked block is a chest:
          show the inventory of the clicked block to the player
      Colour of 🔗
      Patterns:
      Since: 1.2
      The colour of an item, can also be used to colour chat messages with "<%colour of ...%>this text is coloured!".
      Examples:
      on click on wool:
          message "This wool block is <%colour of block%>%colour of block%!"
          set the colour of the block to black
      Coloured / Uncoloured 🔗
      Patterns:
      • (colo[u]r-|colo[u]red )%texts%
      • (format-|formatted )%texts%
      • (un|non)[-](colo[u]r-|colo[u]red |format-|formatted )%texts%
      Since: 2.0
      Parses <colour>s and, optionally, chat styles in a message or removes any colours and chat styles from the message. Parsing all chat styles requires this expression to be used in same line with the send effect.
      Examples:
      on chat:
          set message to coloured message # Safe; only colors get parsed
      command /fade <player>:
          trigger:
              set display name of the player-argument to uncoloured display name of the player-argument
      command /format <text>:
          trigger:
              message formatted text-argument # Safe, because we're sending to whoever used this command
      Command 🔗
      Patterns:
      • [the] (full|complete|whole) command
      • [the] command [label]
      • [the] arguments
      Since: 2.0
      Usable in events: command
      The command that caused an 'on command' event (excluding the leading slash and all arguments)
      Examples:
      # prevent any commands except for the /exit command during some game
      on command:
          if {game::%player%::playing} is true:
              if the command is not "exit":
                  message "You're not allowed to use commands during the game"
                  cancel the event
      Command Info 🔗
      Patterns:
      • [the] main command [label] of command %texts%
      • command %texts%'[s] main command [name]
      • [the] description of command %texts%
      • command %texts%'[s] description
      • [the] label of command %texts%
      • command %texts%'[s] label
      • [the] usage of command %texts%
      • command %texts%'[s] usage
      • [(all|the|all [of] the)] aliases of command %texts%
      • command %texts%'[s] aliases
      • [the] permission of command %texts%
      • command %texts%'[s] permission
      • [the] permission message of command %texts%
      • command %texts%'[s] permission message
      • [the] plugin [owner] of command %texts%
      • command %texts%'[s] plugin [owner]
      Since: 2.6
      Get information about a command.
      Examples:
      main name of command "skript"
      description of command "help"
      label of command "pl"
      usage of command "help"
      aliases of command "bukkit:help"
      permission of command "/op"
      command "op"'s permission message
      command "sk"'s plugin owner
      Command Sender 🔗
      Patterns:
      • [the] [command['s]] (sender|executor)
      Since: 2.0
      Usable in events: command
      The player or the console who sent a command. Mostly useful in commands and command events. If the command sender is a command block, its location can be retrieved by using %block's location%
      Examples:
      make the command sender execute "/say hi!"
      on command:
          log "%executor% used command /%command% %arguments%" to "commands.log"
      Compass Target 🔗
      Patterns:
      Since: 2.0
      The location a player's compass is pointing at.
      Examples:
      # make all player's compasses target a player stored in {compass::target::%player%}
      every 5 seconds:
          loop all players:
              set the loop-player's compass target to location of {compass::target::%%loop-player%}
      Console 🔗
      Patterns:
      • [the] (console|server)
      Since: 1.3.1
      Represents the server's console which can receive messages and execute commands
      Examples:
      execute console command "/stop"
      send "message to console" to the console
      Cooldown Time/Remaining Time/Elapsed Time/Last Usage/Bypass Permission 🔗
      Patterns:
      • [the] remaining [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] elapsed [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] ((cooldown|wait) time|[wait] time of [the] (cooldown|wait) [(of|for) [the] [current] command])
      • [the] last usage [date] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] [cooldown] bypass perm[ission] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      Since: 2.2-dev33
      Only usable in command events. Represents the cooldown time, the remaining time, the elapsed time, the last usage date, or the cooldown bypass permission.
      Examples:
      command /home:
          cooldown: 10 seconds
          cooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time%.
          trigger:
              teleport player to {home::%player%}
      Coordinate 🔗
      Patterns:
      • [the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%
      • %locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]
      Since: 1.4.3
      Represents a given coordinate of a location.
      Examples:
      player's y-coordinate is smaller than 40:
          message "Watch out for lava!"
      Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc. 🔗
      Patterns:
      • [the] [event-]<.+>
      Since: 1.0
      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). 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'.
      Examples:
      give a diamond sword of sharpness 3 to the player
      kill the creeper
      kill all powered creepers in the wolf's world
      projectile is an arrow
      Cursor Slot 🔗
      Patterns:
      Since: 2.2-dev17
      The item which the player has on their cursor. This slot is always empty if player has no inventories open.
      Examples:
      cursor slot of player is dirt
      set cursor slot of player to 64 diamonds
      Custom Chest Inventory 🔗
      Patterns:
      • [a [new]] chest inventory (named|with name) %text% [with %number% row[s]]
      • [a [new]] chest inventory with %number% row[s] [(named|with name) %text%]
      Since: 2.2-dev34
      Returns a chest inventory with the given amount of rows and the name. Use the open inventory effect to open it.
      Examples:
      open chest inventory with 1 row named "test" to player
      set {_inventory} to chest inventory with 1 row
      Custom Model Data 🔗
      Patterns:
      Since: 2.5
      Requirements: 1.14+
      Get/set the CustomModelData tag for an item. (Value is an integer between 0 and 99999999)
      Examples:
      set custom model data of player's tool to 3
      set {_model} to custom model data of player's tool
      Damage 🔗
      Patterns:
      • [the] damage
      Since: 1.3.5
      Usable in events: damage
      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).
      Examples:
      increase the damage by 2
      Damage Cause 🔗
      Patterns:
      • [the] damage (cause|type)
      Since: 2.0
      The damage cause of a damage event. Please click on the link for more information.
      Examples:
      damage cause is lava, fire or burning
      Damaged Item 🔗
      Patterns:
      Since: 2.4
      Directly damages an item. In MC versions 1.12.2 and lower, this can be used to apply data values to items/blocks
      Examples:
      give player diamond sword with damage value 100
      set player's tool to diamond hoe damaged by 250
      give player diamond sword with damage 700 named "BROKEN SWORD"
      set {_item} to diamond hoe with damage value 50 named "SAD HOE"
      set target block of player to wool with data value 1
      set target block of player to potato plant with data value 7
      Data/Damage Value 🔗
      Patterns:
      Since: 1.2
      The data/damage value of an item/block. Data values of blocks are only supported on 1.12.2 and below. 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.
      Examples:
      set damage value of player's tool to 10
      set data value of target block of player to 3
      add 1 to the data value of the clicked block
      reset data value of block at player
      Date Ago/Later 🔗
      Patterns:
      Since: 2.2-dev33
      A date the specified timespan before/after another date.
      Examples:
      set {_yesterday} to 1 day ago
      Default Value 🔗
      Patterns:
      Since: 2.2-dev36
      A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned.
      Examples:
      broadcast {score::%player's uuid%} otherwise "%player% has no score!"
      Difference 🔗
      Patterns:
      Since: 1.4
      The difference between two values, e.g. numbers, dates or times.
      Examples:
      if difference between {command::%player%::lastuse} and now is smaller than a minute:
          message "You have to wait a minute before using this command again!"
      Difficulty 🔗
      Patterns:
      • [the] difficult(y|ies) of %worlds%
      • %worlds%'[s] difficult(y|ies)
      Since: 2.3
      The difficulty of a world.
      Examples:
      set the difficulty of "world" to hard
      Direction 🔗
      Patterns:
      • [%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%]
      • [%number% [[(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% (of|from)]
      • [%number% [[(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) (of|from)]
      • [%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])
      • [%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])
      Since: 1.0 (basic), 2.0 (extended)
      A helper expression for the direction type.
      Examples:
      thrust the player upwards
      set the block behind the player to water
      loop blocks above the player:
          set {_rand} to a random integer between 1 and 10
          set the block {_rand} meters south east of the loop-block to stone
      block in horizontal facing of the clicked entity from the player is air
      spawn a creeper 1.5 meters horizontally behind the player
      spawn a TNT 5 meters above and 2 meters horizontally behind the player
      thrust the last spawned TNT in the horizontal direction of the player with speed 0.2
      push the player upwards and horizontally forward at speed 0.5
      push the clicked entity in in the direction of the player at speed -0.5
      open the inventory of the block 2 blocks below the player to the player
      teleport the clicked entity behind the player
      grow a regular tree 2 meters horizontally behind the player
      Distance 🔗
      Patterns:
      Since: 1.0
      The distance between two points.
      Examples:
      if the distance between the player and {home::%uuid of player%} is smaller than 20:
          message "You're very close to your home!"
      Drops 🔗
      Patterns:
      • [the] drops
      Since: 1.0
      Usable in events: death
      Only works in 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.
      Examples:
      clear drops
      remove 4 planks from the drops
      Drops Of Block 🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15+ ('as %entity%')
      A list of the items that will drop when a block is broken.
      Examples:
      on break of block:
          give drops of block using player's tool to player
      Element of 🔗
      Patterns:
      • ([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%
      Since: 2.0
      The first, last or a random element of a set, e.g. a list variable. See also: random
      Examples:
      give a random element out of {free items::*} to the player
      Enchant Item 🔗
      Patterns:
      • [the] enchant[ed] item
      Since: 2.5
      Usable in events: enchant prepare, enchant
      The enchant item in an enchant prepare event or enchant event. It can be modified, but enchantments will still be applied in the enchant event.
      Examples:
      on enchant:
          set the enchanted item to a diamond chestplate
      on enchant prepare:
          set the enchant item to a wooden sword
      Enchanting Experience Cost 🔗
      Patterns:
      • [the] [displayed] ([e]xp[erience]|enchanting) cost
      Since: 2.5
      Usable in events: enchant
      The cost of enchanting in an enchant event. This is number that was displayed in the enchantment table, not the actual number of levels removed.
      Examples:
      on enchant:
          send "Cost: %the displayed enchanting cost%" to player
      Enchantment Bonus 🔗
      Patterns:
      • [the] enchantment bonus
      Since: 2.5
      Usable in events: enchant prepare
      The enchantment bonus in an enchant prepare event. This represents the number of bookshelves affecting/surrounding the enchantment table.
      Examples:
      on enchant:
          send "There are %enchantment bonus% bookshelves surrounding this enchantment table!" to player
      Enchantment Level 🔗
      Patterns:
      Since: 2.0
      The level of a particular enchantment on an item.
      Examples:
      player's tool is a sword of sharpness:
          message "You have a sword of sharpness %level of sharpness of the player's tool% equipped"
      Enchantment Offer 🔗
      Patterns:
      • [all [of]] [the] enchant[ment] offers
      • enchant[ment] offer[s] %numbers%
      • [the] %number%(st|nd|rd|th) enchant[ment] offer
      Since: 2.5
      Usable in events: enchant prepare
      Requirements: 1.11 or newer
      The enchantment offer in enchant prepare events.
      Examples:
      on enchant prepare:
          send "Your enchantment offers are: %the enchantment offers%" to player
      Enchantment Offer Enchantment Cost 🔗
      Patterns:
      Since: 2.5
      Requirements: 1.11 or newer
      The cost of an enchantment offer. This is displayed to the right of an enchantment offer. If the cost is changed, it will always be at least 1. This changes how many levels are required to enchant, but does not change the number of levels removed. To change the number of levels removed, use the enchant event.
      Examples:
      set cost of enchantment offer 1 to 50
      Ender Chest 🔗
      Patterns:
      Since: 2.0
      The ender chest of a player.
      Examples:
      open the player's ender chest to the player
      Entities 🔗
      Patterns:
      Since: 1.2.1, 2.5 (chunks)
      All entities in all worlds, in a specific world, in a chunk 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'.
      Examples:
      kill all creepers in the player's world
      send "Psst!" to all players within 100 meters of the player
      give a diamond to all ops
      heal all tamed wolves in radius 2000 around {town center}
      delete all monsters in chunk at player
      Entity AI 🔗
      Patterns:
      Since: 2.5
      Returns whether an entity has AI.
      Examples:
      set artificial intelligence of target entity to false
      Entity Attribute 🔗
      Patterns:
      Since: 2.5
      The numerical value of an entity's particular attribute. Note that the movement speed attribute cannot be reliably used for players. For that purpose, use the speed expression instead. Resetting an entity's attribute is only available in Minecraft 1.11 and above.
      Examples:
      on damage of player:
          send "You are wounded!"
          set victim's attack speed attribute to 2
      Entity Owner 🔗
      Patterns:
      Since: 2.5
      The owner of a tameable entity, such as a horse or wolf.
      Examples:
      set owner of target entity to player
      delete owner of target entity
      set {_t} to uuid of tamer of target entity
      Exhaustion 🔗
      Patterns:
      Since: 2.2-dev35
      The exhaustion of a player. This is mainly used to determine the rate of hunger depletion.
      Examples:
      set exhaustion of all players to 1
      Experience 🔗
      Patterns:
      • [the] [(spawned|dropped)] [e]xp[erience] [orb[s]]
      Since: 2.1, 2.5.3 (block break event)
      Usable in events: experience spawn, break / mine
      How much experience was spawned in an experience spawn or block break event. Can be changed.
      Examples:
      on experience spawn:
          add 5 to the spawned experience
      on break of coal ore:
          clear dropped experience
      on break of diamond ore:
          if tool of player = diamond pickaxe:
              add 100 to dropped experience
      Exploded Blocks 🔗
      Patterns:
      • [the] exploded blocks
      Since: 2.5
      Usable in events: explode
      Get all the blocks that were destroyed in an explode event
      Examples:
      on explode:
          loop exploded blocks:
              add loop-block to {exploded::blocks::*}
      Explosion Block Yield 🔗
      Patterns:
      • [the] [explosion['s]] block (yield|amount)
      • [the] percentage of blocks dropped
      Since: 2.5
      Usable in events: explosion
      The percentage of exploded blocks dropped in an explosion event. When changing the yield, a value greater than 1 will function the same as using 1. Attempting to change the yield to a value less than 0 will have no effect.
      Examples:
      on explode:
      set the explosion's block yield to 10%
      Explosion Yield 🔗
      Patterns:
      • [the] explosion (yield|radius|size)
      • [the] (yield|radius|size) of [the] explosion
      Since: 2.5
      Usable in events: explosion prime
      The yield of the explosion in an explosion prime event. This is how big the explosion is. When changing the yield, values less than 0 will be ignored. Read this wiki page for more information
      Examples:
      on explosion prime:
          set the yield of the explosion to 10
      Explosive Yield 🔗
      Patterns:
      • [the] explosive (yield|radius|size) of %entities%
      • %entities%'[s] explosive (yield|radius|size)
      Since: 2.5
      Requirements: Minecraft 1.12 or newer for creepers
      The yield of an explosive (creeper, primed tnt, fireball, etc.). This is how big of an explosion is caused by the entity. Read this wiki page for more information
      Examples:
      on spawn of a creeper:
          set the explosive yield of the event-entity to 10
      Facing 🔗
      Patterns:
      Since: 1.4
      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')
      Examples:
      # makes a bridge
      loop blocks from the block below the player in the horizontal facing of the player:
          set loop-block to cobblestone
      Fall Distance 🔗
      Patterns:
      • [the] [the] fall[en] (distance|height) of %entities%
      • %entities%'[s] [the] fall[en] (distance|height)
      Since: 2.5
      The distance an entity has fallen for.
      Examples:
      set all entities' fall distance to 10
      on damage:
          send "%victim's fall distance%" to victim
      Fertilized Blocks 🔗
      Patterns:
      • [all] [the] fertilized blocks
      Since: 2.5
      Usable in events: block fertilize
      Requirements: Minecraft 1.13 or newer
      The blocks fertilized in block fertilize events.
      Examples:
      the fertilized blocks
      Filter 🔗
      Patterns:
      • %objects% (where|that match) \[<.+>\]
      Since: 2.2-dev36
      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.
      Examples:
      send "congrats on being staff!" to all players where [player input has permission "staff"]
      Filter Input 🔗
      Patterns:
      • input
      • %*type% input
      Since: 2.2-dev36
      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.
      Examples:
      send "congrats on being staff!" to all players where [input has permission "staff"]
      Final Damage 🔗
      Patterns:
      • [the] final damage
      Since: 2.2-dev19
      Usable in events: damage
      How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed.
      Examples:
      send "%final damage%" to victim
      Firework Effect 🔗
      Patterns:
      • [(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors%
      • [(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%
      Since: 2.4
      Represents a 'firework effect' which can be used in the launch firework effect.
      Examples:
      launch flickering trailing burst firework colored blue and green at player
      launch trailing flickering star coloured purple, yellow, blue, green and red fading to pink at target entity
      launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1
      Flight Mode 🔗
      Patterns:
      • [the] fl(y[ing]|ight) (mode|state) of %players%
      • %players%'[s] fl(y[ing]|ight) (mode|state)
      Since: 2.2-dev34
      Whether the player(s) are allowed to fly. Use Make Fly effect to force player(s) to fly.
      Examples:
      set flight mode of player to true
      send "%flying state of all players%"
      Food Level 🔗
      Patterns:
      • [the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]
      • %player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]
      Since: 1.0
      The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar.
      Examples:
      set the player's food level to 10
      Formatted Time 🔗
      Patterns:
      • %dates% formatted [human-readable] [(with|as) %text%]
      Since: 2.2-dev31
      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.
      Examples:
      now formatted human-readable
      Former/Future State 🔗
      Patterns:
      • [the] (former|past|old) [state] [of] %~object%
      • %~object% before [the event]
      • [the] (future|to-be|new) [state] [of] %~object%
      • %~object%(-to-be| after[(wards| the event)])
      Since: 1.1
      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. Note: The past, future and present states of an expression are sometimes called 'time states' of an expression. 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.
      Examples:
      on teleport:
          former world was "world_nether" # or 'world was'
          world will be "world" # or 'world after the event is'
      on tool change:
          past tool is an axe
          the tool after the event will be air
      on weather change:
          set {weather::%world%::old} to past weather
          set {weather::%world%::current} to the new weather
      Furnace Slot 🔗
      Patterns:
      • (fuel|result) [slot]
      • (ore|fuel|result)[s] [slot[s]] of %blocks%
      • %blocks%'[s] (ore|fuel|result)[s] [slot[s]]
      Since: 1.0
      Usable in events: smelt, fuel burn
      A slot of a furnace, i.e. either the ore, fuel or result slot. Remember to use 'block' and not 'furnace', as 'furnace' is not an existing expression.
      Examples:
      set the fuel slot of the clicked block to a lava bucket
      set the block's ore slot to 64 iron ore
      give the result of the block to the player
      clear the result slot of the block
      Game Mode 🔗
      Patterns:
      Since: 1.0
      The gamemode of a player. (Gamemodes)
      Examples:
      player's gamemode is survival
      set the player's gamemode to creative
      Gamerule Value 🔗
      Patterns:
      Since: 2.5
      Requirements: Minecraft 1.13+
      The gamerule value of a world.
      Examples:
      set the gamerule commandBlockOutput of world "world" to false
      Gliding State 🔗
      Patterns:
      Since: 2.2-dev21
      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.
      Examples:
      set gliding of player to off
      Glowing 🔗
      Patterns:
      Since: 2.2-dev18
      Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls.
      Examples:
      set glowing of player to true
      Gravity 🔗
      Patterns:
      Since: 2.2-dev21
      If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag.
      Examples:
      set gravity of player off
      Group 🔗
      Patterns:
      Since: 2.2-dev35
      Requirements: Vault, a permission plugin that supports Vault
      The primary group or all groups of a player. This expression requires Vault and a compatible permissions plugin to be installed.
      Examples:
      on join:
          broadcast "%group of player%" # this is the player's primary group
          broadcast "%groups of player%" # this is all of the player's groups
      Hash 🔗
      Patterns:
      • %texts% hash[ed] with (MD5|SHA-256)
      Since: 2.0, 2.2-dev32 (SHA-256 algorithm)
      Hashes the given text using the MD5 or SHA-256 algorithms. Each algorithm is suitable for different use cases.

      MD5 is provided mostly for backwards compatibility, as it is outdated and not secure. SHA-256 is more secure, and can used to hash somewhat confidental data like IP addresses and even passwords. It is not that secure out of the box, so please consider using salt when dealing with passwords! When hashing data, you must specify algorithms that will be used for security reasons!

      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.

      Examples:
      command /setpass :
          trigger:
              set {password::%uuid of player%} to text-argument hashed with SHA-256
      command /login :
          trigger:
              if text-argument hashed with SHA-256 is {password::%uuid of player%}:
                  message "Login successful."
              else:
                  message "Wrong password!"
      Head location 🔗
      Patterns:
      Since: 2.0
      The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight. 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.
      Examples:
      set the block at the player's head to air
      set the block in front of the player's eyes to glass
      loop blocks in front of the player's head:
      Heal Amount 🔗
      Patterns:
      • [the] heal amount
      Since: 2.5.1
      Usable in events: heal
      The amount of health healed in a healing event.
      Examples:
      increase heal amount by 2
      remove 0.5 from heal amount
      Heal Reason 🔗
      Patterns:
      • (regen|health regain|heal) (reason|cause)
      Since: 2.5
      The heal reason of a heal event. Please click on the link for more information.
      Examples:
      on heal:
          if heal reason = satiated:
              send "You ate enough food and gained health back!" to player
      Health 🔗
      Patterns:
      Since: 1.0
      Usable in events: damage
      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).
      Examples:
      message "You have %health% HP left."
      Hidden Players 🔗
      Patterns:
      • [(all [[of] the]|the)] hidden players (of|for) %players%
      • [(all [[of] the]|the)] players hidden (from|for|by) %players%
      Since: 2.3
      The players hidden from a player that were hidden using the player visibility effect.
      Examples:
      message "You are currently hiding: %hidden players of the player%"
      Highest Solid Block 🔗
      Patterns:
      • highest [(solid|non-air)] block at %locations%
      Since: 2.2-dev34
      Returns the highest solid block at the x and z coordinates of the world of a given location.
      Examples:
      highest block at location of arg-player
      Hotbar Button 🔗
      Patterns:
      • [the] hotbar button
      Since: 2.5
      The hotbar button clicked in an inventory click event.
      Examples:
      on inventory click:
          send "You clicked the hotbar button %hotbar button%!"
      Hotbar Slot 🔗
      Patterns:
      • [the] [([currently] selected|current)] hotbar slot of %players%
      • %players%'[s] [([currently] selected|current)] hotbar slot
      Since: 2.2-dev36
      The slot number of the currently selected hotbar slot.
      Examples:
      message "%player's current hotbar slot%"
      set player's selected hotbar slot to slot 4 of player
      Hover List 🔗
      Patterns:
      • [the] [custom] [(player|server)] (hover|sample) ([message] list|message)
      • [the] [custom] player [(hover|sample)] list
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      The list when you hover on the player counts of the server in the server list. 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. 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.
      Examples:
      on server list ping:
          clear the hover list
          add "Welcome to the Minecraft server!" to the hover list
          add "" to the hover list # A blank line
          add "There are %online players count% online players!" to the hover list
      Humidity 🔗
      Patterns:
      • [the] humidit(y|ies) of %blocks%
      • %blocks%'[s] humidit(y|ies)
      Since: 2.2-dev35
      Humidity of given blocks.
      Examples:
      set {_humidity} to event-block's humidity
      IP 🔗
      Patterns:
      • IP[s][( |-)address[es]] of %players%
      • %players%'[s] IP[s][( |-)address[es]]
      • IP[( |-)address]
      Since: 1.4, 2.2-dev26 (when used in connect event), 2.3 (when used in server list ping event)
      The IP address of a player, or the connected player in a connect event, or the pinger in a server list ping event.
      Examples:
      ban the IP address of the player
      broadcast "Banned the IP %IP of player%"

      on connect:
          log "[%now%] %player% (%ip%) is connected to the server."

      on server list ping:
          send "%IP-address%" to the console
      Id 🔗
      Patterns:
      Since: 1.0
      The id of a specific item. You usually don't need this expression as you can likely do everything with aliases.
      Examples:
      message "the ID of %type of the clicked block% is %id of the clicked block%."
      Index Of 🔗
      Patterns:
      • [the] [(first|last)] index of %text% in %text%
      Since: 2.1
      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.
      Examples:
      set {_first} to the first index of "@" in the text argument
      if {_s} contains "abc":
          set {_s} to the first (index of "abc" in {_s} + 3) characters of {_s} # removes everything after the first "abc" from {_s}
      Indexes of List 🔗
      Patterns:
      • [the] (indexes|indices) of %objects%
      • (all of the|all the|all) (indices|indexes) of %objects%
      Since: 2.4
      Returns all the indexes of a list variable
      Examples:
      set {l::*} to "some", "cool" and "values" broadcast "%all indexes of {l::*}%" # result is 1, 2 and 3
      Inventory 🔗
      Patterns:
      • [the] inventor(y|ies) of %inventoryholders%
      • %inventoryholders%'[s] inventor(y|ies)
      Since: 1.0
      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.
      Examples:
      add a plank to the player's inventory
      clear the player's inventory
      remove 5 wool from the inventory of the clicked block
      Inventory Action 🔗
      Patterns:
      • [the] inventory action
      Since: 2.2-dev16
      The inventory action of an inventory event. Please click on the link for more information.
      Examples:
      inventory action is pickup all
      Inventory Holder/Viewers/Rows/Slots 🔗
      Patterns:
      • (holder[s]|viewers|[amount of] rows|[amount of] slots) of %inventories%
      • %inventories%'[s] (holder[s]|viewers|[amount of] rows|[amount of] slots)
      Since: 2.2-dev34, 2.5 (slots)
      Gets the amount of rows/slots, viewers and holder of an inventory.
      Examples:
      event-inventory's amount of rows
      holder of player's top inventory
      {_inventory}'s viewers
      Inventory Slot 🔗
      Patterns:
      Since: 2.2-dev24
      Represents a slot in an inventory. It can be used to change the item in an inventory too.
      Examples:
      if slot 0 of player is air:
          set slot 0 of player to 2 stones
          remove 1 stone from slot 0 of player
          add 2 stones to slot 0 of player
          clear slot 1 of player
      Item 🔗
      Patterns:
      • [the] item
      Since: unknown (before 2.1)
      The item involved in an event, e.g. in a drop, dispense, pickup or craft event.
      Examples:
      on dispense:
          item is a clock
          set the time to 6:00
      Item Amount 🔗
      Patterns:
      Since: 2.2-dev24
      The amount of an item stack.
      Examples:
      send "You have got %item amount of player's tool% %player's tool% in your hand!" to player
      Item Enchantments 🔗
      Patterns:
      Since: 2.2-dev36
      All the enchantments an item type has.
      Examples:
      clear enchantments of event-item
      Item of an Entity 🔗
      Patterns:
      Since: 2.2-dev35, 2.2-dev36 (improved), 2.5.2 (throwable projectiles)
      Requirements: Minecraft 1.15.2+ (throwable projectiles)
      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. For throwable projectiles (snowballs, enderpearls etc.),it gets the displayed item. Other entities do not have items associated with them.
      Examples:
      Item with CustomModelData 🔗
      Patterns:
      Since: 2.5
      Requirements: 1.14+
      Get an item with a CustomModelData tag. (Value is an integer between 0 and 99999999)
      Examples:
      give player a diamond sword with custom model data 2
      set slot 1 of inventory of player to wooden hoe with custom model data 357
      Item with Lore 🔗
      Patterns:
      Since: 2.3
      Returns the given item type with the specified lore added to it. If multiple strings are passed, each of them will be a separate line in the lore.
      Examples:
      set {_test} to stone with lore "line 1" and "line 2"
      give {_test} to player
      Items 🔗
      Patterns:
      • [(all [[of] the]|the|every)] item(s|[ ]types)
      • [(all [[of] the]|the)] items of type[s] %item types%
      • [(all [[of] the]|the|every)] block(s|[ ]types)
      • [(all [[of] the]|the)] blocks of type[s] %item types%
      Since: unknown (before 2.1)
      Items or blocks of a specific type, useful for looping.
      Examples:
      loop items of type ore and log:
          block contains loop-item
          message "Theres at least one %loop-item% in this block"
      drop all blocks at the player # drops one of every block at the player
      Items In 🔗
      Patterns:
      • [(all [[of] the]|the)] items ([with]in|of|contained in|out of) [(inventor(y|ies)]) %inventories%
      Since: 2.0
      All items in an inventory. Useful for looping or storing in a list variable. Please note that the positions of the items in the inventory are not saved, only their order is preserved.
      Examples:
      loop all items in the player's inventory:
          loop-item is enchanted
          remove loop-item from the player
      set {inventory::%uuid of player%::*} to items in the player's inventory
      Join & Split 🔗
      Patterns:
      • (concat[enate]|join) %texts% [(with|using|by) [[the] delimiter] %text%]
      • split %text% (at|using|by) [[the] delimiter] %text%
      • %text% split (at|using|by) [[the] delimiter] %text%
      • regex split %text% (at|using|by) [[the] delimiter] %text%
      • regex %text% split (at|using|by) [[the] delimiter] %text%
      Since: 2.1, 2.5.2 (regex support)
      Joins several texts with a common delimiter (e.g. ", "), or splits a text into multiple texts at a given delimiter.
      Examples:
      message "Online players: %join all players with "" | ""%" # %all players% would use the default "x, y, and z"
      set {_s::*} to the string argument split at ","
      Language 🔗
      Patterns:
      • [the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%
      • %players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]
      Since: 2.3
      Currently selected game language of a player. The value of the language is not defined properly. The vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish.
      Examples:
      message player's current language
      Last Attacker 🔗
      Patterns:
      • [the] last attacker of %entity%
      • %entity%'[s] last attacker
      Since: 2.5.1
      The last block or entity that attacked an entity.
      Examples:
      send "%last attacker of event-entity%"
      Last Damage 🔗
      Patterns:
      Since: 2.5.1
      The last damage that was done to an entity. Note that changing it doesn't deal more/less damage.
      Examples:
      set last damage of event-entity to 2
      Last Damage Cause 🔗
      Patterns:
      Since: 2.2-Fixes-V10
      Cause of last damage done to an entity
      Examples:
      set last damage cause of event-entity to fire tick
      Last Loaded Server Icon 🔗
      Patterns:
      • [the] [last[ly]] loaded server icon
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Returns the last loaded server icon with the load server icon effect.
      Examples:
      set {server-icon} to the last loaded server icon
      Last Resource Pack Response 🔗
      Patterns:
      • [the] [last] resource pack response[s] of %players%
      • %players%'[s] [last] resource pack response[s]
      Since: 2.4
      Requirements: Paper 1.9 or newer
      Returns the last resource pack response received from a player.
      Examples:
      if player's last resource pack response is deny or download fail:
      Last Spawned Entity 🔗
      Patterns:
      • [the] [last[ly]] (spawned|shot) %*entity type%
      • [the] [last[ly]] dropped (item)
      Since: 1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item)
      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.
      Examples:
      spawn a priest
      set {healer::%spawned priest%} to true
      shoot an arrow from the last spawned entity
      ignite the shot projectile
      drop a diamond sword
      push last dropped item upwards
      Last/First Login Time 🔗
      Patterns:
      Since: 2.5
      When a player last/first logged in the server. 'last login' requires paper to get the last login, otherwise it will get the last time they were seen on the server.
      Examples:
      command /onlinefor:
          trigger:
              send "You have been online for %difference between player's last login and now%."
              send "You first joined the server %difference between player's first login and now% ago."
      Leash Holder 🔗
      Patterns:
      Since: 2.3
      The leash holder of a living entity.
      Examples:
      set {_example} to the leash holder of the target mob
      Length 🔗
      Patterns:
      Since: 2.1
      The length of a text, in number of characters.
      Examples:
      set {_l} to length of the string argument
      Level 🔗
      Patterns:
      Since: unknown (before 2.1)
      Usable in events: level change
      The level of a player.
      Examples:
      reduce the victim's level by 1
      set the player's level to 0
      Level Progress 🔗
      Patterns:
      Since: 2.0
      Usable in events: level change
      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). 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 their progress was more than 50%.
      Examples:
      # use the exp bar as mana
      on rightclick with a blaze rod:
          player's level progress is larger than 0.2
          shoot a fireball from the player
          reduce the player's level progress by 0.2
      every 2 seconds:
          loop all players:
              level progress of loop-player is smaller than 0.9:
                  increase level progress of the loop-player by 0.1
              else:
                  set level progress of the loop-player to 0.99
      on xp spawn:
          cancel event
      Light Level 🔗
      Patterns:
      Since: 1.3.4
      Gets the light level at a certain location which ranges from 0 to 15. 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.
      Examples:
      # set vampire players standing in bright sunlight on fire
      every 5 seconds:
          loop all players:
              {vampire::%uuid of loop-player%} is true
              sunlight level at the loop-player is greater than 10
              ignite the loop-player for 5 seconds
      Location 🔗
      Patterns:
      • [the] [event-](location|position)
      Since: 2.0
      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).
      Examples:
      drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'
      set {_loc} to the location 1 meter above the player
      Location 🔗
      Patterns:
      Since: 2.0
      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).
      Examples:
      drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'
      set {_loc} to the location 1 meter above the player
      Location 🔗
      Patterns:
      Since:
      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). Please note that the location of an entity is at it's feet, use head location to get the location of the head.
      Examples:
      set {home::%uuid of player%} to the location of the player
      message "You home was set to %player's location% in %player's world%."
      Location At 🔗
      Patterns:
      • [the] (location|position) [at] [\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\)] [[(in|of) [[the] world]] %world%]
      Since: 2.0
      Allows to create a location from three coordinates and a world.
      Examples:
      set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4
      distance between the player and the location (0, 0, 0) is less than 200
      Loop value 🔗
      Patterns:
      • [the] loop-<.+>
      Since: 1.0
      The currently looped value.
      Examples:
      # countdown:
      loop 10 times:
          message "%11 - loop-number%"
          wait a second
      # generate a 10x10 floor made of randomly coloured wool below the player:
      loop blocks from the block below the player to the block 10 east of the block below the player:
          loop blocks from the loop-block to the block 10 north of the loop-block:
              set loop-block-2 to any wool
      Lore 🔗
      Patterns:
      Since: 2.1
      An item's lore.
      Examples:
      set the 1st line of the item's lore to "Excalibur 2.0"
      MOTD 🔗
      Patterns:
      • [the] [(default)|(shown|displayed)] (MOTD|message of [the] day)
      Since: 2.3
      The message of the day in the server list. This can be changed in a server list ping event only. 'default MOTD' returns the default MOTD always and can't be changed.
      Examples:
      on server list ping:
          set the motd to "Join now!"
      Max Durability 🔗
      Patterns:
      Since: 2.5
      The maximum durability of an item.
      Examples:
      maximum durability of diamond sword
      if max durability of player's tool is not 0: # Item is damageable
      Max Health 🔗
      Patterns:
      Since: 2.0
      Usable in events: damage, death
      The maximum health of an entity, e.g. 10 for a player.
      Examples:
      on join:
          set the maximum health of the player to 100
      spawn a giant
      set the last spawned entity's max health to 1000
      Max Minecart Speed 🔗
      Patterns:
      • [the] max[imum] minecart (speed|velocity) of %entities%
      • %entities%'[s] max[imum] minecart (speed|velocity)
      Since: 2.5.1
      The maximum speed of a minecart.
      Examples:
      on right click on minecart:
          set max minecart speed of event-entity to 1
      Max Players 🔗
      Patterns:
      • [the] [((real|default)|(fake|shown|displayed))] max[imum] player[s] [(count|amount|number|size)]
      • [the] [((real|default)|(fake|shown|displayed))] max[imum] (count|amount|number|size) of players
      Since: 2.3
      The count of max players. This can be changed in a server list ping event only. 'real max players' returns the real count of max players of the server always and can't be changed.
      Examples:
      on server list ping:
          set the max players count to (online players count + 1)
      Maximum Stack Size 🔗
      Patterns:
      Since: 2.1
      The maximum stack size of the specified material, e.g. 64 for torches, 16 for buckets, and 1 for swords.
      Examples:
      send "You can only pick up %max stack size of player's tool% of %type of (player's tool)%" to player
      Me 🔗
      Patterns:
      • me
      • my[self]
      Since: 2.1.1
      A 'me' expression that can be used in effect commands only.
      Examples:
      !heal me
      !kick myself
      !give a diamond axe to me
      Mending Repair Amount 🔗
      Patterns:
      • [the] [mending] repair amount
      Since: 2.5.1
      The number of durability points an item is to be repaired in a mending event. Modifying the repair amount will affect how much experience is given to the player after mending.
      Examples:
      on item mend:
          set the mending repair amount to 100
      Message 🔗
      Patterns:
      • [the] [chat( |-)]message
      • [the] (join|log[ ]in)( |-)message
      • [the] (quit|leave|log[ ]out|kick)( |-)message
      • [the] death( |-)message
      Since: 1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message)
      Usable in events: chat, join, quit, death
      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.
      Examples:
      on chat:
          player has permission "admin"
          set message to "%message%"

      on first join:
          set join message to "Welcome %player% to our awesome server!"

      on join:
          player has played before
          set join message to "Welcome back, %player%!"

      on quit:
          set quit message to "%player% left this awesome server!"

      on death:
          set the death message to "%player% died!"
      Metadata 🔗
      Patterns:
      Since: 2.2-dev36
      Metadata is a way to store temporary data on entities, blocks and more that disappears after a server restart.
      Examples:
      set metadata value "healer" of player to true
      broadcast "%metadata value ""healer"" of player%"
      clear metadata value "healer" of player
      Minecart Derailed / Flying Velocity 🔗
      Patterns:
      • [the] [minecart] (derailed|flying) velocity of %entities%
      • %entities%'[s] [minecart] (derailed|flying) velocity
      Since: 2.5.1
      The velocity of a minecart as soon as it has been derailed or as soon as it starts flying.
      Examples:
      on right click on minecart:
          set derailed velocity of event-entity to vector 2, 10, 2
      Money 🔗
      Patterns:
      Since: 2.0, 2.5 (offline player support)
      Requirements: Vault, a permission plugin that supports Vault
      How much virtual money a player has (can be changed). This expression requires Vault and a compatible economy plugin to be installed.
      Examples:
      message "You have %player's money%" # the currency name will be added automatically
      remove 20$ from the player's balance # replace '$' by whatever currency you use
      add 200 to the player's account # or omit the currency alltogether
      Moved blocks 🔗
      Patterns:
      • [the] moved blocks
      Since: 2.2-dev27
      Blocks which are moved in a piston event. Cannot be used outside of piston events.
      Examples:
      the moved blocks
      Name / Display Name / Tab List Name 🔗
      Patterns:
      Since: before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)
      Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, inventory, or gamerule.

            
      • Players         
                      
        • Name: The Minecraft account name of the player. Can't be changed, but 'display name' can be changed.
        •             
        • Display Name: The name of the player that is displayed in messages. This name can be changed freely and can include colour codes, and is shared among all plugins (e.g. chat plugins will use the display name).
        •         
            
      •     
      • Entities         
                      
        • Name: The custom name of the entity. Can be changed. But for living entities, the players will have to target the entity to see its name tag. For non-living entities, the name will not be visible at all. To prevent this, use 'display name'.
        •             
        • Display Name: The custom name of the entity. Can be changed, which will also enable custom name visibility of the entity so name tag of the entity will be visible always.
        •         
            
      •     
      • Items         
                      
        • Name and Display Name: The custom name of the item (not the Minecraft locale name). Can be changed.
        •         
            
      •     
      • Inventories         
                      
        • Name and Display Name: The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers.
        •         
            
      •     
      • Gamerules (1.13+)         
                      
        • Name: The name of the gamerule. Cannot be changed.
        •         
            
      Examples:
      on join:
          player has permission "name.red"
          set the player's display name to "[admin] %name of player%"
          set the player's tab list name to "%player's name%"
      set the name of the player's tool to "Legendary Sword of Awesomeness"
      Name / Display Name / Tab List Name 🔗
      Patterns:
      • [the] ((player|tab)[ ]list name[s]) of %players%
      • %players%'[s] ((player|tab)[ ]list name[s])
      Since: before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)
      Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, inventory, or gamerule.

            
      • Players         
                      
        • Name: The Minecraft account name of the player. Can't be changed, but 'display name' can be changed.
        •             
        • Display Name: The name of the player that is displayed in messages. This name can be changed freely and can include colour codes, and is shared among all plugins (e.g. chat plugins will use the display name).
        •         
            
      •     
      • Entities         
                      
        • Name: The custom name of the entity. Can be changed. But for living entities, the players will have to target the entity to see its name tag. For non-living entities, the name will not be visible at all. To prevent this, use 'display name'.
        •             
        • Display Name: The custom name of the entity. Can be changed, which will also enable custom name visibility of the entity so name tag of the entity will be visible always.
        •         
            
      •     
      • Items         
                      
        • Name and Display Name: The custom name of the item (not the Minecraft locale name). Can be changed.
        •         
            
      •     
      • Inventories         
                      
        • Name and Display Name: The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers.
        •         
            
      •     
      • Gamerules (1.13+)         
                      
        • Name: The name of the gamerule. Cannot be changed.
        •         
            
      Examples:
      on join:
          player has permission "name.red"
          set the player's display name to "[admin] %name of player%"
          set the player's tab list name to "%player's name%"
      set the name of the player's tool to "Legendary Sword of Awesomeness"
      Named Item/Inventory 🔗
      Patterns:
      Since: 2.0, 2.2-dev34 (inventories)
      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 name of <item/inventory> to <text>.
      Examples:
      give a diamond sword of sharpness 100 named "Excalibur" to the player
      set tool of player to the player's tool named "Wand"
      set the name of the player's tool to "Wand"
      open hopper inventory named "Magic Hopper" to player
      New Line 🔗
      Patterns:
      • n[ew]l[ine]
      • line[ ]break
      Since: 2.5
      Returns a line break separator.
      Examples:
      send "Hello%nl%Goodbye!" to player
      No Damage Ticks 🔗
      Patterns:
      Since: 2.5
      The number of ticks that an entity is invulnerable to damage for.
      Examples:
      on damage:
          set victim's invulnerability ticks to 20 #Victim will not take damage for the next second
      Now 🔗
      Patterns:
      • now
      Since: 1.4
      The current system time of the server. Use time to get the Minecraft time of a world.
      Examples:
      broadcast "Current server time: %now%"
      Number of Characters 🔗
      Patterns:
      • number of upper[ ]case char(acters|s) in %text%
      • number of lower[ ]case char(acters|s) in %text%
      • number of digit char(acters|s) in %text%
      Since: 2.5
      The number of uppercase, lowercase, or digit characters in a string.
      Examples:
      #Simple Chat Filter
      on chat:
          if number of uppercase chars in message / length of message > 0.5
              cancel event
              send "Your message has to many caps!" to player
      Numbers 🔗
      Patterns:
      • [(all [[of] the]|the)] (numbers|integers|decimals) (between|from) %number% (and|to) %number%
      Since: 1.4.6 (integers & numbers), 2.5.1 (decimals)
      All numbers between two given numbers, useful for looping. 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. You may also use 'decimals' if you want to use the decimal precision of the start number. You may want to use the 'times' expression instead, for instance 'loop 5 times:'
      Examples:
      loop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5
      loop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5
      loop decimals from 3.94 to 4: # loops 3.94, 3.95, 3.96, 3.97, 3.98, 3.99, 4
      Offline players 🔗
      Patterns:
      • [(all [[of] the]|the)] offline[ ]players
      Since: 2.2-dev35
      All players that have ever joined the server. This includes the players currently online.
      Examples:
      send "Size of all players who have joined the server: %size of all offline players%"
      Online Player Count 🔗
      Patterns:
      • [the] [((real|default)|(fake|shown|displayed))] [online] player (count|amount|number)
      • [the] [((real|default)|(fake|shown|displayed))] (count|amount|number|size) of online players
      Since: 2.3
      The amount of online players. This can be changed in a server list ping event only to show fake online player amount. 'real online player count' always returns the real count of online players and can't be changed.

      Fake online player count requires PaperSpigot 1.12.2+.

      Examples:
      on server list ping:
          # This will make the max players count 5 if there are 4 players online.
          set the fake max players count to (online players count + 1)
      Opened Inventory 🔗
      Patterns:
      • [the] (current|open|top) inventory [of %players%]
      • %players%'[s] (current|open|top) inventory
      Since: 2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)
      Return the currently opened inventory of a player. If no inventory is open, it returns the own player's crafting inventory.
      Examples:
      set slot 1 of player's current inventory to diamond sword
      Parse 🔗
      Patterns:
      Since: 2.0
      Parses text as a given type, or as a given pattern. 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. 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. Some notes about parsing with a pattern: - 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. - You have to save the expression's value in a list variable, e.g. set {parsed::*} to message parsed as "...". - 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}.
      Examples:
      set {var} to line 1 parsed as number
      on chat:
          set {var::*} to message parsed as "buying %items% for %money%"
          if parse error is set:
              message "%parse error%"
          else if {var::*} is set:
              cancel event
              remove {var::2} from the player's balance
              give {var::1::*} to the player
      Parse Error 🔗
      Patterns:
      • [the] [last] [parse] error
      Since: 2.0
      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.
      Examples:
      set {var} to line 1 parsed as integer
      if {var} is not set:
          parse error is set:
              message "Line 1 is invalid: %last parse error%"
          else:
              message "Please put an integer on line 1!"
      Passenger 🔗
      Patterns:
      Since: 2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)
      The passenger of a vehicle, or the rider of a mob. For 1.11.2 and above, it returns a list of passengers and you can use all changers in it. See also: vehicle
      Examples:
      #for 1.11 and lower
      passenger of the minecart is a creeper or a cow
      the saddled pig's passenger is a player
      #for 1.11.2+
      passengers of the minecart contains a creeper or a cow
      the boat's passenger contains a pig
      add a cow and a zombie to passengers of last spawned boat
      set passengers of player's vehicle to a pig and a horse
      remove all pigs from player's vehicle
      clear passengers of boat
      Ping 🔗
      Patterns:
      Since: 2.2-dev36
      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).
      Examples:
      command /ping :
          trigger:
              send "%arg-1%'s ping is %arg-1's ping%"
      Plain Item 🔗
      Patterns:
      Since: 2.6
      A plain item is an item with no modifications. It can be used to convert items to their default state or to match with other default items.
      Examples:
      if the player's tool is a plain diamond: # check if player's tool has no modifications
          send "You are holding a plain diamond!"
      Player List Header and Footer 🔗
      Patterns:
      • [the] (player|tab)[ ]list (header|footer) [(text|message)] of %players%
      • %players%'[s] (player|tab)[ ]list (header|footer) [(text|message)]
      Since: 2.4
      Requirements: Minecraft 1.13 or newer
      The message above and below the player list in the tab menu.
      Examples:
      set all players' tab list header to "Welcome to the Server!"
      send "%the player's tab list header%" to player
      reset all players' tab list header
      Player Skull 🔗
      Patterns:
      Since: 2.0
      Gets a skull item representing a player. Skulls for other entities are provided by the aliases.
      Examples:
      give the victim's skull to the attacker
      set the block at the entity to the entity's skull
      Player Weather 🔗
      Patterns:
      • [the] [(client|custom)] weather of %players%
      • %players%'[s] [(client|custom)] weather
      Since: 2.2-dev34
      The weather for a player.
      Examples:
      set weather of arg-player to rainy
      reset player's weather
      if arg-player's weather is rainy
      Portal 🔗
      Patterns:
      • [the] portal['s] blocks
      • [the] blocks of [the] portal
      Since: 2.4
      Usable in events: portal_create
      The blocks associated with a portal in the portal creation event.
      Examples:
      on portal creation:
          loop portal blocks:
              broadcast "%loop-block% is part of a portal!"
      Potion Effect 🔗
      Patterns:
      • [new] potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]
      • [new] ambient potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]
      Since: 2.5.2
      Create a new potion effect to apply to an entity or item type. Do note that when applying potion effects to tipped arrows/lingering potions, Minecraft reduces the timespan.
      Examples:
      set {_p} to potion effect of speed of tier 1 without particles for 10 minutes
      add {_p} to potion effects of player's tool
      add {_p} to potion effects of target entity
      add potion effect of speed 1 to potion effects of player
      Potion Effects 🔗
      Patterns:
      Since: 2.5.2
      Represents the active potion effects of entities and itemtypes. You can clear all potion effects of an entity/itemtype and add/remove a potion effect/type to/from an entity/itemtype. Do note you will not be able to clear the base potion effects of a potion item. In that case, just set the item to a water bottle. When adding a potion effect type (rather than a potion effect), it will default to 15 seconds with tier 1.
      Examples:
      set {_p::*} to active potion effects of player
      clear all the potion effects of player
      clear all the potion effects of player's tool
      add potion effects of player to potion effects of player's tool
      add speed to potion effects of target entity
      remove speed and night vision from potion effects of player
      Prefix/Suffix 🔗
      Patterns:
      • [the] [chat] (prefix|suffix) of %players%
      • %players%'[s] [chat] (prefix|suffix)
      Since: 2.0
      The prefix or suffix as defined in the server's chat plugin.
      Examples:
      on chat:
          cancel event
          broadcast "%player's prefix%%player's display name%%player's suffix%: %message%" to the player's world
      set the player's prefix to "[Admin] "
      Projectile Bounce State 🔗
      Patterns:
      • [the] [the] projectile bounce (state|ability|mode) of %projectiles%
      • %projectiles%'[s] [the] projectile bounce (state|ability|mode)
      Since: 2.5.1
      A projectile's bounce state.
      Examples:
      on projectile hit:
          set projectile bounce mode of event-projectile to true
      Projectile Critical State 🔗
      Patterns:
      • [the] [the] (projectile|arrow) critical (state|ability|mode) of %projectiles%
      • %projectiles%'[s] [the] (projectile|arrow) critical (state|ability|mode)
      Since: 2.5.1
      A projectile's critical state. The only currently accepted projectiles are arrows and tridents.
      Examples:
      on shoot:
          event-projectile is an arrow
          set projectile critical mode of event-projectile to true
      Protocol Version 🔗
      Patterns:
      • [the] [(sent|required|fake)] protocol version [number]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      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. If this protocol version doesn't match with the protocol version of the client, the client will see the version string. 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), the version string will not be "Paper 1.9", it will still be "Paper 1.12.2". But then you can customize the version string as you wish. Also if the protocol version of the player is higher than protocol version of the server, it will say "Server out of date!", and if vice-versa "Client out of date!" when you hover on the ping bars.

      This can be set in a server list ping event only (increase and decrease effects cannot be used because that wouldn't make sense).

      Examples:
      on server list ping:
          set the version string to "Version: %minecraft version%"
          set the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always
      Random 🔗
      Patterns:
      Since: 1.4.9
      Gets a random item out of a set, e.g. a random player out of all players online.
      Examples:
      give a diamond to a random player out of all players
      give a random item out of all items to the player
      Random Number 🔗
      Patterns:
      • [a] random (integer|number) (from|between) %number% (to|and) %number%
      Since: 1.4
      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. 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.
      Examples:
      set the player's health to a random number between 5 and 10
      send "You rolled a %random integer from 1 to 6%!" to the player
      Random UUID 🔗
      Patterns:
      • [a] random uuid
      Since: 2.5.1
      Returns a random UUID.
      Examples:
      set {_uuid} to random uuid
      Raw Name 🔗
      Patterns:
      Since: unknown (2.2)
      The raw Minecraft material name of the given item. Note that this is not guaranteed to give same results on all servers.
      Examples:
      raw name of tool of player
      Redstone Block Power 🔗
      Patterns:
      • [the] redstone power of %blocks%
      • %blocks%'[s] redstone power
      Since: 2.5
      Power of a redstone block
      Examples:
      if redstone power of targeted block is 15:
          send "This block is very powerful!"
      Region 🔗
      Patterns:
      • [the] [event-]region
      Since: 2.1
      The region involved in an event. This expression requires a supported regions plugin to be installed.
      Examples:
      on region enter:
          region is {forbidden region}
          cancel the event
      Region Members & Owners 🔗
      Patterns:
      • [(all|the)] (members|owner[s]) of [[the] region[s]] %regions%
      • [[the] region[s]] %regions%'[s] (members|owner[s])
      Since: 2.1
      A list of members or owners of a region. This expression requires a supported regions plugin to be installed.
      Examples:
      on entering of a region:
          message "You're entering %region% whose owners are %owners of region%".
      Regions At 🔗
      Patterns:
      Since: 2.1
      All regions at a particular location. This expression requires a supported regions plugin to be installed.
      Examples:
      On click on a sign:
          line 1 of the clicked block is "[region info]"
          set {_regions::*} to regions at the clicked block
          if {_regions::*} is empty:
              message "No regions exist at this sign."
          else:
              message "Regions containing this sign: %{_regions::*}%."
      Remaining Air 🔗
      Patterns:
      Since: unknown (before 2.1)
      How much time a player has left underwater before starting to drown.
      Examples:
      player's remaining air is less than 3 seconds:
          send "hurry, get to the surface!" to the player
      Respawn location 🔗
      Patterns:
      • [the] respawn location
      Since: 2.2-dev35
      The location that a player should respawn at. This is used within the respawn event.
      Examples:
      on respawn:
          set respawn location to {example::spawn}
      Reversed List 🔗
      Patterns:
      Since: 2.4
      Reverses given list.
      Examples:
      set {_list::*} to reversed {_list::*}
      Rounding 🔗
      Patterns:
      • [(a|the)] round[ed] down %number%
      • [(a|the)] round[ed] %number%
      • [(a|the)] round[ed] up %number%
      Since: 2.0
      Rounds numbers normally, up (ceiling) or down (floor) respectively.
      Examples:
      set {var} to rounded health of player
      set line 1 of the block to rounded "%(1.5 * player's level)%"
      add rounded down argument to the player's health
      Saturation 🔗
      Patterns:
      Since: 2.2-Fixes-v10, 2.2-dev35 (fully modifiable)
      The saturation of a player. If used in a player event, it can be omitted and will default to event-player.
      Examples:
      set saturation of player to 20
      Scoreboard Tags 🔗
      Patterns:
      • [(all [[of] the]|the)] scoreboard tags of %entities%
      • %entities%'[s] scoreboard tags
      Since: 2.3
      Scoreboard tags are simple list of texts stored directly in the data of an entity. 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. 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.

      Requires Minecraft 1.11+ (actually added in 1.9 to the game, but added in 1.11 to Spigot).

      Examples:
      on spawn of a monster:
          if the spawn reason is mob spawner:
              add "spawned by a spawner" to the scoreboard tags of event-entity

      on death of a monster:
          if the attacker is a player:
              if the victim doesn't have the scoreboard tag "spawned by a spawner":
                  add 1$ to attacker's balance
      Script Name 🔗
      Patterns:
      • [the] script[['s] name]
      • name of [the] script
      Since: 2.0
      Usable in events: Script Load/Unload
      Holds the current script's name (the file name without '.sk').
      Examples:
      on script load:
          set {running::%script%} to true
      on script unload:
          set {running::%script%} to false
      Sea Level 🔗
      Patterns:
      Since: 2.5.1
      Gets the sea level of a world.
      Examples:
      send "The sea level in your world is %sea level in player's world%"
      Server Icon 🔗
      Patterns:
      • [the] [((default)|(shown|sent))] [server] icon
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Icon of the server in the server list. Can be set to an icon that loaded using the load server icon effect, or can be reset to the default icon in a server list ping. 'default server icon' returns the default server icon (server-icon.png) always and cannot be changed.
      Examples:
      on script load:
          set {server-icons::default} to the default server icon
      Shooter 🔗
      Patterns:
      Since: 1.3.7
      The shooter of a projectile.
      Examples:
      shooter is a skeleton
      Shuffled List 🔗
      Patterns:
      Since: 2.2-dev32
      Shuffles given list randomly. This is done by replacing indices by random numbers in resulting list.
      Examples:
      set {_list::*} to shuffled {_list::*}
      Sign Text 🔗
      Patterns:
      • [the] line %number% [of %block%]
      • [the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]
      Since: 1.3
      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).
      Examples:
      on rightclick on sign:
          line 2 of the clicked block is "[Heal]":
              heal the player
          set line 3 to "%player%"
      Slot Index 🔗
      Patterns:
      • [the] (index|indices) of %slots%
      • %slots%'[s] (index|indices)
      Since: 2.2-dev35
      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.
      Examples:
      if index of event-slot is 10:
          send "You bought a pie!"
      Sorted List 🔗
      Patterns:
      Since: 2.2-dev19
      Sorts given list in natural order. All objects in list must be comparable; if they're not, this expression will return nothing.
      Examples:
      set {_sorted::*} to sorted {_players::*}
      Spawn 🔗
      Patterns:
      • [the] spawn[s] [(point|location)[s]] [of %worlds%]
      • %worlds%'[s] spawn[s] [(point|location)[s]]
      Since: 1.4.2
      The spawn point of a world.
      Examples:
      teleport all players to spawn
      set the spawn point of "world" to the player's location
      Spawn Reason 🔗
      Patterns:
      • [the] spawn[ing] reason
      Since: 2.3
      The spawn reason in a spawn event.
      Examples:
      on spawn:
          spawn reason is reinforcements or breeding
      Spawner Type 🔗
      Patterns:
      • [the] (entity|creature) type[s] of %blocks%
      • %blocks%'[s] (entity|creature) type[s]
      Since: 2.4
      Retrieves, sets, or resets the spawner's entity type
      Examples:
      on right click:
          if event-block is spawner:
              send "Spawner's type is %target block's entity type%"
      Special Number 🔗
      Patterns:
      • (NaN|[(-|minus)](infinity|∞)) value
      • value of (NaN|[(-|minus)](infinity|∞))
      Since: 2.2-dev32d
      Special number values, namely NaN, Infinity and -Infinity
      Examples:
      if {_number} is NaN value:
      Speed 🔗
      Patterns:
      • [the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%
      • %players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed
      Since: unknown (before 2.1)
      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. Please note that changing a player's speed will change their FOV just like potions do.
      Examples:
      set the player's walk speed to 1
      increase the argument's fly speed by 0.1
      Subtext 🔗
      Patterns:
      • [the] [(part|sub[ ](text|string)) of %texts% (between|from) (ind(ex|ices)|character[s])] %number% [(and|to) (index|character)] %number%
      • [the] (first|last) [%number%] character[s] of %texts%
      • [the] %number% (first|last) characters of %texts%
      • [the] character[s] at [(index|position|indexes|indices|positions)] %numbers% (in|of) %texts%
      Since: 2.1, 2.5.2 (character at, multiple strings support)
      Extracts part of a text. You can either get the first <x> characters, the last <x> characters, the character at index <x>, 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).
      Examples:
      set {_s} to the first 5 characters of the text argument
      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
      set {_characters::*} to characters at 1, 2 and 7 in player's display name
      send the last character of all players' names
      TPS (ticks per second) 🔗
      Patterns:
      • tps from [the] last ([1] minute|1[ ]m[inute])
      • tps from [the] last 5[ ]m[inutes]
      • tps from [the] last 15[ ]m[inutes]
      • [the] tps
      Since: 2.2-dev36
      Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software (PaperSpigot).
      Examples:
      broadcast "%tps%"
      Tamer 🔗
      Patterns:
      • [the] tamer
      Since: 2.2-dev25
      The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself.
      Examples:
      on tame:
          if the tamer is a player:
              send "someone tamed something!" to console
      Target 🔗
      Patterns:
      Since: unknown (before 2.1)
      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).
      Examples:
      on entity target:
          entity's target is a player
          send "You're being followed by an %entity%!" to target of entity
      Targeted Block 🔗
      Patterns:
      • [the] target[ed] block[s] [of %players%]
      • %players%'[s] target[ed] block[s]
      • [the] actual[ly] target[ed] block[s] [of %players%]
      • %players%'[s] actual[ly] target[ed] block[s]
      Since: 1.0
      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.
      Examples:
      # A command to set the block a player looks at to a specific type:
      command /setblock :
          trigger:
              set targeted block to argument
      Teleport Cause 🔗
      Patterns:
      • [the] teleport (cause|reason|type)
      Since: 2.2-dev35
      The teleport cause within a player teleport event.
      Examples:
      on teleport
          teleport cause is nether portal, end portal or end gateway
      Temperature 🔗
      Patterns:
      • [the] temperature[s] of %blocks%
      • %blocks%'[s] temperature[s]
      Since: 2.2-dev35
      Temperature at given block.
      Examples:
      message "%temperature of the targeted block%"
      Ternary 🔗
      Patterns:
      Since: 2.2-dev36
      A shorthand expression for returning something based on a condition.
      Examples:
      set {points} to 500 if {admin::%player's uuid%} is set else 100
      Time 🔗
      Patterns:
      • [the] time[s] [([with]in|of) %worlds%]
      • %worlds%'[s] time[s]
      Since: 1.0
      The time of a world.
      Examples:
      time in world is between 18:00 and 6:00:
          broadcast "It's night-time, watch out for monsters!"
      Time Played 🔗
      Patterns:
      Since: 2.5
      The amount of time a player has played for on the server. This info is stored in the player's statistics in the main world's data folder. Changing this will also change the player's stats which can be views in the client's statistics menu.
      Examples:
      set {_t} to time played of player
      if player's time played is greater than 10 minutes:
          give player a diamond sword
      set player's time played to 0 seconds
      Time Since 🔗
      Patterns:
      • [the] time since %dates%
      Since: 2.5
      The time that has passed since a date. If the given date is in the future, a value will not be returned.
      Examples:
      send "%time since 5 minecraft days ago% has passed since 5 minecraft days ago!" to player
      Tool 🔗
      Patterns:
      • [the] ((tool|held item|weapon)|(off[ ]hand (tool|item))) [of %living entities%]
      • %living entities%'[s] ((tool|held item|weapon)|(off[ ]hand (tool|item)))
      Since: 1.0
      The item an entity is holding in their main or off hand.
      Examples:
      player's tool is a pickaxe
      player's off hand tool is a shield
      set tool of all players to a diamond sword
      set offhand tool of target entity to a bow
      Type of 🔗
      Patterns:
      Since: 1.4, 2.5.2 (potion effect)
      Type of a block, item, entity, inventory or potion effect. Types of items and blocks are item types similar to them but have amounts of one, no display names and, on Minecraft 1.13 and newer versions, are undamaged. Types of entities and inventories are entity types and inventory types known to Skript. Types of potion effects are potion effect types.
      Examples:
      on rightclick on an entity:
          message "This is a %type of clicked entity%!"
      UUID 🔗
      Patterns:
      Since: 2.1.2, 2.2 (offline players' UUIDs), 2.2-dev24 (other entities' UUIDs)
      The UUID of a player, entity or world. 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. Please note that this expression does not work for offline players if you are under 1.8!
      Examples:
      # prevents people from joining the server if they use the name of a player
      # who has played on this server at least once since this script has been added
      on login:
          if {uuid::%name of player%} exists:
              {uuid::%name of player%} is not uuid of player
              kick player due to "Someone with your name has played on this server before"
          else:
              set {uuid::%name of player%} to uuid of player
      Unbreakable Items 🔗
      Patterns:
      Since: 2.2-dev13b
      Creates unbreakable copies of given items.
      Examples:
      unbreakable iron sword #Creates unbreakable iron sword
      Unix Date 🔗
      Patterns:
      Since: 2.5
      Converts given Unix timestamp to a date. The Unix timespan represents the number of seconds elapsed since 1 January 1970.
      Examples:
      unix date of 946684800 #1 January 2000 12:00 AM (UTC Time)
      Unix Timestamp 🔗
      Patterns:
      • [the] unix timestamp of %dates%
      • %dates%'[s] unix timestamp
      Since: 2.2-dev31
      Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970.
      Examples:
      unix timestamp of now
      Vectors - Angle Between 🔗
      Patterns:
      Since: 2.2-dev28
      Gets the angle between two vectors.
      Examples:
      send "%the angle between vector 1, 0, 0 and vector 0, 1, 1%"
      Vectors - Arithmetic 🔗
      Patterns:
      Since: 2.2-dev28
      Arithmetic expressions for vectors.
      Examples:
      set {_v} to vector 1, 2, 3 // 5
      set {_v} to {_v} ++ {_v}
      set {_v} to {_v} ++ 5
      set {_v} to {_v} -- {_v}
      set {_v} to {_v} -- 5
      set {_v} to {_v} ** {_v}
      set {_v} to {_v} ** 5
      set {_v} to {_v} // {_v}
      set {_v} to {_v} // 5
      Vectors - Create from XYZ 🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector from x, y and z values.
      Examples:
      set {_v} to vector 0, 1, 0
      Vectors - Cross Product 🔗
      Patterns:
      Since: 2.2-dev28
      Gets the cross product between two vectors.
      Examples:
      send "%vector 1, 0, 0 cross vector 0, 1, 0%"
      Vectors - Cylindrical Shape 🔗
      Patterns:
      • [a] [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%
      Since: 2.2-dev28
      Forms a 'cylindrical shaped' vector using yaw to manipulate the current point.
      Examples:
      loop 360 times:
          set {_v} to cylindrical vector radius 1, yaw loop-value, height 2
      set {_v} to cylindrical vector radius 1, yaw 90, height 2
      Vectors - Dot Product 🔗
      Patterns:
      Since: 2.2-dev28
      Gets the dot product between two vectors.
      Examples:
      set {_v} to {_v2} dot {_v3}
      Vectors - Length 🔗
      Patterns:
      • [the] (vector|standard|normal) length[s] of %vectors%
      • %vectors%'[s] (vector|standard|normal) length[s]
      Since: 2.2-dev28
      Gets or sets the length of a vector.
      Examples:
      send "%standard length of vector 1, 2, 3%"
      set {_v} to vector 1, 2, 3
      set standard length of {_v} to 2
      send "%standard length of {_v}%"
      Vectors - Location Vector Offset 🔗
      Patterns:
      Since: 2.2-dev28
      Returns the location offset by vectors.
      Examples:
      set {_loc} to {_loc} ~ {_v}
      Vectors - Normalized 🔗
      Patterns:
      Since: 2.2-dev28
      Returns the same vector but with length 1.
      Examples:
      set {_v} to normalized {_v}
      Vectors - Random Vector 🔗
      Patterns:
      • [a] random vector
      Since: 2.2-dev28
      Creates a random vector.
      Examples:
      set {_v} to a random vector
      Vectors - Spherical Shape 🔗
      Patterns:
      • [new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%
      Since: 2.2-dev28
      Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point.
      Examples:
      loop 360 times:
          set {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value
      set {_v} to spherical vector radius 1, yaw 45, pitch 90
      Vectors - Squared Length 🔗
      Patterns:
      • [the] squared length[s] of %vectors%
      • %vectors%'[s] squared length[s]
      Since: 2.2-dev28
      Gets the squared length of a vector.
      Examples:
      send "%squared length of vector 1, 2, 3%"
      Vectors - Vector Between Locations 🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector between two locations.
      Examples:
      set {_v} to vector between {_loc1} and {_loc2}
      Vectors - Vector from Location 🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector from a location.
      Examples:
      set {_v} to vector of {_loc}
      Vectors - Vector from Pitch and Yaw 🔗
      Patterns:
      • [a] [new] vector (from|with) yaw %number% and pitch %number%
      Since: 2.2-dev28
      Creates a vector from a yaw and pitch value.
      Examples:
      set {_v} to vector from yaw 45 and pitch 45
      Vectors - Velocity 🔗
      Patterns:
      Since: 2.2-dev31
      Gets or changes velocity of an entity.
      Examples:
      set player's velocity to {_v}
      Vectors - XYZ Component 🔗
      Patterns:
      • [the] [vector] (x|y|z) [component[s]] of %vectors%
      • %vectors%'[s] [vector] (x|y|z) [component[s]]
      Since: 2.2-dev28
      Gets or changes the x, y or z component of a vector.
      Examples:
      set {_v} to vector 1, 2, 3
      send "%x of {_v}%, %y of {_v}%, %z of {_v}%"
      add 1 to x of {_v}
      add 2 to y of {_v}
      add 3 to z of {_v}
      send "%x of {_v}%, %y of {_v}%, %z of {_v}%"
      set x component of {_v} to 1
      set y component of {_v} to 2
      set z component of {_v} to 3
      send "%x component of {_v}%, %y component of {_v}%, %z component of {_v}%"
      Vehicle 🔗
      Patterns:
      Since: 2.0
      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. See also: passenger
      Examples:
      vehicle of the player is a minecart
      Version 🔗
      Patterns:
      • ([craft]bukkit|minecraft|skript)( |-)version
      Since: 2.0
      The version of Bukkit, Minecraft or Skript respectively.
      Examples:
      message "This server is running Minecraft %minecraft version% on Bukkit %bukkit version%"
      message "This server is powered by Skript %skript version%"
      Version String 🔗
      Patterns:
      • [the] [(shown|custom)] version [(string|text)]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      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. This can only be set in a server list ping event.
      Examples:
      on server list ping:
          set the protocol version to 0 # 13w41a (1.7), so it will show the version string always
          set the version string to "Version: %minecraft version%"
      View Distance of Client 🔗
      Patterns:
      • [the] client view distance[s] of %players%
      • %players%'[s] client view distance[s]
      Since: 2.5
      Requirements: 1.13.2+
      The view distance of the client. Can not be changed. This differs from the server side view distance of player as this will retrieve the view distance the player has set on their client.
      Examples:
      set {_clientView} to the client view distance of player
      set view distance of player to client view distance of player
      Weather 🔗
      Patterns:
      Since: 1.0
      Usable in events: weather change
      The weather in the given or the current world.
      Examples:
      set weather to clear
      weather in "world" is rainy
      Whitelist 🔗
      Patterns:
      • [the] white[ ]list
      Since: 2.5.2
      A server's whitelist.This expression can be used to add/remove players to/from the whitelist, to enable it and disable it (set whitelist to true / set whitelist to false), and to empty it (reset whitelist)
      Examples:
      set whitelist to false
      add all players to whitelist
      reset the whitelist
      World 🔗
      Patterns:
      Since: 1.0
      The world the event occurred in.
      Examples:
      world is "world_nether"
      teleport the player to the world's spawn
      set the weather in the player's world to rain
      World Seed 🔗
      Patterns:
      Since: 2.2-dev35
      The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration.
      Examples:
      broadcast "Seed: %seed of player's world%"
      Worlds 🔗
      Patterns:
      • [(all [[of] the]|the)] worlds
      Since: 1.0
      All worlds of the server, useful for looping.
      Examples:
      loop all worlds:
          broadcast "You're in %loop-world%" to loop-world
      X of Item 🔗
      Patterns:
      Since: 1.2
      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.
      Examples:
      give level of player of pickaxes to the player
      Yaw / Pitch 🔗
      Patterns:
      Since: 2.0, 2.2-dev28 (vector yaw/pitch)
      The yaw or pitch of a location or vector.
      Examples:
      log "%player%: %location of player%, %player's yaw%, %player's pitch%" to "playerlocs.log"
      set {_yaw} to yaw of player
      set {_p} to pitch of target entity
      \ No newline at end of file + Skript Documentation - 2.6-beta3

      Expressions

      Absorbed blocks

      🔗
      Patterns:
      • [the] absorbed blocks
      Since: 2.5
      Usable in events: sponge absorb
      The blocks absorbed by a sponge block.

      Examples:

      the absorbed blocks

      Affected Entities

      🔗
      Patterns:
      • [the] affected entities
      Since: 2.4
      The affected entities in the area cloud effect event.

      Examples:

      on area cloud effect:
          loop affected entities:
              if loop-value is a player:
                  send "WARNING: you've step on an area effect cloud!" to loop-value

      All Groups

      🔗
      Patterns:
      • all groups
      Since: 2.2-dev35
      Requirements: Vault, a permission plugin that supports Vault
      All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed.

      Examples:

      command /group <text>:
          trigger:
              if argument is "list":
                  send "%all groups%"

      All Permissions

      🔗
      Patterns:
      • [(all [[of] the]|the)] permissions (from|of) %players%
      • [(all [[of] the]|the)] %players%'[s] permissions
      Since: 2.2-dev33
      Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions.

      Examples:

      set {_permissions::*} to all permissions of the player

      All Scripts

      🔗
      Patterns:
      • [all [of the]] scripts [(without ([subdirectory] paths|parents))]
      • [all [of the]] (enabled|loaded) scripts [(without ([subdirectory] paths|parents))]
      • [all [of the]] (disabled|unloaded) scripts [(without ([subdirectory] paths|parents))]
      Since: 2.5
      Returns all of the scripts, or just the enabled or disabled ones.

      Examples:

      command /scripts:
          trigger:
              send "All Scripts: %scripts%" to player
              send "Loaded Scripts: %enabled scripts%" to player
              send "Unloaded Scripts: %disabled scripts%" to player

      All commands

      🔗
      Patterns:
      • [(all|the|all [of] the)] [registered] [(script)] commands
      Since: 2.6
      Returns all registered commands or all script commands.

      Examples:

      send "Number of all commands: %size of all commands%"
      send "Number of all script commands: %size of all script commands%"

      Alphabetical Sort

      🔗
      Patterns:
      • alphabetically sorted %texts%
      Since: 2.2-dev18b
      Sorts given strings in alphabetical order.

      Examples:

      set {_list::*} to alphabetically sorted {_strings::*}

      Altitude

      🔗
      Patterns:
      Since: 1.4.3
      Effectively an alias of 'y-coordinate of …', it represents the height of some object above bedrock.

      Examples:

      on damage:
          altitude of the attacker is higher than the altitude of the victim
          set damage to damage * 1.2

      Amount

      🔗
      Patterns:
      • (amount|number|size) of %objects%
      • recursive (amount|number|size) of %objects%
      Since: 1.0
      The amount of something. 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.

      Also, you can get the recursive size of a list, which will return the recursive size of the list with sublists included, e.g.

       {list::*} Structure
      ├──── {list::1}: 1
      ├──── {list::2}: 2
      │ ├──── {list::2::1}: 3
      │ │ └──── {list::2::1::1}: 4
      │ └──── {list::2::2}: 5
      └──── {list::3}: 6

      Where using %size of {list::*}% will only return 3 (the first layer of indices only), while %recursive size of {list::*}% will return 6 (the entire list) Please note that getting a list's recursive size can cause lag if the list is large, so only use this expression if you need to!

      Examples:

      message "There are %number of all players% players online!"

      Amount of Items

      🔗
      Patterns:
      Since: 2.0
      Counts how many of a particular item type are in a given inventory.

      Examples:

      message "You have %number of ores in the player's inventory% ores in your inventory."

      Applied Enchantments

      🔗
      Patterns:
      • [the] applied enchant[ment]s
      Since: 2.5
      Usable in events: enchant
      The applied enchantments in an enchant event. Deleting or removing the applied enchantments will prevent the item's enchantment.

      Examples:

      on enchant:
          set the applied enchantments to sharpness 10 and fire aspect 5

      Argument

      🔗
      Patterns:
      • [the] last arg[ument][s]
      • [the] arg[ument][s](-| )<(\d+)>
      • [the] <(\d*1)st|(\d*2)nd|(\d*3)rd|(\d*[4-90])th> arg[ument][s]
      • [the] arg[ument][s]
      • [the] %*type%( |-)arg[ument][( |-)<\d+>]
      • [the] arg[ument]( |-)%*type%[( |-)<\d+>]
      Since: 1.0
      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!". 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'.

      Examples:

      give the item-argument to the player-argument
      damage the player-argument by the number-argument
      give a diamond pickaxe to the argument
      add argument 1 to argument 2
      heal the last argument

      Arithmetic

      🔗
      Patterns:
      Since: 1.4.2
      Arithmetic expressions, e.g. 1 + 2, (health of player - 2) / 3, etc.

      Examples:

      set the player's health to 10 - the player's health
      loop (argument + 2) / 5 times:
          message "Two useless numbers: %loop-num * 2 - 5%, %2^loop-num - 1%"
      message "You have %health of player * 2% half hearts of HP!"

      Armour Slot

      🔗
      Patterns:
      • [the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%
      • %living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]
      Since: 1.0
      A part of a player's armour, i.e. the boots, leggings, chestplate or helmet.

      Examples:

      set chestplate of the player to a diamond chestplate
      helmet of player is neither a helmet nor air # player is wearing a block, e.g. from another plugin

      Arrow Knockback Strength

      🔗
      Patterns:
      Since: 2.5.1
      An arrow's knockback strength.

      Examples:

      on shoot:
          event-projectile is an arrow
          set arrow knockback strength of event-projectile to 10

      Arrows Stuck

      🔗
      Patterns:
      Since: 2.5
      The number of arrows stuck in a living entity.

      Examples:

      set arrows stuck in player to 5

      Attacked

      🔗
      Patterns:
      • [the] (attacked|damaged|victim) [<(.+)>]
      Since: 1.3
      Usable in events: damage, death
      The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie.

      Examples:

      on damage:
          victim is a creeper
          damage the attacked by 1 heart

      Attacker

      🔗
      Patterns:
      • [the] (attacker|damager)
      Since: 1.3
      Usable in events: damage, death, destroy
      The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player. 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.

      Examples:

      on damage:
          attacker is a player
          health of attacker is less than or equal to 2
          damage victim by 1 heart

      Bed

      🔗
      Patterns:
      • [the] bed[s] [location[s]] of %players%
      • %players%'[s] bed[s] [location[s]]
      Since: 2.0
      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.

      Examples:

      bed of player exists:
          teleport player the the player's bed
      else:
          teleport the player to the world's spawn point

      Biome

      🔗
      Patterns:
      Since: 1.4.4
      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.

      Examples:

      # damage player in deserts constantly
      every real minute:
          loop all players:
              biome at loop-player is desert
              damage the loop-player by 1

      Block

      🔗
      Patterns:
      • [the] [event-]block
      Since: 1.0
      The block involved in the event, e.g. the clicked block or the placed block. Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.

      Examples:

      block is ore
      set block below to air
      spawn a creeper above the block
      loop blocks in radius 4:
          loop-block is obsidian
          set loop-block to water
      block is a chest:
          clear the inventory of the block

      Block

      🔗
      Patterns:
      Since: 1.0
      The block involved in the event, e.g. the clicked block or the placed block. Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.

      Examples:

      block is ore
      set block below to air
      spawn a creeper above the block
      loop blocks in radius 4:
          loop-block is obsidian
          set loop-block to water
      block is a chest:
          clear the inventory of the block

      Block Data

      🔗
      Patterns:
      Since: 2.5, 2.5.2 (set)
      Requirements: Minecraft 1.13+
      Get the block data associated with a block. This data can also be used to set blocks.

      Examples:

      set {data} to block data of target block
      set block at player to {data}
      set block data of target block to oak_stairs[facing=south;waterlogged=true]

      Block Hardness

      🔗
      Patterns:
      Since: 2.6
      Requirements: Minecraft 1.13+
      Obtains the block's hardness level (also known as "strength"). This number is used to calculate the time required to break each block.

      Examples:

      set {_hard} to block hardness of target block
      if block hardness of target block > 5:

      Block Sphere

      🔗
      Patterns:
      • [(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]
      • [(all [[of] the]|the)] blocks around %location% in radius %number%
      Since: 1.0
      All blocks in a sphere around a center, mostly useful for looping.

      Examples:

      loop blocks in radius 5 around the player:
          set loop-block to air

      Blocks

      🔗
      Patterns:
      Since: 1.0, 2.5.1 (within/cuboid/chunk)
      Blocks relative to other blocks or between other blocks. Can be used to get blocks relative to other blocks or for looping. Blocks from/to and between will return a straight line whereas blocks within will return a cuboid.

      Examples:

      loop blocks above the player:
      loop blocks between the block below the player and the targeted block:
      set the blocks below the player, the victim and the targeted block to air
      set all blocks within {loc1} and {loc2} to stone
      set all blocks within chunk at player to air

      Blocks in Region

      🔗
      Patterns:
      • [(all|the)] blocks (in|of) [[the] region[s]] %regions%
      Since: 2.1
      All blocks in a region. This expression requires a supported regions plugin to be installed.

      Examples:

      loop all blocks in the region {arena.%{faction.%player%}%}:
          clear the loop-block

      Book Author

      🔗
      Patterns:
      • [the] [book] (author|writer|publisher) of %item types%
      • %item types%'[s] [book] (author|writer|publisher)
      Since: 2.2-dev31
      The author of a book.

      Examples:

      on book sign:
          message "Book Title: %author of event-item%"

      Book Pages

      🔗
      Patterns:
      Since: 2.2-dev31
      The pages of a book.

      Examples:

      on book sign:
          message "Book Pages: %pages of event-item%"
          message "Book Page 1: %page 1 of event-item%"

      Book Title

      🔗
      Patterns:
      Since: 2.2-dev31
      The title of a book.

      Examples:

      on book sign:
          message "Book Title: %title of event-item%"

      Burn/Cook Time

      🔗
      Patterns:
      • [the] burn[ing] time
      • [the] (burn|cook)[ing] time of %blocks%
      • %blocks%'[s] (burn|cook)[ing] time
      Since: 2.3
      The time a furnace takes to burn an item in a fuel burn event. Can also be used to change the burn/cook time of a placed furnace.

      Examples:

      on fuel burn:
          if fuel slot is coal:
              set burning time to 1 tick

      Case Text

      🔗
      Patterns:
      • %texts% in (upper|lower)[ ]case
      • (upper|lower)[ ]case %texts%
      • capitali(s|z)ed %texts%
      • %texts% in [(lenient|strict) ](proper|title)[ ]case
      • [(lenient|strict) ](proper|title)[ ]case %texts%
      • %texts% in [(lenient|strict) ]camel[ ]case
      • [(lenient|strict) ]camel[ ]case %texts%
      • %texts% in [(lenient|strict) ]pascal[ ]case
      • [(lenient|strict) ]pascal[ ]case %texts%
      • %texts% in [(lower|upper|capital|screaming)[ ]]snake[ ]case
      • [(lower|upper|capital|screaming)[ ]]snake[ ]case %texts%
      • %texts% in [(lower|upper|capital)[ ]]kebab[ ]case
      • [(lower|upper|capital)[ ]]kebab[ ]case %texts%
      Since: 2.2-dev16 (lowercase and uppercase), 2.5 (advanced cases)
      Copy of given text in Lowercase, Uppercase, Proper Case, camelCase, PascalCase, Snake_Case, and Kebab-Case

      Examples:

      "Oops!" in lowercase # oops!
      "oops!" in uppercase # OOPS!
      "hellO i'm steve!" in proper case # HellO I'm Steve!
      "hellO i'm steve!" in strict proper case # Hello I'm Steve!
      "spAwn neW boSs ()" in camel case # spAwnNeWBoSs()
      "spAwn neW boSs ()" in strict camel case # spawnNewBoss()
      "geneRate ranDom numBer ()" in pascal case # GeneRateRanDomNumBer()
      "geneRate ranDom numBer ()" in strict pascal case # GenerateRandomNumber()
      "Hello Player!" in snake case # Hello_Player!
      "Hello Player!" in lower snake case # hello_player!
      "Hello Player!" in upper snake case # HELLO_PLAYER!
      "What is your name?" in kebab case # What-is-your-name?
      "What is your name?" in lower kebab case # what-is-your-name?
      "What is your name?" in upper kebab case # WHAT-IS-YOUR-NAME?

      Chat Format

      🔗
      Patterns:
      • [the] (message|chat) format[ting]
      Since: 2.2-dev31
      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].

      Examples:

      set the chat format to "<yellow>[player]<light gray>: <green>[message]"

      Chat Recipients

      🔗
      Patterns:
      • [chat][( |-)]recipients
      Since: 2.2-Fixes-v7, 2.2-dev35 (clearing recipients)
      Recipients of chat events where this is called.

      Examples:

      chat recipients

      Chunk

      🔗
      Patterns:
      Since: 2.0
      The chunk a block, location or entity is in.

      Examples:

      add the chunk at the player to {protected chunks::*}

      Clicked Block/Entity/Inventory/Slot

      🔗
      Patterns:
      • [the] (clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action|clicked [enchant[ment]] button)
      Since: 1.0, 2.2-dev35 (more clickable things)
      Usable in events: click, inventory click
      The clicked block, entity, inventory, inventory slot, inventory click type or inventory action.

      Examples:

      message "You clicked on a %type of clicked entity%!"
      if the clicked block is a chest:
          show the inventory of the clicked block to the player

      Colour of

      🔗
      Patterns:
      Since: 1.2
      The colour of an item, can also be used to colour chat messages with "<%colour of ...%>this text is coloured!".

      Examples:

      on click on wool:
          message "This wool block is <%colour of block%>%colour of block%!"
          set the colour of the block to black

      Coloured / Uncoloured

      🔗
      Patterns:
      • (colo[u]r-|colo[u]red )%texts%
      • (format-|formatted )%texts%
      • (un|non)[-](colo[u]r-|colo[u]red |format-|formatted )%texts%
      Since: 2.0
      Parses <colour>s and, optionally, chat styles in a message or removes any colours and chat styles from the message. Parsing all chat styles requires this expression to be used in same line with the send effect.

      Examples:

      on chat:
          set message to coloured message # Safe; only colors get parsed
      command /fade <player>:
          trigger:
              set display name of the player-argument to uncoloured display name of the player-argument
      command /format <text>:
          trigger:
              message formatted text-argument # Safe, because we're sending to whoever used this command

      Command

      🔗
      Patterns:
      • [the] (full|complete|whole) command
      • [the] command [label]
      • [the] arguments
      Since: 2.0
      Usable in events: command
      The command that caused an 'on command' event (excluding the leading slash and all arguments)

      Examples:

      # prevent any commands except for the /exit command during some game
      on command:
          if {game::%player%::playing} is true:
              if the command is not "exit":
                  message "You're not allowed to use commands during the game"
                  cancel the event

      Command Info

      🔗
      Patterns:
      • [the] main command [label] of command %texts%
      • command %texts%'[s] main command [name]
      • [the] description of command %texts%
      • command %texts%'[s] description
      • [the] label of command %texts%
      • command %texts%'[s] label
      • [the] usage of command %texts%
      • command %texts%'[s] usage
      • [(all|the|all [of] the)] aliases of command %texts%
      • command %texts%'[s] aliases
      • [the] permission of command %texts%
      • command %texts%'[s] permission
      • [the] permission message of command %texts%
      • command %texts%'[s] permission message
      • [the] plugin [owner] of command %texts%
      • command %texts%'[s] plugin [owner]
      Since: 2.6
      Get information about a command.

      Examples:

      main name of command "skript"
      description of command "help"
      label of command "pl"
      usage of command "help"
      aliases of command "bukkit:help"
      permission of command "/op"
      command "op"'s permission message
      command "sk"'s plugin owner

      Command Sender

      🔗
      Patterns:
      • [the] [command['s]] (sender|executor)
      Since: 2.0
      Usable in events: command
      The player or the console who sent a command. Mostly useful in commands and command events. If the command sender is a command block, its location can be retrieved by using %block's location%

      Examples:

      make the command sender execute "/say hi!"
      on command:
          log "%executor% used command /%command% %arguments%" to "commands.log"

      Compass Target

      🔗
      Patterns:
      Since: 2.0
      The location a player's compass is pointing at.

      Examples:

      # make all player's compasses target a player stored in {compass::target::%player%}
      every 5 seconds:
          loop all players:
              set the loop-player's compass target to location of {compass::target::%%loop-player%}

      Console

      🔗
      Patterns:
      • [the] (console|server)
      Since: 1.3.1
      Represents the server's console which can receive messages and execute commands

      Examples:

      execute console command "/stop"
      send "message to console" to the console

      Cooldown Time/Remaining Time/Elapsed Time/Last Usage/Bypass Permission

      🔗
      Patterns:
      • [the] remaining [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] elapsed [time] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] ((cooldown|wait) time|[wait] time of [the] (cooldown|wait) [(of|for) [the] [current] command])
      • [the] last usage [date] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      • [the] [cooldown] bypass perm[ission] [of [the] (cooldown|wait) [(of|for) [the] [current] command]]
      Since: 2.2-dev33
      Only usable in command events. Represents the cooldown time, the remaining time, the elapsed time, the last usage date, or the cooldown bypass permission.

      Examples:

      command /home:
          cooldown: 10 seconds
          cooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time%.
          trigger:
              teleport player to {home::%player%}

      Coordinate

      🔗
      Patterns:
      • [the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%
      • %locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]
      Since: 1.4.3
      Represents a given coordinate of a location.

      Examples:

      player's y-coordinate is smaller than 40:
          message "Watch out for lava!"

      Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc.

      🔗
      Patterns:
      • [the] [event-]<.+>
      Since: 1.0
      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). 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'.

      Examples:

      give a diamond sword of sharpness 3 to the player
      kill the creeper
      kill all powered creepers in the wolf's world
      projectile is an arrow

      Cursor Slot

      🔗
      Patterns:
      Since: 2.2-dev17
      The item which the player has on their cursor. This slot is always empty if player has no inventories open.

      Examples:

      cursor slot of player is dirt
      set cursor slot of player to 64 diamonds

      Custom Chest Inventory

      🔗
      Patterns:
      • [a [new]] chest inventory (named|with name) %text% [with %number% row[s]]
      • [a [new]] chest inventory with %number% row[s] [(named|with name) %text%]
      Since: 2.2-dev34
      Returns a chest inventory with the given amount of rows and the name. Use the open inventory effect to open it.

      Examples:

      open chest inventory with 1 row named "test" to player
      set {_inventory} to chest inventory with 1 row

      Custom Model Data

      🔗
      Patterns:
      Since: 2.5
      Requirements: 1.14+
      Get/set the CustomModelData tag for an item. (Value is an integer between 0 and 99999999)

      Examples:

      set custom model data of player's tool to 3
      set {_model} to custom model data of player's tool

      Damage

      🔗
      Patterns:
      • [the] damage
      Since: 1.3.5
      Usable in events: damage
      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).

      Examples:

      increase the damage by 2

      Damage Cause

      🔗
      Patterns:
      • [the] damage (cause|type)
      Since: 2.0
      The damage cause of a damage event. Please click on the link for more information.

      Examples:

      damage cause is lava, fire or burning

      Damaged Item

      🔗
      Patterns:
      Since: 2.4
      Directly damages an item. In MC versions 1.12.2 and lower, this can be used to apply data values to items/blocks

      Examples:

      give player diamond sword with damage value 100
      set player's tool to diamond hoe damaged by 250
      give player diamond sword with damage 700 named "BROKEN SWORD"
      set {_item} to diamond hoe with damage value 50 named "SAD HOE"
      set target block of player to wool with data value 1
      set target block of player to potato plant with data value 7

      Data/Damage Value

      🔗
      Patterns:
      Since: 1.2
      The data/damage value of an item/block. Data values of blocks are only supported on 1.12.2 and below. 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.

      Examples:

      set damage value of player's tool to 10
      set data value of target block of player to 3
      add 1 to the data value of the clicked block
      reset data value of block at player

      Date Ago/Later

      🔗
      Patterns:
      Since: 2.2-dev33
      A date the specified timespan before/after another date.

      Examples:

      set {_yesterday} to 1 day ago

      Default Value

      🔗
      Patterns:
      Since: 2.2-dev36
      A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned.

      Examples:

      broadcast {score::%player's uuid%} otherwise "%player% has no score!"

      Difference

      🔗
      Patterns:
      Since: 1.4
      The difference between two values, e.g. numbers, dates or times.

      Examples:

      if difference between {command::%player%::lastuse} and now is smaller than a minute:
          message "You have to wait a minute before using this command again!"

      Difficulty

      🔗
      Patterns:
      • [the] difficult(y|ies) of %worlds%
      • %worlds%'[s] difficult(y|ies)
      Since: 2.3
      The difficulty of a world.

      Examples:

      set the difficulty of "world" to hard

      Direction

      🔗
      Patterns:
      • [%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%]
      • [%number% [(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% [(of|from)]
      • [%number% [(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) [(of|from)]
      • [%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])
      • [%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])
      Since: 1.0 (basic), 2.0 (extended)
      A helper expression for the direction type.

      Examples:

      thrust the player upwards
      set the block behind the player to water
      loop blocks above the player:
          set {_rand} to a random integer between 1 and 10
          set the block {_rand} meters south east of the loop-block to stone
      block in horizontal facing of the clicked entity from the player is air
      spawn a creeper 1.5 meters horizontally behind the player
      spawn a TNT 5 meters above and 2 meters horizontally behind the player
      thrust the last spawned TNT in the horizontal direction of the player with speed 0.2
      push the player upwards and horizontally forward at speed 0.5
      push the clicked entity in in the direction of the player at speed -0.5
      open the inventory of the block 2 blocks below the player to the player
      teleport the clicked entity behind the player
      grow a regular tree 2 meters horizontally behind the player

      Distance

      🔗
      Patterns:
      Since: 1.0
      The distance between two points.

      Examples:

      if the distance between the player and {home::%uuid of player%} is smaller than 20:
          message "You're very close to your home!"

      Drops

      🔗
      Patterns:
      • [the] drops
      Since: 1.0
      Usable in events: death
      Only works in 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.

      Examples:

      clear drops
      remove 4 planks from the drops

      Drops Of Block

      🔗
      Patterns:
      Since: 2.5.1
      Requirements: Minecraft 1.15+ ('as %entity%')
      A list of the items that will drop when a block is broken.

      Examples:

      on break of block:
          give drops of block using player's tool to player

      Element of

      🔗
      Patterns:
      • ([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%
      Since: 2.0
      The first, last or a random element of a set, e.g. a list variable. See also: random

      Examples:

      give a random element out of {free items::*} to the player

      Enchant Item

      🔗
      Patterns:
      • [the] enchant[ed] item
      Since: 2.5
      Usable in events: enchant prepare, enchant
      The enchant item in an enchant prepare event or enchant event. It can be modified, but enchantments will still be applied in the enchant event.

      Examples:

      on enchant:
          set the enchanted item to a diamond chestplate
      on enchant prepare:
          set the enchant item to a wooden sword

      Enchanting Experience Cost

      🔗
      Patterns:
      • [the] [displayed] ([e]xp[erience]|enchanting) cost
      Since: 2.5
      Usable in events: enchant
      The cost of enchanting in an enchant event. This is number that was displayed in the enchantment table, not the actual number of levels removed.

      Examples:

      on enchant:
          send "Cost: %the displayed enchanting cost%" to player

      Enchantment Bonus

      🔗
      Patterns:
      • [the] enchantment bonus
      Since: 2.5
      Usable in events: enchant prepare
      The enchantment bonus in an enchant prepare event. This represents the number of bookshelves affecting/surrounding the enchantment table.

      Examples:

      on enchant:
          send "There are %enchantment bonus% bookshelves surrounding this enchantment table!" to player

      Enchantment Level

      🔗
      Patterns:
      Since: 2.0
      The level of a particular enchantment on an item.

      Examples:

      player's tool is a sword of sharpness:
          message "You have a sword of sharpness %level of sharpness of the player's tool% equipped"

      Enchantment Offer

      🔗
      Patterns:
      • [all [of]] [the] enchant[ment] offers
      • enchant[ment] offer[s] %numbers%
      • [the] %number%(st|nd|rd|th) enchant[ment] offer
      Since: 2.5
      Usable in events: enchant prepare
      Requirements: 1.11 or newer
      The enchantment offer in enchant prepare events.

      Examples:

      on enchant prepare:
          send "Your enchantment offers are: %the enchantment offers%" to player

      Enchantment Offer Enchantment Cost

      🔗
      Patterns:
      Since: 2.5
      Requirements: 1.11 or newer
      The cost of an enchantment offer. This is displayed to the right of an enchantment offer. If the cost is changed, it will always be at least 1. This changes how many levels are required to enchant, but does not change the number of levels removed. To change the number of levels removed, use the enchant event.

      Examples:

      set cost of enchantment offer 1 to 50

      Ender Chest

      🔗
      Patterns:
      Since: 2.0
      The ender chest of a player.

      Examples:

      open the player's ender chest to the player

      Entities

      🔗
      Patterns:
      Since: 1.2.1, 2.5 (chunks)
      All entities in all worlds, in a specific world, in a chunk 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'.

      Examples:

      kill all creepers in the player's world
      send "Psst!" to all players within 100 meters of the player
      give a diamond to all ops
      heal all tamed wolves in radius 2000 around {town center}
      delete all monsters in chunk at player

      Entity AI

      🔗
      Patterns:
      Since: 2.5
      Returns whether an entity has AI.

      Examples:

      set artificial intelligence of target entity to false

      Entity Attribute

      🔗
      Patterns:
      Since: 2.5
      The numerical value of an entity's particular attribute. Note that the movement speed attribute cannot be reliably used for players. For that purpose, use the speed expression instead. Resetting an entity's attribute is only available in Minecraft 1.11 and above.

      Examples:

      on damage of player:
          send "You are wounded!"
          set victim's attack speed attribute to 2

      Entity Owner

      🔗
      Patterns:
      Since: 2.5
      The owner of a tameable entity, such as a horse or wolf.

      Examples:

      set owner of target entity to player
      delete owner of target entity
      set {_t} to uuid of tamer of target entity

      Exhaustion

      🔗
      Patterns:
      Since: 2.2-dev35
      The exhaustion of a player. This is mainly used to determine the rate of hunger depletion.

      Examples:

      set exhaustion of all players to 1

      Experience

      🔗
      Patterns:
      • [the] [(spawned|dropped)] [e]xp[erience] [orb[s]]
      Since: 2.1, 2.5.3 (block break event)
      Usable in events: experience spawn, break / mine
      How much experience was spawned in an experience spawn or block break event. Can be changed.

      Examples:

      on experience spawn:
          add 5 to the spawned experience
      on break of coal ore:
          clear dropped experience
      on break of diamond ore:
          if tool of player = diamond pickaxe:
              add 100 to dropped experience

      Exploded Blocks

      🔗
      Patterns:
      • [the] exploded blocks
      Since: 2.5
      Usable in events: explode
      Get all the blocks that were destroyed in an explode event

      Examples:

      on explode:
          loop exploded blocks:
              add loop-block to {exploded::blocks::*}

      Explosion Block Yield

      🔗
      Patterns:
      • [the] [explosion['s]] block (yield|amount)
      • [the] percentage of blocks dropped
      Since: 2.5
      Usable in events: explosion
      The percentage of exploded blocks dropped in an explosion event. When changing the yield, a value greater than 1 will function the same as using 1. Attempting to change the yield to a value less than 0 will have no effect.

      Examples:

      on explode:
      set the explosion's block yield to 10%

      Explosion Yield

      🔗
      Patterns:
      • [the] explosion (yield|radius|size)
      • [the] (yield|radius|size) of [the] explosion
      Since: 2.5
      Usable in events: explosion prime
      The yield of the explosion in an explosion prime event. This is how big the explosion is. When changing the yield, values less than 0 will be ignored. Read this wiki page for more information

      Examples:

      on explosion prime:
          set the yield of the explosion to 10

      Explosive Yield

      🔗
      Patterns:
      • [the] explosive (yield|radius|size) of %entities%
      • %entities%'[s] explosive (yield|radius|size)
      Since: 2.5
      Requirements: Minecraft 1.12 or newer for creepers
      The yield of an explosive (creeper, primed tnt, fireball, etc.). This is how big of an explosion is caused by the entity. Read this wiki page for more information

      Examples:

      on spawn of a creeper:
          set the explosive yield of the event-entity to 10

      Facing

      🔗
      Patterns:
      Since: 1.4
      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')

      Examples:

      # makes a bridge
      loop blocks from the block below the player in the horizontal facing of the player:
          set loop-block to cobblestone

      Fall Distance

      🔗
      Patterns:
      • [the] [the] fall[en] (distance|height) of %entities%
      • %entities%'[s] [the] fall[en] (distance|height)
      Since: 2.5
      The distance an entity has fallen for.

      Examples:

      set all entities' fall distance to 10
      on damage:
          send "%victim's fall distance%" to victim

      Fertilized Blocks

      🔗
      Patterns:
      • [all] [the] fertilized blocks
      Since: 2.5
      Usable in events: block fertilize
      Requirements: Minecraft 1.13 or newer
      The blocks fertilized in block fertilize events.

      Examples:

      the fertilized blocks

      Filter

      🔗
      Patterns:
      • %objects% (where|that match) \[<.+>\]
      Since: 2.2-dev36
      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.

      Examples:

      send "congrats on being staff!" to all players where [player input has permission "staff"]

      Filter Input

      🔗
      Patterns:
      • input
      • %*type% input
      Since: 2.2-dev36
      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.

      Examples:

      send "congrats on being staff!" to all players where [input has permission "staff"]

      Final Damage

      🔗
      Patterns:
      • [the] final damage
      Since: 2.2-dev19
      Usable in events: damage
      How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed.

      Examples:

      send "%final damage%" to victim

      Firework Effect

      🔗
      Patterns:
      • [(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors%
      • [(flickering|trailing|flickering trailing|trailing flickering)] %firework type% [firework [effect]] colo[u]red %colors% fad(e|ing) [to] %colors%
      Since: 2.4
      Represents a 'firework effect' which can be used in the launch firework effect.

      Examples:

      launch flickering trailing burst firework colored blue and green at player
      launch trailing flickering star coloured purple, yellow, blue, green and red fading to pink at target entity
      launch ball large coloured red, purple and white fading to light green and black at player's location with duration 1

      Flight Mode

      🔗
      Patterns:
      • [the] fl(y[ing]|ight) (mode|state) of %players%
      • %players%'[s] fl(y[ing]|ight) (mode|state)
      Since: 2.2-dev34
      Whether the player(s) are allowed to fly. Use Make Fly effect to force player(s) to fly.

      Examples:

      set flight mode of player to true
      send "%flying state of all players%"

      Food Level

      🔗
      Patterns:
      • [the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]
      • %player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]
      Since: 1.0
      The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar.

      Examples:

      set the player's food level to 10

      Formatted Time

      🔗
      Patterns:
      • %dates% formatted [human-readable] [(with|as) %text%]
      Since: 2.2-dev31
      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.

      Examples:

      now formatted human-readable

      Former/Future State

      🔗
      Patterns:
      • [the] (former|past|old) [state] [of] %~object%
      • %~object% before [the event]
      • [the] (future|to-be|new) [state] [of] %~object%
      • %~object%(-to-be| after[(wards| the event)])
      Since: 1.1
      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. Note: The past, future and present states of an expression are sometimes called 'time states' of an expression. 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.

      Examples:

      on teleport:
          former world was "world_nether" # or 'world was'
          world will be "world" # or 'world after the event is'
      on tool change:
          past tool is an axe
          the tool after the event will be air
      on weather change:
          set {weather::%world%::old} to past weather
          set {weather::%world%::current} to the new weather

      Furnace Slot

      🔗
      Patterns:
      • (fuel|result) [slot]
      • (ore|fuel|result)[s] [slot[s]] of %blocks%
      • %blocks%'[s] (ore|fuel|result)[s] [slot[s]]
      Since: 1.0
      Usable in events: smelt, fuel burn
      A slot of a furnace, i.e. either the ore, fuel or result slot. Remember to use 'block' and not 'furnace', as 'furnace' is not an existing expression.

      Examples:

      set the fuel slot of the clicked block to a lava bucket
      set the block's ore slot to 64 iron ore
      give the result of the block to the player
      clear the result slot of the block

      Game Mode

      🔗
      Patterns:
      Since: 1.0
      The gamemode of a player. (Gamemodes)

      Examples:

      player's gamemode is survival
      set the player's gamemode to creative

      Gamerule Value

      🔗
      Patterns:
      Since: 2.5
      Requirements: Minecraft 1.13+
      The gamerule value of a world.

      Examples:

      set the gamerule commandBlockOutput of world "world" to false

      Gliding State

      🔗
      Patterns:
      Since: 2.2-dev21
      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.

      Examples:

      set gliding of player to off

      Glowing

      🔗
      Patterns:
      Since: 2.2-dev18
      Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls.

      Examples:

      set glowing of player to true

      Gravity

      🔗
      Patterns:
      Since: 2.2-dev21
      If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag.

      Examples:

      set gravity of player off

      Group

      🔗
      Patterns:
      Since: 2.2-dev35
      Requirements: Vault, a permission plugin that supports Vault
      The primary group or all groups of a player. This expression requires Vault and a compatible permissions plugin to be installed.

      Examples:

      on join:
          broadcast "%group of player%" # this is the player's primary group
          broadcast "%groups of player%" # this is all of the player's groups

      Hash

      🔗
      Patterns:
      • %texts% hash[ed] with (MD5|SHA-256)
      Since: 2.0, 2.2-dev32 (SHA-256 algorithm)
      Hashes the given text using the MD5 or SHA-256 algorithms. Each algorithm is suitable for different use cases.

      MD5 is provided mostly for backwards compatibility, as it is outdated and not secure. SHA-256 is more secure, and can used to hash somewhat confidental data like IP addresses and even passwords. It is not that secure out of the box, so please consider using salt when dealing with passwords! When hashing data, you must specify algorithms that will be used for security reasons!

      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.

      Examples:

      command /setpass <text>:
          trigger:
              set {password::%uuid of player%} to text-argument hashed with SHA-256
      command /login <text>:
          trigger:
              if text-argument hashed with SHA-256 is {password::%uuid of player%}:
                  message "Login successful."
              else:
                  message "Wrong password!"

      Head location

      🔗
      Patterns:
      Since: 2.0
      The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight. 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.

      Examples:

      set the block at the player's head to air
      set the block in front of the player's eyes to glass
      loop blocks in front of the player's head:

      Heal Amount

      🔗
      Patterns:
      • [the] heal amount
      Since: 2.5.1
      Usable in events: heal
      The amount of health healed in a healing event.

      Examples:

      increase heal amount by 2
      remove 0.5 from heal amount

      Heal Reason

      🔗
      Patterns:
      • (regen|health regain|heal) (reason|cause)
      Since: 2.5
      The heal reason of a heal event. Please click on the link for more information.

      Examples:

      on heal:
          if heal reason = satiated:
              send "You ate enough food and gained health back!" to player

      Health

      🔗
      Patterns:
      Since: 1.0
      Usable in events: damage
      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).

      Examples:

      message "You have %health% HP left."

      Hidden Players

      🔗
      Patterns:
      • [(all [[of] the]|the)] hidden players (of|for) %players%
      • [(all [[of] the]|the)] players hidden (from|for|by) %players%
      Since: 2.3
      The players hidden from a player that were hidden using the player visibility effect.

      Examples:

      message "<light red>You are currently hiding: <light gray>%hidden players of the player%"

      Highest Solid Block

      🔗
      Patterns:
      • highest [(solid|non-air)] block at %locations%
      Since: 2.2-dev34
      Returns the highest solid block at the x and z coordinates of the world of a given location.

      Examples:

      highest block at location of arg-player

      Hotbar Button

      🔗
      Patterns:
      • [the] hotbar button
      Since: 2.5
      The hotbar button clicked in an inventory click event.

      Examples:

      on inventory click:
          send "You clicked the hotbar button %hotbar button%!"

      Hotbar Slot

      🔗
      Patterns:
      • [the] [([currently] selected|current)] hotbar slot of %players%
      • %players%'[s] [([currently] selected|current)] hotbar slot
      Since: 2.2-dev36
      The slot number of the currently selected hotbar slot.

      Examples:

      message "%player's current hotbar slot%"
      set player's selected hotbar slot to slot 4 of player

      Hover List

      🔗
      Patterns:
      • [the] [custom] [(player|server)] (hover|sample) ([message] list|message)
      • [the] [custom] player [(hover|sample)] list
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      The list when you hover on the player counts of the server in the server list. 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. 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.

      Examples:

      on server list ping:
          clear the hover list
          add "&aWelcome to the &6Minecraft &aserver!" to the hover list
          add "" to the hover list # A blank line
          add "&cThere are &6%online players count% &conline players!" to the hover list

      Humidity

      🔗
      Patterns:
      • [the] humidit(y|ies) of %blocks%
      • %blocks%'[s] humidit(y|ies)
      Since: 2.2-dev35
      Humidity of given blocks.

      Examples:

      set {_humidity} to event-block's humidity

      IP

      🔗
      Patterns:
      • IP[s][( |-)address[es]] of %players%
      • %players%'[s] IP[s][( |-)address[es]]
      • IP[( |-)address]
      Since: 1.4, 2.2-dev26 (when used in connect event), 2.3 (when used in server list ping event)
      The IP address of a player, or the connected player in a connect event, or the pinger in a server list ping event.

      Examples:

      ban the IP address of the player
      broadcast "Banned the IP %IP of player%"

      on connect:
          log "[%now%] %player% (%ip%) is connected to the server."

      on server list ping:
          send "%IP-address%" to the console

      Id

      🔗
      Patterns:
      Since: 1.0
      The id of a specific item. You usually don't need this expression as you can likely do everything with aliases.

      Examples:

      message "the ID of %type of the clicked block% is %id of the clicked block%."

      Index Of

      🔗
      Patterns:
      • [the] [(first|last)] index of %text% in %text%
      Since: 2.1
      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.

      Examples:

      set {_first} to the first index of "@" in the text argument
      if {_s} contains "abc":
          set {_s} to the first (index of "abc" in {_s} + 3) characters of {_s} # removes everything after the first "abc" from {_s}

      Indexes of List

      🔗
      Patterns:
      • [the] (indexes|indices) of %objects%
      • (all of the|all the|all) (indices|indexes) of %objects%
      Since: 2.4
      Returns all the indexes of a list variable

      Examples:

      set {l::*} to "some", "cool" and "values" broadcast "%all indexes of {l::*}%" # result is 1, 2 and 3

      Inventory

      🔗
      Patterns:
      • [the] inventor(y|ies) of %inventoryholders%
      • %inventoryholders%'[s] inventor(y|ies)
      Since: 1.0
      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.

      Examples:

      add a plank to the player's inventory
      clear the player's inventory
      remove 5 wool from the inventory of the clicked block

      Inventory Action

      🔗
      Patterns:
      • [the] inventory action
      Since: 2.2-dev16
      The inventory action of an inventory event. Please click on the link for more information.

      Examples:

      inventory action is pickup all

      Inventory Holder/Viewers/Rows/Slots

      🔗
      Patterns:
      • (holder[s]|viewers|[amount of] rows|[amount of] slots) of %inventories%
      • %inventories%'[s] (holder[s]|viewers|[amount of] rows|[amount of] slots)
      Since: 2.2-dev34, 2.5 (slots)
      Gets the amount of rows/slots, viewers and holder of an inventory.NOTE: 'Viewers' expression returns a list of players viewing the inventory. Note that a player is considered to be viewing their own inventory and internal crafting screen even when said inventory is not open.

      Examples:

      event-inventory's amount of rows
      holder of player's top inventory
      {_inventory}'s viewers

      Inventory Slot

      🔗
      Patterns:
      Since: 2.2-dev24
      Represents a slot in an inventory. It can be used to change the item in an inventory too.

      Examples:

      if slot 0 of player is air:
          set slot 0 of player to 2 stones
          remove 1 stone from slot 0 of player
          add 2 stones to slot 0 of player
          clear slot 1 of player

      Item

      🔗
      Patterns:
      • [the] item
      Since: unknown (before 2.1)
      The item involved in an event, e.g. in a drop, dispense, pickup or craft event.

      Examples:

      on dispense:
          item is a clock
          set the time to 6:00

      Item Amount

      🔗
      Patterns:
      Since: 2.2-dev24
      The amount of an item stack.

      Examples:

      send "You have got %item amount of player's tool% %player's tool% in your hand!" to player

      Item Enchantments

      🔗
      Patterns:
      Since: 2.2-dev36
      All the enchantments an item type has.

      Examples:

      clear enchantments of event-item

      Item of an Entity

      🔗
      Patterns:
      Since: 2.2-dev35, 2.2-dev36 (improved), 2.5.2 (throwable projectiles)
      Requirements: Minecraft 1.15.2+ (throwable projectiles)
      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. For throwable projectiles (snowballs, enderpearls etc.),it gets the displayed item. Other entities do not have items associated with them.

      Examples:

      Missing examples.

      Item with CustomModelData

      🔗
      Patterns:
      Since: 2.5
      Requirements: 1.14+
      Get an item with a CustomModelData tag. (Value is an integer between 0 and 99999999)

      Examples:

      give player a diamond sword with custom model data 2
      set slot 1 of inventory of player to wooden hoe with custom model data 357

      Item with Lore

      🔗
      Patterns:
      Since: 2.3
      Returns the given item type with the specified lore added to it. If multiple strings are passed, each of them will be a separate line in the lore.

      Examples:

      set {_test} to stone with lore "line 1" and "line 2"
      give {_test} to player

      Items

      🔗
      Patterns:
      • [(all [[of] the]|the|every)] item(s|[ ]types)
      • [(all [[of] the]|the)] items of type[s] %item types%
      • [(all [[of] the]|the|every)] block(s|[ ]types)
      • [(all [[of] the]|the)] blocks of type[s] %item types%
      Since: unknown (before 2.1)
      Items or blocks of a specific type, useful for looping.

      Examples:

      loop items of type ore and log:
          block contains loop-item
          message "Theres at least one %loop-item% in this block"
      drop all blocks at the player # drops one of every block at the player

      Items In

      🔗
      Patterns:
      • [(all [[of] the]|the)] items ([with]in|of|contained in|out of) [inventor(y|ies)] %inventories%
      Since: 2.0
      All items in an inventory. Useful for looping or storing in a list variable. Please note that the positions of the items in the inventory are not saved, only their order is preserved.

      Examples:

      loop all items in the player's inventory:
          loop-item is enchanted
          remove loop-item from the player
      set {inventory::%uuid of player%::*} to items in the player's inventory

      Join & Split

      🔗
      Patterns:
      • (concat[enate]|join) %texts% [(with|using|by) [[the] delimiter] %text%]
      • split %text% (at|using|by) [[the] delimiter] %text%
      • %text% split (at|using|by) [[the] delimiter] %text%
      • regex split %text% (at|using|by) [[the] delimiter] %text%
      • regex %text% split (at|using|by) [[the] delimiter] %text%
      Since: 2.1, 2.5.2 (regex support)
      Joins several texts with a common delimiter (e.g. ", "), or splits a text into multiple texts at a given delimiter.

      Examples:

      message "Online players: %join all players with "" | ""%" # %all players% would use the default "x, y, and z"
      set {_s::*} to the string argument split at ","

      Language

      🔗
      Patterns:
      • [the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%
      • %players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]
      Since: 2.3
      Currently selected game language of a player. The value of the language is not defined properly. The vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish.

      Examples:

      message player's current language

      Last Attacker

      🔗
      Patterns:
      • [the] last attacker of %entity%
      • %entity%'[s] last attacker
      Since: 2.5.1
      The last block or entity that attacked an entity.

      Examples:

      send "%last attacker of event-entity%"

      Last Color

      🔗
      Patterns:
      • [the] last color[s] of %texts%
      • %texts%'[s] last color[s]
      Since: 2.6
      The colors used at the end of a string. The colors of the returned string will be formatted with their symbols.

      Examples:

      set {_color} to the last colors of "heyyo"

      Last Damage

      🔗
      Patterns:
      Since: 2.5.1
      The last damage that was done to an entity. Note that changing it doesn't deal more/less damage.

      Examples:

      set last damage of event-entity to 2

      Last Damage Cause

      🔗
      Patterns:
      Since: 2.2-Fixes-V10
      Cause of last damage done to an entity

      Examples:

      set last damage cause of event-entity to fire tick

      Last Loaded Server Icon

      🔗
      Patterns:
      • [the] [last[ly]] loaded server icon
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Returns the last loaded server icon with the load server icon effect.

      Examples:

      set {server-icon} to the last loaded server icon

      Last Resource Pack Response

      🔗
      Patterns:
      • [the] [last] resource pack response[s] of %players%
      • %players%'[s] [last] resource pack response[s]
      Since: 2.4
      Requirements: Paper 1.9 or newer
      Returns the last resource pack response received from a player.

      Examples:

      if player's last resource pack response is deny or download fail:

      Last Spawned Entity

      🔗
      Patterns:
      • [the] [last[ly]] (spawned|shot) %*entity type%
      • [the] [last[ly]] dropped (item)
      Since: 1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item)
      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.

      Examples:

      spawn a priest
      set {healer::%spawned priest%} to true
      shoot an arrow from the last spawned entity
      ignite the shot projectile
      drop a diamond sword
      push last dropped item upwards

      Last/First Login Time

      🔗
      Patterns:
      Since: 2.5
      When a player last/first logged in the server. 'last login' requires paper to get the last login, otherwise it will get the last time they were seen on the server.

      Examples:

      command /onlinefor:
          trigger:
              send "You have been online for %difference between player's last login and now%."
              send "You first joined the server %difference between player's first login and now% ago."

      Leash Holder

      🔗
      Patterns:
      Since: 2.3
      The leash holder of a living entity.

      Examples:

      set {_example} to the leash holder of the target mob

      Length

      🔗
      Patterns:
      Since: 2.1
      The length of a text, in number of characters.

      Examples:

      set {_l} to length of the string argument

      Level

      🔗
      Patterns:
      Since: unknown (before 2.1)
      Usable in events: level change
      The level of a player.

      Examples:

      reduce the victim's level by 1
      set the player's level to 0

      Level Progress

      🔗
      Patterns:
      Since: 2.0
      Usable in events: level change
      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). 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 their progress was more than 50%.

      Examples:

      # use the exp bar as mana
      on rightclick with a blaze rod:
          player's level progress is larger than 0.2
          shoot a fireball from the player
          reduce the player's level progress by 0.2
      every 2 seconds:
          loop all players:
              level progress of loop-player is smaller than 0.9:
                  increase level progress of the loop-player by 0.1
              else:
                  set level progress of the loop-player to 0.99
      on xp spawn:
          cancel event

      Light Level

      🔗
      Patterns:
      Since: 1.3.4
      Gets the light level at a certain location which ranges from 0 to 15. 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.

      Examples:

      # set vampire players standing in bright sunlight on fire
      every 5 seconds:
          loop all players:
              {vampire::%uuid of loop-player%} is true
              sunlight level at the loop-player is greater than 10
              ignite the loop-player for 5 seconds

      Location

      🔗
      Patterns:
      • [the] [event-](location|position)
      Since: 2.0
      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).

      Examples:

      drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'
      set {_loc} to the location 1 meter above the player

      Location

      🔗
      Patterns:
      Since: 2.0
      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).

      Examples:

      drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'
      set {_loc} to the location 1 meter above the player

      Location

      🔗
      Patterns:
      Since: Unknown
      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). Please note that the location of an entity is at it's feet, use head location to get the location of the head.

      Examples:

      set {home::%uuid of player%} to the location of the player
      message "You home was set to %player's location% in %player's world%."

      Location At

      🔗
      Patterns:
      • [the] (location|position) [at] [\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\)] [[(in|of) [[the] world]] %world%]
      Since: 2.0
      Allows to create a location from three coordinates and a world.

      Examples:

      set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4
      distance between the player and the location (0, 0, 0) is less than 200

      Loop value

      🔗
      Patterns:
      • [the] loop-<.+>
      Since: 1.0
      The currently looped value.

      Examples:

      # countdown:
      loop 10 times:
          message "%11 - loop-number%"
          wait a second
      # generate a 10x10 floor made of randomly coloured wool below the player:
      loop blocks from the block below the player to the block 10 east of the block below the player:
          loop blocks from the loop-block to the block 10 north of the loop-block:
              set loop-block-2 to any wool

      Lore

      🔗
      Patterns:
      Since: 2.1
      An item's lore.

      Examples:

      set the 1st line of the item's lore to "<orange>Excalibur 2.0"

      MOTD

      🔗
      Patterns:
      • [the] [(default)|(shown|displayed)] (MOTD|message of [the] day)
      Since: 2.3
      The message of the day in the server list. This can be changed in a server list ping event only. 'default MOTD' returns the default MOTD always and can't be changed.

      Examples:

      on server list ping:
          set the motd to "Join now!"

      Max Durability

      🔗
      Patterns:
      Since: 2.5
      The maximum durability of an item.

      Examples:

      maximum durability of diamond sword
      if max durability of player's tool is not 0: # Item is damageable

      Max Health

      🔗
      Patterns:
      Since: 2.0
      Usable in events: damage, death
      The maximum health of an entity, e.g. 10 for a player.

      Examples:

      on join:
          set the maximum health of the player to 100
      spawn a giant
      set the last spawned entity's max health to 1000

      Max Minecart Speed

      🔗
      Patterns:
      • [the] max[imum] minecart (speed|velocity) of %entities%
      • %entities%'[s] max[imum] minecart (speed|velocity)
      Since: 2.5.1
      The maximum speed of a minecart.

      Examples:

      on right click on minecart:
          set max minecart speed of event-entity to 1

      Max Players

      🔗
      Patterns:
      • [the] [((real|default)|(fake|shown|displayed))] max[imum] player[s] [(count|amount|number|size)]
      • [the] [((real|default)|(fake|shown|displayed))] max[imum] (count|amount|number|size) of players
      Since: 2.3
      The count of max players. This can be changed in a server list ping event only. 'real max players' returns the real count of max players of the server always and can't be changed.

      Examples:

      on server list ping:
          set the max players count to (online players count + 1)

      Maximum Stack Size

      🔗
      Patterns:
      Since: 2.1
      The maximum stack size of the specified material, e.g. 64 for torches, 16 for buckets, and 1 for swords.

      Examples:

      send "You can only pick up %max stack size of player's tool% of %type of (player's tool)%" to player

      Me

      🔗
      Patterns:
      • me
      • my[self]
      Since: 2.1.1
      A 'me' expression that can be used in players' effect commands only.

      Examples:

      !heal me
      !kick myself
      !give a diamond axe to me

      Mending Repair Amount

      🔗
      Patterns:
      • [the] [mending] repair amount
      Since: 2.5.1
      The number of durability points an item is to be repaired in a mending event. Modifying the repair amount will affect how much experience is given to the player after mending.

      Examples:

      on item mend:
          set the mending repair amount to 100

      Message

      🔗
      Patterns:
      • [the] [chat( |-)]message
      • [the] (join|log[ ]in)( |-)message
      • [the] (quit|leave|log[ ]out|kick)( |-)message
      • [the] death( |-)message
      Since: 1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message)
      Usable in events: chat, join, quit, death
      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.

      Examples:

      on chat:
          player has permission "admin"
          set message to "&c%message%"

      on first join:
          set join message to "Welcome %player% to our awesome server!"

      on join:
          player has played before
          set join message to "Welcome back, %player%!"

      on quit:
          set quit message to "%player% left this awesome server!"

      on death:
          set the death message to "%player% died!"

      Metadata

      🔗
      Patterns:
      Since: 2.2-dev36
      Metadata is a way to store temporary data on entities, blocks and more that disappears after a server restart.

      Examples:

      set metadata value "healer" of player to true
      broadcast "%metadata value ""healer"" of player%"
      clear metadata value "healer" of player

      Minecart Derailed / Flying Velocity

      🔗
      Patterns:
      • [the] [minecart] (derailed|flying) velocity of %entities%
      • %entities%'[s] [minecart] (derailed|flying) velocity
      Since: 2.5.1
      The velocity of a minecart as soon as it has been derailed or as soon as it starts flying.

      Examples:

      on right click on minecart:
          set derailed velocity of event-entity to vector 2, 10, 2

      Money

      🔗
      Patterns:
      Since: 2.0, 2.5 (offline player support)
      Requirements: Vault, a permission plugin that supports Vault
      How much virtual money a player has (can be changed). This expression requires Vault and a compatible economy plugin to be installed.

      Examples:

      message "You have %player's money%" # the currency name will be added automatically
      remove 20$ from the player's balance # replace '$' by whatever currency you use
      add 200 to the player's account # or omit the currency alltogether

      Moved blocks

      🔗
      Patterns:
      • [the] moved blocks
      Since: 2.2-dev27
      Blocks which are moved in a piston event. Cannot be used outside of piston events.

      Examples:

      the moved blocks

      Name / Display Name / Tab List Name

      🔗
      Patterns:
      Since: before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)
      Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, block, inventory, or gamerule.

            
      • Players         
                      
        • Name: The Minecraft account name of the player. Can't be changed, but 'display name' can be changed.
        •             
        • Display Name: The name of the player that is displayed in messages. This name can be changed freely and can include colour codes, and is shared among all plugins (e.g. chat plugins will use the display name).
        •         
            
      •     
      • Entities         
                      
        • Name: The custom name of the entity. Can be changed. But for living entities, the players will have to target the entity to see its name tag. For non-living entities, the name will not be visible at all. To prevent this, use 'display name'.
        •             
        • Display Name: The custom name of the entity. Can be changed, which will also enable custom name visibility of the entity so name tag of the entity will be visible always.
        •         
            
      •     
      • Items         
                      
        • Name and Display Name: The custom name of the item (not the Minecraft locale name). Can be changed.
        •         
            
      •     
      • Inventories         
                      
        • Name and Display Name: The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers.
        •         
            
      •     
      • Gamerules (1.13+)         
                      
        • Name: The name of the gamerule. Cannot be changed.
        •         
            

      Examples:

      on join:
          player has permission "name.red"
          set the player's display name to "<red>[admin] <gold>%name of player%"
          set the player's tab list name to "<green>%player's name%"
      set the name of the player's tool to "Legendary Sword of Awesomeness"

      Name / Display Name / Tab List Name

      🔗
      Patterns:
      • [the] ((player|tab)[ ]list name[s]) of %players%
      • %players%'[s] ((player|tab)[ ]list name[s])
      Since: before 2.1, 2.2-dev20 (inventory name), 2.4 (non-living entity support, changeable inventory name)
      Represents the Minecraft account, display or tab list name of a player, or the custom name of an item, entity, block, inventory, or gamerule.

            
      • Players         
                      
        • Name: The Minecraft account name of the player. Can't be changed, but 'display name' can be changed.
        •             
        • Display Name: The name of the player that is displayed in messages. This name can be changed freely and can include colour codes, and is shared among all plugins (e.g. chat plugins will use the display name).
        •         
            
      •     
      • Entities         
                      
        • Name: The custom name of the entity. Can be changed. But for living entities, the players will have to target the entity to see its name tag. For non-living entities, the name will not be visible at all. To prevent this, use 'display name'.
        •             
        • Display Name: The custom name of the entity. Can be changed, which will also enable custom name visibility of the entity so name tag of the entity will be visible always.
        •         
            
      •     
      • Items         
                      
        • Name and Display Name: The custom name of the item (not the Minecraft locale name). Can be changed.
        •         
            
      •     
      • Inventories         
                      
        • Name and Display Name: The name/title of the inventory. Changing name of an inventory means opening the same inventory with the same contents but with a different name to its current viewers.
        •         
            
      •     
      • Gamerules (1.13+)         
                      
        • Name: The name of the gamerule. Cannot be changed.
        •         
            

      Examples:

      on join:
          player has permission "name.red"
          set the player's display name to "<red>[admin] <gold>%name of player%"
          set the player's tab list name to "<green>%player's name%"
      set the name of the player's tool to "Legendary Sword of Awesomeness"

      Named Item/Inventory

      🔗
      Patterns:
      Since: 2.0, 2.2-dev34 (inventories)
      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 name of <item/inventory> to <text>.

      Examples:

      give a diamond sword of sharpness 100 named "<gold>Excalibur" to the player
      set tool of player to the player's tool named "<gold>Wand"
      set the name of the player's tool to "<gold>Wand"
      open hopper inventory named "Magic Hopper" to player

      New Line

      🔗
      Patterns:
      • n[ew]l[ine]
      • line[ ]break
      Since: 2.5
      Returns a line break separator.

      Examples:

      send "Hello%nl%Goodbye!" to player

      No Damage Ticks

      🔗
      Patterns:
      Since: 2.5
      The number of ticks that an entity is invulnerable to damage for.

      Examples:

      on damage:
          set victim's invulnerability ticks to 20 #Victim will not take damage for the next second

      Now

      🔗
      Patterns:
      • now
      Since: 1.4
      The current system time of the server. Use time to get the Minecraft time of a world.

      Examples:

      broadcast "Current server time: %now%"

      Number of Characters

      🔗
      Patterns:
      • number of upper[ ]case char(acters|s) in %text%
      • number of lower[ ]case char(acters|s) in %text%
      • number of digit char(acters|s) in %text%
      Since: 2.5
      The number of uppercase, lowercase, or digit characters in a string.

      Examples:

      #Simple Chat Filter
      on chat:
          if number of uppercase chars in message / length of message > 0.5
              cancel event
              send "<red>Your message has to many caps!" to player

      Numbers

      🔗
      Patterns:
      • [(all [[of] the]|the)] (numbers|integers|decimals) (between|from) %number% (and|to) %number%
      Since: 1.4.6 (integers & numbers), 2.5.1 (decimals)
      All numbers between two given numbers, useful for looping. 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. You may also use 'decimals' if you want to use the decimal precision of the start number. You may want to use the 'times' expression instead, for instance 'loop 5 times:'

      Examples:

      loop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5
      loop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5
      loop decimals from 3.94 to 4: # loops 3.94, 3.95, 3.96, 3.97, 3.98, 3.99, 4

      Offline players

      🔗
      Patterns:
      • [(all [[of] the]|the)] offline[ ]players
      Since: 2.2-dev35
      All players that have ever joined the server. This includes the players currently online.

      Examples:

      send "Size of all players who have joined the server: %size of all offline players%"

      Online Player Count

      🔗
      Patterns:
      • [the] [((real|default)|(fake|shown|displayed))] [online] player (count|amount|number)
      • [the] [((real|default)|(fake|shown|displayed))] (count|amount|number|size) of online players
      Since: 2.3
      The amount of online players. This can be changed in a server list ping event only to show fake online player amount. 'real online player count' always returns the real count of online players and can't be changed.

      Fake online player count requires PaperSpigot 1.12.2+.

      Examples:

      on server list ping:
          # This will make the max players count 5 if there are 4 players online.
          set the fake max players count to (online players count + 1)

      Opened Inventory

      🔗
      Patterns:
      • [the] (current|open|top) inventory [of %players%]
      • %players%'[s] (current|open|top) inventory
      Since: 2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)
      Return the currently opened inventory of a player. If no inventory is open, it returns the own player's crafting inventory.

      Examples:

      set slot 1 of player's current inventory to diamond sword

      Parse

      🔗
      Patterns:
      Since: 2.0
      Parses text as a given type, or as a given pattern. 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. 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. Some notes about parsing with a pattern: - 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. - You have to save the expression's value in a list variable, e.g. set {parsed::*} to message parsed as "...". - 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}.

      Examples:

      set {var} to line 1 parsed as number
      on chat:
          set {var::*} to message parsed as "buying %items% for %money%"
          if parse error is set:
              message "%parse error%"
          else if {var::*} is set:
              cancel event
              remove {var::2} from the player's balance
              give {var::1::*} to the player

      Parse Error

      🔗
      Patterns:
      • [the] [last] [parse] error
      Since: 2.0
      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.

      Examples:

      set {var} to line 1 parsed as integer
      if {var} is not set:
          parse error is set:
              message "<red>Line 1 is invalid: %last parse error%"
          else:
              message "<red>Please put an integer on line 1!"

      Passenger

      🔗
      Patterns:
      Since: 2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)
      The passenger of a vehicle, or the rider of a mob. For 1.11.2 and above, it returns a list of passengers and you can use all changers in it. See also: vehicle

      Examples:

      #for 1.11 and lower
      passenger of the minecart is a creeper or a cow
      the saddled pig's passenger is a player
      #for 1.11.2+
      passengers of the minecart contains a creeper or a cow
      the boat's passenger contains a pig
      add a cow and a zombie to passengers of last spawned boat
      set passengers of player's vehicle to a pig and a horse
      remove all pigs from player's vehicle
      clear passengers of boat

      Ping

      🔗
      Patterns:
      Since: 2.2-dev36
      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).

      Examples:

      command /ping :
          trigger:
              send "%arg-1%'s ping is %arg-1's ping%"

      Plain Item

      🔗
      Patterns:
      Since: 2.6
      A plain item is an item with no modifications. It can be used to convert items to their default state or to match with other default items.

      Examples:

      if the player's tool is a plain diamond: # check if player's tool has no modifications
          send "You are holding a plain diamond!"

      Player List Header and Footer

      🔗
      Patterns:
      • [the] (player|tab)[ ]list (header|footer) [(text|message)] of %players%
      • %players%'[s] (player|tab)[ ]list (header|footer) [(text|message)]
      Since: 2.4
      Requirements: Minecraft 1.13 or newer
      The message above and below the player list in the tab menu.

      Examples:

      set all players' tab list header to "Welcome to the Server!"
      send "%the player's tab list header%" to player
      reset all players' tab list header

      Player Skull

      🔗
      Patterns:
      Since: 2.0
      Gets a skull item representing a player. Skulls for other entities are provided by the aliases.

      Examples:

      give the victim's skull to the attacker
      set the block at the entity to the entity's skull

      Player Weather

      🔗
      Patterns:
      • [the] [(client|custom)] weather of %players%
      • %players%'[s] [(client|custom)] weather
      Since: 2.2-dev34
      The weather for a player.

      Examples:

      set weather of arg-player to rainy
      reset player's weather
      if arg-player's weather is rainy

      Portal

      🔗
      Patterns:
      • [the] portal['s] blocks
      • [the] blocks of [the] portal
      Since: 2.4
      Usable in events: portal_create
      The blocks associated with a portal in the portal creation event.

      Examples:

      on portal creation:
          loop portal blocks:
              broadcast "%loop-block% is part of a portal!"

      Potion Effect

      🔗
      Patterns:
      • [new] potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]
      • [new] ambient potion effect of %potion% [potion] [[[of] tier] %number%] [(without particles)] [for %time span%]
      Since: 2.5.2
      Create a new potion effect to apply to an entity or item type. Do note that when applying potion effects to tipped arrows/lingering potions, Minecraft reduces the timespan.

      Examples:

      set {_p} to potion effect of speed of tier 1 without particles for 10 minutes
      add {_p} to potion effects of player's tool
      add {_p} to potion effects of target entity
      add potion effect of speed 1 to potion effects of player

      Potion Effects

      🔗
      Patterns:
      Since: 2.5.2
      Represents the active potion effects of entities and itemtypes. You can clear all potion effects of an entity/itemtype and add/remove a potion effect/type to/from an entity/itemtype. Do note you will not be able to clear the base potion effects of a potion item. In that case, just set the item to a water bottle. When adding a potion effect type (rather than a potion effect), it will default to 15 seconds with tier 1.

      Examples:

      set {_p::*} to active potion effects of player
      clear all the potion effects of player
      clear all the potion effects of player's tool
      add potion effects of player to potion effects of player's tool
      add speed to potion effects of target entity
      remove speed and night vision from potion effects of player

      Prefix/Suffix

      🔗
      Patterns:
      • [the] [chat] (prefix|suffix) of %players%
      • %players%'[s] [chat] (prefix|suffix)
      Since: 2.0
      The prefix or suffix as defined in the server's chat plugin.

      Examples:

      on chat:
          cancel event
          broadcast "%player's prefix%%player's display name%%player's suffix%: %message%" to the player's world
      set the player's prefix to "[<red>Admin] "

      Projectile Bounce State

      🔗
      Patterns:
      • [the] [the] projectile bounce (state|ability|mode) of %projectiles%
      • %projectiles%'[s] [the] projectile bounce (state|ability|mode)
      Since: 2.5.1
      A projectile's bounce state.

      Examples:

      on projectile hit:
          set projectile bounce mode of event-projectile to true

      Projectile Critical State

      🔗
      Patterns:
      • [the] [the] (projectile|arrow) critical (state|ability|mode) of %projectiles%
      • %projectiles%'[s] [the] (projectile|arrow) critical (state|ability|mode)
      Since: 2.5.1
      A projectile's critical state. The only currently accepted projectiles are arrows and tridents.

      Examples:

      on shoot:
          event-projectile is an arrow
          set projectile critical mode of event-projectile to true

      Protocol Version

      🔗
      Patterns:
      • [the] [(sent|required|fake)] protocol version [number]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      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. If this protocol version doesn't match with the protocol version of the client, the client will see the version string. 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), the version string will not be "Paper 1.9", it will still be "Paper 1.12.2". But then you can customize the version string as you wish. Also if the protocol version of the player is higher than protocol version of the server, it will say "Server out of date!", and if vice-versa "Client out of date!" when you hover on the ping bars.

      This can be set in a server list ping event only (increase and decrease effects cannot be used because that wouldn't make sense).

      Examples:

      on server list ping:
          set the version string to "<light green>Version: <orange>%minecraft version%"
          set the protocol version to 0 # 13w41a (1.7) - so the player will see the custom version string almost always

      Random

      🔗
      Patterns:
      Since: 1.4.9
      Gets a random item out of a set, e.g. a random player out of all players online.

      Examples:

      give a diamond to a random player out of all players
      give a random item out of all items to the player

      Random Number

      🔗
      Patterns:
      • [a] random (integer|number) (from|between) %number% (to|and) %number%
      Since: 1.4
      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. 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.

      Examples:

      set the player's health to a random number between 5 and 10
      send "You rolled a %random integer from 1 to 6%!" to the player

      Random UUID

      🔗
      Patterns:
      • [a] random uuid
      Since: 2.5.1
      Returns a random UUID.

      Examples:

      set {_uuid} to random uuid

      Raw Name

      🔗
      Patterns:
      Since: unknown (2.2)
      The raw Minecraft material name of the given item. Note that this is not guaranteed to give same results on all servers.

      Examples:

      raw name of tool of player

      Redstone Block Power

      🔗
      Patterns:
      • [the] redstone power of %blocks%
      • %blocks%'[s] redstone power
      Since: 2.5
      Power of a redstone block

      Examples:

      if redstone power of targeted block is 15:
          send "This block is very powerful!"

      Region

      🔗
      Patterns:
      • [the] [event-]region
      Since: 2.1
      The region involved in an event. This expression requires a supported regions plugin to be installed.

      Examples:

      on region enter:
          region is {forbidden region}
          cancel the event

      Region Members & Owners

      🔗
      Patterns:
      • [(all|the)] (members|owner[s]) of [[the] region[s]] %regions%
      • [[the] region[s]] %regions%'[s] (members|owner[s])
      Since: 2.1
      A list of members or owners of a region. This expression requires a supported regions plugin to be installed.

      Examples:

      on entering of a region:
          message "You're entering %region% whose owners are %owners of region%".

      Regions At

      🔗
      Patterns:
      Since: 2.1
      All regions at a particular location. This expression requires a supported regions plugin to be installed.

      Examples:

      On click on a sign:
          line 1 of the clicked block is "[region info]"
          set {_regions::*} to regions at the clicked block
          if {_regions::*} is empty:
              message "No regions exist at this sign."
          else:
              message "Regions containing this sign: <gold>%{_regions::*}%."

      Remaining Air

      🔗
      Patterns:
      Since: unknown (before 2.1)
      How much time a player has left underwater before starting to drown.

      Examples:

      player's remaining air is less than 3 seconds:
          send "hurry, get to the surface!" to the player

      Respawn location

      🔗
      Patterns:
      • [the] respawn location
      Since: 2.2-dev35
      The location that a player should respawn at. This is used within the respawn event.

      Examples:

      on respawn:
          set respawn location to {example::spawn}

      Reversed List

      🔗
      Patterns:
      Since: 2.4
      Reverses given list.

      Examples:

      set {_list::*} to reversed {_list::*}

      Rounding

      🔗
      Patterns:
      • [(a|the)] round[ed] down %number%
      • [(a|the)] round[ed] %number%
      • [(a|the)] round[ed] up %number%
      Since: 2.0
      Rounds numbers normally, up (ceiling) or down (floor) respectively.

      Examples:

      set {var} to rounded health of player
      set line 1 of the block to rounded "%(1.5 * player's level)%"
      add rounded down argument to the player's health

      Saturation

      🔗
      Patterns:
      Since: 2.2-Fixes-v10, 2.2-dev35 (fully modifiable)
      The saturation of a player. If used in a player event, it can be omitted and will default to event-player.

      Examples:

      set saturation of player to 20

      Scoreboard Tags

      🔗
      Patterns:
      • [(all [[of] the]|the)] scoreboard tags of %entities%
      • %entities%'[s] scoreboard tags
      Since: 2.3
      Scoreboard tags are simple list of texts stored directly in the data of an entity. 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. 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.

      Requires Minecraft 1.11+ (actually added in 1.9 to the game, but added in 1.11 to Spigot).

      Examples:

      on spawn of a monster:
          if the spawn reason is mob spawner:
              add "spawned by a spawner" to the scoreboard tags of event-entity

      on death of a monster:
          if the attacker is a player:
              if the victim doesn't have the scoreboard tag "spawned by a spawner":
                  add 1$ to attacker's balance

      Script Name

      🔗
      Patterns:
      • [the] script[['s] name]
      • name of [the] script
      Since: 2.0
      Usable in events: Script Load/Unload
      Holds the current script's name (the file name without '.sk').

      Examples:

      on script load:
          set {running::%script%} to true
      on script unload:
          set {running::%script%} to false

      Sea Level

      🔗
      Patterns:
      Since: 2.5.1
      Gets the sea level of a world.

      Examples:

      send "The sea level in your world is %sea level in player's world%"

      Server Icon

      🔗
      Patterns:
      • [the] [((default)|(shown|sent))] [server] icon
      Since: 2.3
      Requirements: Paper 1.12.2 or newer
      Icon of the server in the server list. Can be set to an icon that loaded using the load server icon effect, or can be reset to the default icon in a server list ping. 'default server icon' returns the default server icon (server-icon.png) always and cannot be changed.

      Examples:

      on script load:
          set {server-icons::default} to the default server icon

      Shooter

      🔗
      Patterns:
      Since: 1.3.7
      The shooter of a projectile.

      Examples:

      shooter is a skeleton

      Shuffled List

      🔗
      Patterns:
      Since: 2.2-dev32
      Shuffles given list randomly. This is done by replacing indices by random numbers in resulting list.

      Examples:

      set {_list::*} to shuffled {_list::*}

      Sign Text

      🔗
      Patterns:
      • [the] line %number% [of %block%]
      • [the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]
      Since: 1.3
      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).

      Examples:

      on rightclick on sign:
          line 2 of the clicked block is "[Heal]":
              heal the player
          set line 3 to "%player%"

      Slot Index

      🔗
      Patterns:
      • [the] (index|indices) of %slots%
      • %slots%'[s] (index|indices)
      Since: 2.2-dev35
      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.

      Examples:

      if index of event-slot is 10:
          send "You bought a pie!"

      Sorted List

      🔗
      Patterns:
      Since: 2.2-dev19
      Sorts given list in natural order. All objects in list must be comparable; if they're not, this expression will return nothing.

      Examples:

      set {_sorted::*} to sorted {_players::*}

      Spawn

      🔗
      Patterns:
      • [the] spawn[s] [(point|location)[s]] [of %worlds%]
      • %worlds%'[s] spawn[s] [(point|location)[s]]
      Since: 1.4.2
      The spawn point of a world.

      Examples:

      teleport all players to spawn
      set the spawn point of "world" to the player's location

      Spawn Reason

      🔗
      Patterns:
      • [the] spawn[ing] reason
      Since: 2.3
      The spawn reason in a spawn event.

      Examples:

      on spawn:
          spawn reason is reinforcements or breeding

      Spawner Type

      🔗
      Patterns:
      • [the] (entity|creature) type[s] of %blocks%
      • %blocks%'[s] (entity|creature) type[s]
      Since: 2.4
      Retrieves, sets, or resets the spawner's entity type

      Examples:

      on right click:
          if event-block is spawner:
              send "Spawner's type is %target block's entity type%"

      Special Number

      🔗
      Patterns:
      • (NaN|[(-|minus)](infinity|∞)) value
      • value of (NaN|[(-|minus)](infinity|∞))
      Since: 2.2-dev32d
      Special number values, namely NaN, Infinity and -Infinity

      Examples:

      if {_number} is NaN value:

      Speed

      🔗
      Patterns:
      • [the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%
      • %players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed
      Since: unknown (before 2.1)
      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. Please note that changing a player's speed will change their FOV just like potions do.

      Examples:

      set the player's walk speed to 1
      increase the argument's fly speed by 0.1

      Subtext

      🔗
      Patterns:
      • [the] (part|sub[ ](text|string)) of %texts% (between|from) [ind(ex|ices)|character[s]] %number% (and|to) [(index|character)] %number%
      • [the] (first|last) [%number%] character[s] of %texts%
      • [the] %number% (first|last) characters of %texts%
      • [the] character[s] at [(index|position|indexes|indices|positions)] %numbers% (in|of) %texts%
      Since: 2.1, 2.5.2 (character at, multiple strings support)
      Extracts part of a text. You can either get the first <x> characters, the last <x> characters, the character at index <x>, 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).

      Examples:

      set {_s} to the first 5 characters of the text argument
      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
      set {_characters::*} to characters at 1, 2 and 7 in player's display name
      send the last character of all players' names

      TPS (ticks per second)

      🔗
      Patterns:
      • tps from [the] last ([1] minute|1[ ]m[inute])
      • tps from [the] last 5[ ]m[inutes]
      • tps from [the] last 15[ ]m[inutes]
      • [the] tps
      Since: 2.2-dev36
      Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software (PaperSpigot).

      Examples:

      broadcast "%tps%"

      Tamer

      🔗
      Patterns:
      • [the] tamer
      Since: 2.2-dev25
      The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself.

      Examples:

      on tame:
          if the tamer is a player:
              send "someone tamed something!" to console

      Target

      🔗
      Patterns:
      Since: unknown (before 2.1)
      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).

      Examples:

      on entity target:
          entity's target is a player
          send "You're being followed by an %entity%!" to target of entity

      Targeted Block

      🔗
      Patterns:
      • [the] target[ed] block[s] [of %players%]
      • %players%'[s] target[ed] block[s]
      • [the] actual[ly] target[ed] block[s] [of %players%]
      • %players%'[s] actual[ly] target[ed] block[s]
      Since: 1.0
      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.

      Examples:

      # A command to set the block a player looks at to a specific type:
      command /setblock <material>:
          trigger:
              set targeted block to argument

      Teleport Cause

      🔗
      Patterns:
      • [the] teleport (cause|reason|type)
      Since: 2.2-dev35
      The teleport cause within a player teleport event.

      Examples:

      on teleport
          teleport cause is nether portal, end portal or end gateway

      Temperature

      🔗
      Patterns:
      • [the] temperature[s] of %blocks%
      • %blocks%'[s] temperature[s]
      Since: 2.2-dev35
      Temperature at given block.

      Examples:

      message "%temperature of the targeted block%"

      Ternary

      🔗
      Patterns:
      Since: 2.2-dev36
      A shorthand expression for returning something based on a condition.

      Examples:

      set {points} to 500 if {admin::%player's uuid%} is set else 100

      Time

      🔗
      Patterns:
      • [the] time[s] [([with]in|of) %worlds%]
      • %worlds%'[s] time[s]
      Since: 1.0
      The time of a world.

      Examples:

      time in world is between 18:00 and 6:00:
          broadcast "It's night-time, watch out for monsters!"

      Time Played

      🔗
      Patterns:
      Since: 2.5
      The amount of time a player has played for on the server. This info is stored in the player's statistics in the main world's data folder. Changing this will also change the player's stats which can be views in the client's statistics menu.

      Examples:

      set {_t} to time played of player
      if player's time played is greater than 10 minutes:
          give player a diamond sword
      set player's time played to 0 seconds

      Time Since

      🔗
      Patterns:
      • [the] time since %dates%
      Since: 2.5
      The time that has passed since a date. If the given date is in the future, a value will not be returned.

      Examples:

      send "%time since 5 minecraft days ago% has passed since 5 minecraft days ago!" to player

      Tool

      🔗
      Patterns:
      • [the] ((tool|held item|weapon)|(off[ ]hand (tool|item))) [of %living entities%]
      • %living entities%'[s] ((tool|held item|weapon)|(off[ ]hand (tool|item)))
      Since: 1.0
      The item an entity is holding in their main or off hand.

      Examples:

      player's tool is a pickaxe
      player's off hand tool is a shield
      set tool of all players to a diamond sword
      set offhand tool of target entity to a bow

      Type of

      🔗
      Patterns:
      Since: 1.4, 2.5.2 (potion effect)
      Type of a block, item, entity, inventory or potion effect. Types of items and blocks are item types similar to them but have amounts of one, no display names and, on Minecraft 1.13 and newer versions, are undamaged. Types of entities and inventories are entity types and inventory types known to Skript. Types of potion effects are potion effect types.

      Examples:

      on rightclick on an entity:
          message "This is a %type of clicked entity%!"

      UUID

      🔗
      Patterns:
      Since: 2.1.2, 2.2 (offline players' UUIDs), 2.2-dev24 (other entities' UUIDs)
      The UUID of a player, entity or world. 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. Please note that this expression does not work for offline players if you are under 1.8!

      Examples:

      # prevents people from joining the server if they use the name of a player
      # who has played on this server at least once since this script has been added
      on login:
          if {uuid::%name of player%} exists:
              {uuid::%name of player%} is not uuid of player
              kick player due to "Someone with your name has played on this server before"
          else:
              set {uuid::%name of player%} to uuid of player

      Unbreakable Items

      🔗
      Patterns:
      Since: 2.2-dev13b
      Creates unbreakable copies of given items.

      Examples:

      unbreakable iron sword #Creates unbreakable iron sword

      Unix Date

      🔗
      Patterns:
      Since: 2.5
      Converts given Unix timestamp to a date. The Unix timespan represents the number of seconds elapsed since 1 January 1970.

      Examples:

      unix date of 946684800 #1 January 2000 12:00 AM (UTC Time)

      Unix Timestamp

      🔗
      Patterns:
      • [the] unix timestamp of %dates%
      • %dates%'[s] unix timestamp
      Since: 2.2-dev31
      Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970.

      Examples:

      unix timestamp of now

      Vectors - Angle Between

      🔗
      Patterns:
      Since: 2.2-dev28
      Gets the angle between two vectors.

      Examples:

      send "%the angle between vector 1, 0, 0 and vector 0, 1, 1%"

      Vectors - Arithmetic

      🔗
      Patterns:
      Since: 2.2-dev28
      Arithmetic expressions for vectors.

      Examples:

      set {_v} to vector 1, 2, 3 // 5
      set {_v} to {_v} ++ {_v}
      set {_v} to {_v} ++ 5
      set {_v} to {_v} -- {_v}
      set {_v} to {_v} -- 5
      set {_v} to {_v} ** {_v}
      set {_v} to {_v} ** 5
      set {_v} to {_v} // {_v}
      set {_v} to {_v} // 5

      Vectors - Create from XYZ

      🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector from x, y and z values.

      Examples:

      set {_v} to vector 0, 1, 0

      Vectors - Cross Product

      🔗
      Patterns:
      Since: 2.2-dev28
      Gets the cross product between two vectors.

      Examples:

      send "%vector 1, 0, 0 cross vector 0, 1, 0%"

      Vectors - Cylindrical Shape

      🔗
      Patterns:
      • [a] [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%
      Since: 2.2-dev28
      Forms a 'cylindrical shaped' vector using yaw to manipulate the current point.

      Examples:

      loop 360 times:
          set {_v} to cylindrical vector radius 1, yaw loop-value, height 2
      set {_v} to cylindrical vector radius 1, yaw 90, height 2

      Vectors - Dot Product

      🔗
      Patterns:
      Since: 2.2-dev28
      Gets the dot product between two vectors.

      Examples:

      set {_v} to {_v2} dot {_v3}

      Vectors - Length

      🔗
      Patterns:
      • [the] (vector|standard|normal) length[s] of %vectors%
      • %vectors%'[s] (vector|standard|normal) length[s]
      Since: 2.2-dev28
      Gets or sets the length of a vector.

      Examples:

      send "%standard length of vector 1, 2, 3%"
      set {_v} to vector 1, 2, 3
      set standard length of {_v} to 2
      send "%standard length of {_v}%"

      Vectors - Location Vector Offset

      🔗
      Patterns:
      Since: 2.2-dev28
      Returns the location offset by vectors.

      Examples:

      set {_loc} to {_loc} ~ {_v}

      Vectors - Normalized

      🔗
      Patterns:
      Since: 2.2-dev28
      Returns the same vector but with length 1.

      Examples:

      set {_v} to normalized {_v}

      Vectors - Random Vector

      🔗
      Patterns:
      • [a] random vector
      Since: 2.2-dev28
      Creates a random vector.

      Examples:

      set {_v} to a random vector

      Vectors - Spherical Shape

      🔗
      Patterns:
      • [new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%
      Since: 2.2-dev28
      Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point.

      Examples:

      loop 360 times:
          set {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value
      set {_v} to spherical vector radius 1, yaw 45, pitch 90

      Vectors - Squared Length

      🔗
      Patterns:
      • [the] squared length[s] of %vectors%
      • %vectors%'[s] squared length[s]
      Since: 2.2-dev28
      Gets the squared length of a vector.

      Examples:

      send "%squared length of vector 1, 2, 3%"

      Vectors - Vector Between Locations

      🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector between two locations.

      Examples:

      set {_v} to vector between {_loc1} and {_loc2}

      Vectors - Vector from Location

      🔗
      Patterns:
      Since: 2.2-dev28
      Creates a vector from a location.

      Examples:

      set {_v} to vector of {_loc}

      Vectors - Vector from Pitch and Yaw

      🔗
      Patterns:
      • [a] [new] vector (from|with) yaw %number% and pitch %number%
      Since: 2.2-dev28
      Creates a vector from a yaw and pitch value.

      Examples:

      set {_v} to vector from yaw 45 and pitch 45

      Vectors - Velocity

      🔗
      Patterns:
      Since: 2.2-dev31
      Gets or changes velocity of an entity.

      Examples:

      set player's velocity to {_v}

      Vectors - XYZ Component

      🔗
      Patterns:
      • [the] [vector] (x|y|z) [component[s]] of %vectors%
      • %vectors%'[s] [vector] (x|y|z) [component[s]]
      Since: 2.2-dev28
      Gets or changes the x, y or z component of a vector.

      Examples:

      set {_v} to vector 1, 2, 3
      send "%x of {_v}%, %y of {_v}%, %z of {_v}%"
      add 1 to x of {_v}
      add 2 to y of {_v}
      add 3 to z of {_v}
      send "%x of {_v}%, %y of {_v}%, %z of {_v}%"
      set x component of {_v} to 1
      set y component of {_v} to 2
      set z component of {_v} to 3
      send "%x component of {_v}%, %y component of {_v}%, %z component of {_v}%"

      Vehicle

      🔗
      Patterns:
      Since: 2.0
      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. See also: passenger

      Examples:

      vehicle of the player is a minecart

      Version

      🔗
      Patterns:
      • ([craft]bukkit|minecraft|skript)( |-)version
      Since: 2.0
      The version of Bukkit, Minecraft or Skript respectively.

      Examples:

      message "This server is running Minecraft %minecraft version% on Bukkit %bukkit version%"
      message "This server is powered by Skript %skript version%"

      Version String

      🔗
      Patterns:
      • [the] [(shown|custom)] version [(string|text)]
      Since: 2.3
      Usable in events: server list ping
      Requirements: Paper 1.12.2 or newer
      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. This can only be set in a server list ping event.

      Examples:

      on server list ping:
          set the protocol version to 0 # 13w41a (1.7), so it will show the version string always
          set the version string to "<light green>Version: <orange>%minecraft version%"

      View Distance of Client

      🔗
      Patterns:
      • [the] client view distance[s] of %players%
      • %players%'[s] client view distance[s]
      Since: 2.5
      Requirements: 1.13.2+
      The view distance of the client. Can not be changed. This differs from the server side view distance of player as this will retrieve the view distance the player has set on their client.

      Examples:

      set {_clientView} to the client view distance of player
      set view distance of player to client view distance of player

      Weather

      🔗
      Patterns:
      Since: 1.0
      Usable in events: weather change
      The weather in the given or the current world.

      Examples:

      set weather to clear
      weather in "world" is rainy

      Whitelist

      🔗
      Patterns:
      • [the] white[ ]list
      Since: 2.5.2
      A server's whitelist.This expression can be used to add/remove players to/from the whitelist, to enable it and disable it (set whitelist to true / set whitelist to false), and to empty it (reset whitelist)

      Examples:

      set whitelist to false
      add all players to whitelist
      reset the whitelist

      World

      🔗
      Patterns:
      Since: 1.0
      The world the event occurred in.

      Examples:

      world is "world_nether"
      teleport the player to the world's spawn
      set the weather in the player's world to rain

      World Seed

      🔗
      Patterns:
      Since: 2.2-dev35
      The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration.

      Examples:

      broadcast "Seed: %seed of player's world%"

      Worlds

      🔗
      Patterns:
      • [(all [[of] the]|the)] worlds
      Since: 1.0
      All worlds of the server, useful for looping.

      Examples:

      loop all worlds:
          broadcast "You're in %loop-world%" to loop-world

      X of Item

      🔗
      Patterns:
      Since: 1.2
      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.

      Examples:

      give level of player of pickaxes to the player

      Yaw / Pitch

      🔗
      Patterns:
      Since: 2.0, 2.2-dev28 (vector yaw/pitch)
      The yaw or pitch of a location or vector.

      Examples:

      log "%player%: %location of player%, %player's yaw%, %player's pitch%" to "playerlocs.log"
      set {_yaw} to yaw of player
      set {_p} to pitch of target entity
      \ No newline at end of file diff --git a/functions.html b/functions.html index 654fdde2bb6..6178f6a03df 100644 --- a/functions.html +++ b/functions.html @@ -1 +1 @@ - Skript Documentation - 2.6-beta1

      Functions

      These functions are defined by Skript. You may also create your own functions! Tutorial for doing so is planned, but right now you need to seek it elsewhere.

      abs 🔗
      Patterns:
      • abs(n: number)
      Since: 2.2
      Returns the absolute value of the argument, i.e. makes the argument positive.
      Examples:
      abs(3) = 3
      abs(-2) = 2
      acos 🔗
      Patterns:
      • acos(n: number)
      Since: 2.2
      The inverse of the cosine, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180.
      Examples:
      acos(0) = 90
      acos(1) = 0
      acos(0.5) = 30
      asin 🔗
      Patterns:
      • asin(n: number)
      Since: 2.2
      The inverse of the sine, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90.
      Examples:
      asin(0) = 0
      asin(1) = 90
      asin(0.5) = 30
      atan 🔗
      Patterns:
      • atan(n: number)
      Since: 2.2
      The inverse of the tangent, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90.
      Examples:
      atan(0) = 0
      atan(1) = 45
      atan(10000) = 89.9943
      atan2 🔗
      Patterns:
      • atan2(x: number, y: number)
      Since: 2.2
      Similar to atan, but requires two coordinates and returns values from -180 to 180. The returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top).
      Examples:
      atan2(0, 1) = 0
      atan2(10, 0) = 90
      atan2(-10, 5) = -63.4349
      calcExperience 🔗
      Patterns:
      • calcExperience(level: long)
      Since: 2.2-dev32
      Calculates the total amount of experience needed to achieve given level from scratch in Minecraft.
      Examples:
      ceil 🔗
      Patterns:
      • ceil(n: number)
      Since: 2.2
      Rounds a number up, i.e. returns the closest integer larger than or equal to the argument.
      Examples:
      ceil(2.34) = 3
      ceil(2) = 2
      ceil(2.99) = 3
      ceiling 🔗
      Patterns:
      • ceiling(n: number)
      Since: 2.2
      Alias of ceil.
      Examples:
      ceiling(2.34) = 3
      ceiling(2) = 2
      ceiling(2.99) = 3
      cos 🔗
      Patterns:
      • cos(n: number)
      Since: 2.2
      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.
      Examples:
      cos(0) = 1
      cos(90) = 0
      date 🔗
      Patterns:
      • 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]])
      Since: 2.2
      Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond. 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).
      Examples:
      date(2014, 10, 1) # 0:00, 1st October 2014
      date(1990, 3, 5, 14, 30) # 14:30, 5th May 1990
      date(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST)
      exp 🔗
      Patterns:
      • exp(n: number)
      Since: 2.2
      The exponential function. You probably don't need this if you don't know what this is.
      Examples:
      exp(0) = 1
      exp(1) = 2.7183
      floor 🔗
      Patterns:
      • floor(n: number)
      Since: 2.2
      Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument.
      Examples:
      floor(2.34) = 2
      floor(2) = 2
      floor(2.99) = 2
      ln 🔗
      Patterns:
      • ln(n: number)
      Since: 2.2
      The natural logarithm. You probably don't need this if you don't know what this is. Returns NaN (not a number) if the argument is negative.
      Examples:
      ln(1) = 0
      ln(exp(5)) = 5
      ln(2) = 0.6931
      location 🔗
      Patterns:
      • location(x: number, y: number, z: number, world: world = event-world, yaw: number = [[integer:0]], pitch: number = [[integer:0]])
      Since: 2.2
      Creates a location from a world and 3 coordinates, with an optional yaw and pitch. If for whatever reason the world is not found, it will fallback to the server's main world.
      Examples:
      location(0, 128, 0)
      location(player's x-coordinate, player's y-coordinate + 5, player's z-coordinate, player's world, 0, 90)
      location(0, 64, 0, world "world_nether")
      location(100, 110, -145, world("my_custom_world"))
      log 🔗
      Patterns:
      • log(n: number, base: number = [[integer:10]])
      Since: 2.2
      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'. Another useful equation is base ^ log(a, base) = a for any numbers 'base' and 'a'. 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. Returns NaN (not a number) if any of the arguments are negative.
      Examples:
      log(100) = 2 # 10^2 = 100
      log(16, 2) = 4 # 2^4 = 16
      max 🔗
      Patterns:
      • max(ns: numbers)
      Since: 2.2
      Returns the maximum number from a list of numbers.
      Examples:
      max(1) = 1
      max(1, 2, 3, 4) = 4
      max({some list variable::*})
      min 🔗
      Patterns:
      • min(ns: numbers)
      Since: 2.2
      Returns the minimum number from a list of numbers.
      Examples:
      min(1) = 1
      min(1, 2, 3, 4) = 1
      min({some list variable::*})
      mod 🔗
      Patterns:
      • mod(d: number, m: number)
      Since: 2.2
      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. The returned value is always positive. Returns NaN (not a number) if the second argument is zero.
      Examples:
      mod(3, 2) = 1
      mod(256436, 100) = 36
      mod(-1, 10) = 9
      product 🔗
      Patterns:
      • product(ns: numbers)
      Since: 2.2
      Calculates the product of a list of numbers.
      Examples:
      product(1) = 1
      product(2, 3, 4) = 24
      product({some list variable::*})
      product(2, {_v::*}, and the player's y-coordinate)
      rgb 🔗
      Patterns:
      • rgb(red: long, green: long, blue: long)
      Since: 2.5
      Returns a RGB color from the given red, green and blue parameters.
      Examples:
      dye player's leggings rgb(120, 30, 45)
      round 🔗
      Patterns:
      • round(n: number)
      Since: 2.2
      Rounds a number, i.e. returns the closest integer to the argument.
      Examples:
      round(2.34) = 2
      round(2) = 2
      round(2.99) = 3
      round(2.5) = 3
      sin 🔗
      Patterns:
      • sin(n: number)
      Since: 2.2
      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.
      Examples:
      sin(90) = 1
      sin(60) = 0.866
      sqrt 🔗
      Patterns:
      • sqrt(n: number)
      Since: 2.2
      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). Returns NaN (not a number) if the argument is negative.
      Examples:
      sqrt(4) = 2
      sqrt(2) = 1.4142
      sqrt(-1) = NaN
      sum 🔗
      Patterns:
      • sum(ns: numbers)
      Since: 2.2
      Sums a list of numbers.
      Examples:
      sum(1) = 1
      sum(2, 3, 4) = 9
      sum({some list variable::*})
      sum(2, {_v::*}, and the player's y-coordinate)
      tan 🔗
      Patterns:
      • tan(n: number)
      Since: 2.2
      The tangent function. This is basically sin(arg)/cos(arg). Uses degrees, not radians.
      Examples:
      tan(0) = 0
      tan(45) = 1
      tan(89.99) = 5729.5779
      vector 🔗
      Patterns:
      • vector(x: number, y: number, z: number)
      Since: 2.2-dev23
      Creates a new vector, which can be used with various expressions, effects and functions.
      Examples:
      vector(0, 0, 0)
      world 🔗
      Patterns:
      • world(name: string)
      Since: 2.2
      Gets a world from its name.
      Examples:
      set {_nether} to world("%{_world}%_nether")
      \ No newline at end of file + Skript Documentation - 2.6-beta3

      Functions

      Note:

      These functions are defined by Skript. You may also create your own functions! Tutorial for doing so is planned, but right now you need to seek it elsewhere.

      abs

      🔗
      Patterns:
      • abs(n: number)
      Since: 2.2
      Returns the absolute value of the argument, i.e. makes the argument positive.

      Examples:

      abs(3) = 3
      abs(-2) = 2

      acos

      🔗
      Patterns:
      • acos(n: number)
      Since: 2.2
      The inverse of the cosine, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180.

      Examples:

      acos(0) = 90
      acos(1) = 0
      acos(0.5) = 30

      asin

      🔗
      Patterns:
      • asin(n: number)
      Since: 2.2
      The inverse of the sine, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90.

      Examples:

      asin(0) = 0
      asin(1) = 90
      asin(0.5) = 30

      atan

      🔗
      Patterns:
      • atan(n: number)
      Since: 2.2
      The inverse of the tangent, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90.

      Examples:

      atan(0) = 0
      atan(1) = 45
      atan(10000) = 89.9943

      atan2

      🔗
      Patterns:
      • atan2(x: number, y: number)
      Since: 2.2
      Similar to atan, but requires two coordinates and returns values from -180 to 180. The returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top).

      Examples:

      atan2(0, 1) = 0
      atan2(10, 0) = 90
      atan2(-10, 5) = -63.4349

      calcExperience

      🔗
      Patterns:
      • calcExperience(level: long)
      Since: 2.2-dev32
      Calculates the total amount of experience needed to achieve given level from scratch in Minecraft.

      Examples:

      Missing examples.

      ceil

      🔗
      Patterns:
      • ceil(n: number)
      Since: 2.2
      Rounds a number up, i.e. returns the closest integer larger than or equal to the argument.

      Examples:

      ceil(2.34) = 3
      ceil(2) = 2
      ceil(2.99) = 3

      ceiling

      🔗
      Patterns:
      • ceiling(n: number)
      Since: 2.2
      Alias of ceil.

      Examples:

      ceiling(2.34) = 3
      ceiling(2) = 2
      ceiling(2.99) = 3

      cos

      🔗
      Patterns:
      • cos(n: number)
      Since: 2.2
      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.

      Examples:

      cos(0) = 1
      cos(90) = 0

      date

      🔗
      Patterns:
      • 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]])
      Since: 2.2
      Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond. 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).

      Examples:

      date(2014, 10, 1) # 0:00, 1st October 2014
      date(1990, 3, 5, 14, 30) # 14:30, 5th May 1990
      date(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST)

      exp

      🔗
      Patterns:
      • exp(n: number)
      Since: 2.2
      The exponential function. You probably don't need this if you don't know what this is.

      Examples:

      exp(0) = 1
      exp(1) = 2.7183

      floor

      🔗
      Patterns:
      • floor(n: number)
      Since: 2.2
      Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument.

      Examples:

      floor(2.34) = 2
      floor(2) = 2
      floor(2.99) = 2

      ln

      🔗
      Patterns:
      • ln(n: number)
      Since: 2.2
      The natural logarithm. You probably don't need this if you don't know what this is. Returns NaN (not a number) if the argument is negative.

      Examples:

      ln(1) = 0
      ln(exp(5)) = 5
      ln(2) = 0.6931

      location

      🔗
      Patterns:
      • location(x: number, y: number, z: number, world: world = event-world, yaw: number = [[integer:0]], pitch: number = [[integer:0]])
      Since: 2.2
      Creates a location from a world and 3 coordinates, with an optional yaw and pitch. If for whatever reason the world is not found, it will fallback to the server's main world.

      Examples:

      location(0, 128, 0)
      location(player's x-coordinate, player's y-coordinate + 5, player's z-coordinate, player's world, 0, 90)
      location(0, 64, 0, world "world_nether")
      location(100, 110, -145, world("my_custom_world"))

      log

      🔗
      Patterns:
      • log(n: number, base: number = [[integer:10]])
      Since: 2.2
      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'. Another useful equation is base ^ log(a, base) = a for any numbers 'base' and 'a'. 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. Returns NaN (not a number) if any of the arguments are negative.

      Examples:

      log(100) = 2 # 10^2 = 100
      log(16, 2) = 4 # 2^4 = 16

      max

      🔗
      Patterns:
      • max(ns: numbers)
      Since: 2.2
      Returns the maximum number from a list of numbers.

      Examples:

      max(1) = 1
      max(1, 2, 3, 4) = 4
      max({some list variable::*})

      min

      🔗
      Patterns:
      • min(ns: numbers)
      Since: 2.2
      Returns the minimum number from a list of numbers.

      Examples:

      min(1) = 1
      min(1, 2, 3, 4) = 1
      min({some list variable::*})

      mod

      🔗
      Patterns:
      • mod(d: number, m: number)
      Since: 2.2
      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. The returned value is always positive. Returns NaN (not a number) if the second argument is zero.

      Examples:

      mod(3, 2) = 1
      mod(256436, 100) = 36
      mod(-1, 10) = 9

      product

      🔗
      Patterns:
      • product(ns: numbers)
      Since: 2.2
      Calculates the product of a list of numbers.

      Examples:

      product(1) = 1
      product(2, 3, 4) = 24
      product({some list variable::*})
      product(2, {_v::*}, and the player's y-coordinate)

      rgb

      🔗
      Patterns:
      • rgb(red: long, green: long, blue: long)
      Since: 2.5
      Returns a RGB color from the given red, green and blue parameters.

      Examples:

      dye player's leggings rgb(120, 30, 45)

      round

      🔗
      Patterns:
      • round(n: number)
      Since: 2.2
      Rounds a number, i.e. returns the closest integer to the argument.

      Examples:

      round(2.34) = 2
      round(2) = 2
      round(2.99) = 3
      round(2.5) = 3

      sin

      🔗
      Patterns:
      • sin(n: number)
      Since: 2.2
      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.

      Examples:

      sin(90) = 1
      sin(60) = 0.866

      sqrt

      🔗
      Patterns:
      • sqrt(n: number)
      Since: 2.2
      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). Returns NaN (not a number) if the argument is negative.

      Examples:

      sqrt(4) = 2
      sqrt(2) = 1.4142
      sqrt(-1) = NaN

      sum

      🔗
      Patterns:
      • sum(ns: numbers)
      Since: 2.2
      Sums a list of numbers.

      Examples:

      sum(1) = 1
      sum(2, 3, 4) = 9
      sum({some list variable::*})
      sum(2, {_v::*}, and the player's y-coordinate)

      tan

      🔗
      Patterns:
      • tan(n: number)
      Since: 2.2
      The tangent function. This is basically sin(arg)/cos(arg). Uses degrees, not radians.

      Examples:

      tan(0) = 0
      tan(45) = 1
      tan(89.99) = 5729.5779

      vector

      🔗
      Patterns:
      • vector(x: number, y: number, z: number)
      Since: 2.2-dev23
      Creates a new vector, which can be used with various expressions, effects and functions.

      Examples:

      vector(0, 0, 0)

      world

      🔗
      Patterns:
      • world(name: string)
      Since: 2.2
      Gets a world from its name.

      Examples:

      set {_nether} to world("%{_world}%_nether")
      \ No newline at end of file diff --git a/index.html b/index.html index 925401edb7d..a7d9b109279 100644 --- a/index.html +++ b/index.html @@ -1 +1,22 @@ - Skript Documentation - 2.6-beta1

      Documentation

      Skript is (surprise, surprise) a scripting plugin for Bukkit platform. It is easy to use for simple tasks, but yet you can create really complex things with it. The syntax of Skript is close to English, but it is still not magic. While for simple tasks you might succeed with experimentation, for anything more complex you will need some guidance.

      This is the Skript documentation. You will find all supported features of Skript plugin here. You might also find some useful examples, in case you need more than what was shipped with Skript distribution. We do not currently have tutorials here, but you can find good ones using whatever search engine you prefer.

      Found something incorrect in this documentation? Please report it to the issue tracker.

      We are looking for docs authors! Currently, the only documentation is generated automatically. It would be nice to have some hand-written content such as tutorials on the docs as well. For example, currently we don't have a tutorial on how to use loops here; This makes it harder for newcomers to learn. Check this issue for more details and if you're interested in helping out.

      \ No newline at end of file + Skript Documentation - 2.6-beta3

      Documentation

      Skript is (surprise, surprise) a scripting plugin for the Bukkit platform. It is easy to use for simple tasks, but you can also create really complex things with it. The syntax of Skript is close to English, but it is still not magic. While you might succeed with experimentation for simple tasks, for anything more complex you will need some guidance.

      This is Skript's documentation. You will find all supported features of the plugin here, along with some useful examples. We don't have tutorials yet, but you can find good ones using whatever search engine you prefer.

      Quick Look

       command /sethome:
      +     permission: skript.home # Permission required for this command
      +     description: Set your home # Description of this command
      +     executable by: players # Console won't be able to run this command
      +     trigger: # The actual trigger/code that will run when someone do /sethome
      +         # Set a unique variable to sender's location
      +         set {home::%uuid of player%} to location of player
      +         # Send a message to the sender
      +         message "Set your home to <grey>%location of player%<reset>"
      + 
      + command /home:
      +     permission: skript.home
      +     description: Teleport yourself to your home
      +     trigger:
      +         # Check if that variable we used in /sethome has been set (in other words, if player ever ran /sethome)
      +         if {home::%uuid of player%} is not set:
      +             message "You have not set your home yet!"
      +             stop trigger # stop the code here, lines below won't run
      +         # Teleport the player to their home
      +         teleport player to {home::%uuid of player%}
      +         send "&aYou have been teleported."
      + 

      Found something incorrect in this documentation? Please report it to the issue tracker.

      We are looking for docs authors! Currently, the only documentation is generated automatically. It would be nice to have some hand-written content such as tutorials on the docs as well. For example, currently we don't have a tutorial on how to use loops here; This makes it harder for newcomers to learn. Check this issue for more details and if you're interested in helping out.

      Skript • SkriptLang Team • Styling by Ayham Al-Ali | 2021 • Generated on 30/08/2021

      \ No newline at end of file diff --git a/js/highlight.js b/js/highlight.js new file mode 100644 index 00000000000..51d16c9080d --- /dev/null +++ b/js/highlight.js @@ -0,0 +1,1359 @@ +// Source: https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.7.2/highlight.min.js - Don't use higher versions as it breaks
      see https://github.com/highlightjs/highlight.js/issues/3302 +/* + Highlight.js 10.7.2 (00233d63) + License: BSD-3-Clause + Copyright (c) 2006-2021, Ivan Sagalaev +*/ +var hljs=function(){"use strict";function e(t){ + return t instanceof Map?t.clear=t.delete=t.set=()=>{ + throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ + throw Error("set is read-only") + }),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n] + ;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n + ;class i{constructor(e){ + void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} + ignoreMatch(){this.isMatchIgnored=!0}}function s(e){ + return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") + }function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] + ;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind + ;class l{constructor(e,t){ + this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ + this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind + ;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){ + r(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ + this.buffer+=``}}class o{constructor(){this.rootNode={ + children:[]},this.stack=[this.rootNode]}get top(){ + return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ + this.top.children.push(e)}openNode(e){const t={kind:e,children:[]} + ;this.add(t),this.stack.push(t)}closeNode(){ + if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ + for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} + walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ + return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), + t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ + "string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ + o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e} + addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} + addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root + ;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){ + return new l(this,this.options).value()}finalize(){return!0}}function g(e){ + return e?"string"==typeof e?e:e.source:null} + const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={ + begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'", + illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"', + illegal:"\\n",contains:[b]},v={ + begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ + },w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n) + ;return i.contains.push(v),i.contains.push({className:"doctag", + begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i + },y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({ + __proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d, + NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m, + RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", + SHEBANG:(e={})=>{const t=/^#![ ]*\// + ;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)), + a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{ + 0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E, + QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y, + C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number", + begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0}, + BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{ + className:"number", + begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", + relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp", + begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/, + relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0 + },UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{ + begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ + "on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ + t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){ + "."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){ + t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", + e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, + void 0===e.relevance&&(e.relevance=0))}function O(e,t){ + Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal)) + }function A(e,t){if(e.match){ + if(e.begin||e.end)throw Error("begin & end are not supported with match") + ;e.begin=e.match,delete e.match}}function L(e,t){ + void 0===e.relevance&&(e.relevance=1)} + const I=["of","and","for","in","not","or","if","then","parent","list","value"] + ;function j(e,t,n="keyword"){const i={} + ;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ + Object.assign(i,j(e[n],t,n))})),i;function s(e,n){ + t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") + ;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){ + return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1} + function T(e,{plugins:t}){function n(t,n){ + return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{ + constructor(){ + this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} + addRule(e,t){ + t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), + this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){ + 0===this.regexes.length&&(this.exec=()=>null) + ;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0 + ;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){ + const e=u.exec(i);if(!e){s+=i;break} + s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length), + "\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s + })).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){ + this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e) + ;if(!t)return null + ;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] + ;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ + this.rules=[],this.multiRegexes=[], + this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ + if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i + ;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), + t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ + return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ + this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ + const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex + ;let n=t.exec(e) + ;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ + const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} + return n&&(this.regexIndex+=n.position+1, + this.regexIndex===this.count&&this.considerAll()),n}} + if(e.compilerExtensions||(e.compilerExtensions=[]), + e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") + ;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i + ;if(i.isCompiled)return l + ;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))), + i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null + ;if("object"==typeof i.keywords&&(o=i.keywords.$pattern, + delete i.keywords.$pattern), + i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)), + i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ") + ;return o=o||i.lexemes||/\w+/, + l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/), + l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin), + i.end||i.endsWithParent||(i.end=/\B|\b/), + i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"", + i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)), + i.illegal&&(l.illegalRe=n(i.illegal)), + i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{ + variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{ + starts:e.starts?a(e.starts):null + }):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l) + })),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s + ;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" + }))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" + }),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){ + return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={ + props:["language","code","autodetect"],data:()=>({detectedLanguage:"", + unknownLanguage:!1}),computed:{className(){ + return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){ + if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`), + this.unknownLanguage=!0,s(this.code);let t={} + ;return this.autoDetect?(t=e.highlightAuto(this.code), + this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals), + this.detectedLanguage=this.language),t.value},autoDetect(){ + return!(this.language&&(e=this.autodetect,!e&&""!==e));var e}, + ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{ + class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{ + Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={ + "after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e) + ;if(!i.length)return;const a=document.createElement("div") + ;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){ + return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function c(e){ + a+=""}function g(e){("start"===e.event?o:c)(e.node)} + for(;e.length||t.length;){let t=l() + ;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c) + ;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i) + ;r.reverse().forEach(o) + }else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])} + return a+s(n.substr(i))})(i,H(a),n)}};function C(e){ + return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){ + for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({ + event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({ + event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{ + console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{ + $[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0) + },G=s,V=a,W=Symbol("nomatch");return(e=>{ + const n=Object.create(null),s=Object.create(null),a=[];let r=!0 + ;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={ + disableAutodetect:!0,name:"Plain text",contains:[]};let u={ + noHighlightRe:/^(no-?highlight)$/i, + languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", + tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){ + return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a="" + ;"object"==typeof t?(s=e, + n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."), + K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), + a=e,s=t);const r={code:s,language:a};M("before:highlight",r) + ;const l=r.result?r.result:f(r.language,r.code,n,i) + ;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){ + function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0] + ;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]} + function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null + ;if("string"==typeof R.subLanguage){ + if(!n[R.subLanguage])return void k.addText(M) + ;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top + }else e=p(M,R.subLanguage.length?R.subLanguage:null) + ;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language) + })():(()=>{if(!R.keywords)return void k.addText(M);let e=0 + ;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){ + n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i + ;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{ + const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0] + ;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)} + n+=M.substr(e),k.addText(n)})(),M=""}function h(e){ + return e.className&&k.openNode(v.classNameAliases[e.className]||e.className), + R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{ + const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){ + const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){ + for(;e.endsParent&&e.parent;)e=e.parent;return e}} + if(e.endsWithParent)return d(e.parent,t,n)}function m(e){ + return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){ + const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R + ;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{ + R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent + }while(R!==s.parent) + ;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe), + h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0] + ;if(M+=n,null==l)return g(),0 + ;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){ + if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex") + ;throw t.languageName=e,t.badRule=E.rule,t}return 1} + if(E=a,"begin"===a.type)return function(e){ + const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]] + ;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t) + ;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")), + n.skip?M+=t:(n.excludeBegin&&(M+=t), + g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a) + ;if("illegal"===a.type&&!s){ + const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"")+'"') + ;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e} + if("illegal"===a.type&&""===l)return 1 + ;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches") + ;return M+=l,l.length}const v=N(e) + ;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"') + ;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{ + const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className) + ;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{ + for(R.matcher.considerAll();;){ + L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A + ;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e) + ;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{ + relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){ + if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{ + msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0, + value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k, + language:e,top:R,errorRaised:n};throw n}}function p(e,t){ + t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0, + emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g} + ;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1))) + ;s.unshift(i);const a=s.sort(((e,t)=>{ + if(e.relevance!==t.relevance)return t.relevance-e.relevance + ;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1 + ;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r + ;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{ + u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")) + },"after:highlightElement":({result:e})=>{ + u.useBR&&(e.value=e.value.replace(/\n/g,"
      "))}},b=/^(<[^>]+>|\t)+/gm,E={ + "after:highlightElement":({result:e})=>{ + u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}} + ;function x(e){let t=null;const n=(e=>{let t=e.className+" " + ;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t) + ;if(n){const t=N(n[1]) + ;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)), + t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e) + ;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e + ;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i) + ;M("after:highlightElement",{el:e,result:a,text:i + }),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n + ;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={ + language:a.language,re:a.relevance,relavance:a.relevance + },a.second_best&&(e.second_best={language:a.second_best.language, + re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{ + v.called||(v.called=!0, + K("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."), + document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){ + "loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0 + }function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]} + function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ + s[e.toLowerCase()]=t}))}function k(e){const t=N(e) + ;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{ + e[n]&&e[n](t)}))} + "undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ + w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y, + fixMarkup:e=>{ + return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"), + t=e, + u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"
      ":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t + ;var t},highlightElement:x, + highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"), + K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{ + e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"), + K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")), + u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{ + K("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."), + w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){ + if(U("Language definition for '{}' could not be registered.".replace("{}",t)), + !r)throw e;U(e),s=g} + s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{ + languageName:t})},unregisterLanguage:e=>{delete n[e] + ;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, + listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R, + requireLanguage:e=>{ + K("10.4.0","requireLanguage will be removed entirely in v11."), + K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844") + ;const t=N(e);if(t)return t + ;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))}, + autoDetection:k,inherit:V,addPlugin:e=>{(e=>{ + e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ + e["before:highlightBlock"](Object.assign({block:t.el},t)) + }),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ + e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)}, + vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0 + },e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e]) + ;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({}) + }();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); + hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={ + className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/} + ;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, + contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, + contains:[n,{className:"number",begin:/:\d{1,5}/ + },e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", + begin:/\w+/,relevance:0,keywords:{ + nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername" + },starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, + contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", + begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] + },n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} + })()); + hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){ + return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s + })).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{ + begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{ + begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={ + className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={ + begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/, + end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, + contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/, + end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n] + },r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 + }),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, + contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ + name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/, + keyword:"if then else elif fi for while in do done case esac function", + literal:"true false", + built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" + },contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/ + },{className:"string",begin:/'/,end:/'/},n]}}})()); + hljs.registerLanguage("c",(()=>{"use strict";function e(e){ + return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?") + }return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}] + }),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={ + className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string", + variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", + contains:[t.BACKSLASH_ESCAPE]},{ + begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", + end:"'",illegal:"."},t.END_SAME_AS_BEGIN({ + begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ + className:"number",variants:[{begin:"\\b(0b[01']+)"},{ + begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" + },{ + begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" + }],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ + "meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" + },contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{ + className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={ + className:"title",begin:e(r)+t.IDENT_RE,relevance:0 + },d=e(r)+t.IDENT_RE+"\\s*\\(",u={ + keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", + built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary", + literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={ + variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ + beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{ + begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]), + relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d, + returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/, + contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d, + returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/, + end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{ + begin:/\(/,end:/\)/,keywords:u,relevance:0, + contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}] + },i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, + disableAutodetect:!0,illegal:"",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{ + className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, + contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{ + preprocessor:c,strings:s,keywords:u}}}})()); + hljs.registerLanguage("coffeescript",(()=>{"use strict" + ;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) + ;return r=>{const t={ + keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"], + e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]), + built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={ + className:"subst",begin:/#\{/,end:/\}/,keywords:t + },c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?", + relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/, + contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE] + },{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/, + contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///", + end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)", + relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s + },{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{ + begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c + ;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={ + className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, + end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript", + aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/, + contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{ + className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0, + contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function", + begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class", + beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ + beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l] + },{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})()); + hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){ + return t("(",e,")?")}function t(...e){return e.map((e=>{ + return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{ + const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}] + }),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={ + className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string", + variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", + contains:[n.BACKSLASH_ESCAPE]},{ + begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", + end:"'",illegal:"."},n.END_SAME_AS_BEGIN({ + begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ + className:"number",variants:[{begin:"\\b(0b[01']+)"},{ + begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" + },{ + begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" + }],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ + "meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" + },contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{ + className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={ + className:"title",begin:e(a)+n.IDENT_RE,relevance:0 + },u=e(a)+n.IDENT_RE+"\\s*\\(",m={ + keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", + built_in:"_Bool _Complex _Imaginary", + _relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"], + literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0, + keywords:m, + begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/, + t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={ + variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ + beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{ + begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]), + relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u, + returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/, + contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u, + returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/, + endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/, + keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/, + end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s] + }]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", + aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{ + className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, + contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{ + preprocessor:l,strings:c,keywords:m}}}})()); + hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={ + keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), + built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], + literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ + begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ + begin:"\\b(0b[01']+)"},{ + begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ + begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" + }],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] + },t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, + keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, + end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ + },e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ + begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, + contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) + ;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], + l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ + illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] + },E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] + },_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ + begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], + keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, + contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ + begin:"\x3c!--|--\x3e"},{begin:""}]}] + }),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", + end:"$",keywords:{ + "meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum" + }},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, + illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" + },a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", + relevance:0,end:/[{;=]/,illegal:/[^\s:]/, + contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ + beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, + contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", + begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ + className:"meta-string",begin:/"/,end:/"/}]},{ + beginKeywords:"new return throw await else",relevance:0},{className:"function", + begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, + end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ + beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", + relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, + contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/, + excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, + contains:[g,i,e.C_BLOCK_COMMENT_MODE] + },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()); + hljs.registerLanguage("css",(()=>{"use strict" + ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() + ;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, + HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, + ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, + illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} + }))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", + case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, + classNameAliases:{keyframePosition:"selector-tag"}, + contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ + },n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 + },{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 + },a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ + begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{ + className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]", + contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{ + begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" + },contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}] + },{className:"built_in",begin:/[\w-]+(?=\()/}]},{ + begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")), + end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword", + begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, + relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", + attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute" + },...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag", + begin:"\\b("+e.join("|")+")\\b"}]};var s}})()); + hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff", + aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{ + begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{ + begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /, + end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/ + },{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{ + begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{ + className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, + end:/$/}]})})()); + hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={ + keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune", + literal:"true false iota nil", + built_in:"append cap close complex copy imag len make new panic print println real recover delete" + };return{name:"Go",aliases:["golang"],keywords:n,illegal:"{"use strict";function e(...e){ + return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n + })).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute", + begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{ + className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]} + },t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{ + name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})", + end:/$/,contains:[{className:"meta",begin:a},{className:"number", + begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{ + begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string", + begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{ + className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t} + },n.inherit(s,{relevance:0})]}}})()); + hljs.registerLanguage("ini",(()=>{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function n(...n){ + return n.map((n=>e(n))).join("")}return s=>{const a={className:"number", + relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}] + },i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={ + className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/ + }]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={ + className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''", + end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"' + },{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"], + relevance:0 + },g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")" + ;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, + contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{ + begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr", + starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})()); + hljs.registerLanguage("java",(()=>{"use strict" + ;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ + className:"number",variants:[{ + begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` + },{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ + begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ + begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` + },{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ + begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], + relevance:0};return e=>{ + var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={ + className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*", + contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{ + name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/, + contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, + relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ + begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 + },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ + className:"class",beginKeywords:"class interface enum",end:/[{;=]/, + excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/, + contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ + beginKeywords:"new throw return else",relevance:0},{className:"class", + begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0, + end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{ + begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, + contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, + keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE] + },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function", + begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(", + returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{ + begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, + contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, + keywords:n,relevance:0, + contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE] + },e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})()); + hljs.registerLanguage("javascript",(()=>{"use strict" + ;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) + ;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{ + return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ + const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/, + isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a] + ;"<"!==s?">"===s&&(((e,{after:n})=>{const a="", + returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ + begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 + },{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] + },{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ + variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, + end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, + contains:["self"]}]}],relevance:0},{className:"function", + beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, + contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{ + beginKeywords:"while if switch catch for"},{className:"function", + begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", + returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ + begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", + beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ + beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, + end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p] + },{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", + contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}] + }}})()); + hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={ + literal:"true false null" + },i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={ + end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/, + end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/, + contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/ + })].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)], + illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON", + contains:a,keywords:e,illegal:"\\S"}}})()); + hljs.registerLanguage("kotlin",(()=>{"use strict" + ;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ + className:"number",variants:[{ + begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` + },{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ + begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ + begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` + },{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ + begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], + relevance:0};return e=>{const n={ + keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", + built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", + literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" + },s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ + className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", + variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", + illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, + contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ + className:"meta", + begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" + },c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, + end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}] + },o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ + variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, + contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], + {name:"Kotlin",aliases:["kt","kts"],keywords:n, + contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", + begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", + begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", + begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", + returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ + begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, + contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, + keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, + endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, + endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 + },e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class", + beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, + illegal:"extends implements",contains:[{ + beginKeywords:"public protected internal private constructor" + },e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, + excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/, + excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", + end:"$",illegal:"\n"},o]}}})()); + hljs.registerLanguage("less",(()=>{"use strict" + ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o) + ;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, + HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, + ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, + illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} + }))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string", + begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={ + $pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={ + begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0} + ;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{ + begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", + excludeEnd:!0} + },s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ + className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 + },s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={ + beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not" + }].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0, + contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute", + begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0, + illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword", + begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", + starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={ + className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ + begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{ + begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, + returnEnd:!0,illegal:"[<='$\"]",relevance:0, + contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ + begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" + },m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{ + className:"selector-pseudo",begin:":("+i.join("|")+")"},{ + className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)", + contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`, + returnBegin:!0,contains:[k]} + ;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{ + name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})()); + hljs.registerLanguage("lua",(()=>{"use strict";return e=>{ + const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"] + },o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], + relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, + literal:"true false nil", + keyword:"and break do else elseif end for goto if in local not or repeat return then until while", + built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" + },contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", + contains:[e.inherit(e.TITLE_MODE,{ + begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", + begin:"\\(",endsWithParent:!0,contains:o}].concat(o) + },e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", + begin:t,end:a,contains:[n],relevance:5}])}}})()); + hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={ + className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", + contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} + function a(...n){return n.map((n=>e(n))).join("")}function s(...n){ + return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ + const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={ + className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/, + contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] + },c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{ + className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{ + className:"meta-string"}),m={endsWithParent:!0,illegal:/`]+/}]}] + }]};return{name:"HTML, XML", + aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], + case_insensitive:!0,contains:[{className:"meta",begin://, + relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta", + begin://,contains:[r,c,g,l]}]}]},e.COMMENT(//,{ + relevance:10}),{begin://,relevance:10},i,{ + className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag", + begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{ + end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", + begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{ + end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ + className:"tag",begin:/<>|<\/>/},{className:"tag", + begin:a(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name", + begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))), + contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0, + endsParent:!0}]}]}}})()); + hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){ + return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e + })).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">", + subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0 + },{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, + relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), + relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ + begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{ + className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, + returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", + excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", + end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[], + variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={ + className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ + begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s) + ;let t=[a,i] + ;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t), + t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ + className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{ + begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", + contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", + end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t, + end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ + begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ + begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", + contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ + begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ + className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ + className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})()); + hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={ + className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{ + begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{ + $pattern:"[a-z/_]+", + literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" + },relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", + contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ + }]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n] + },{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^", + end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ + begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", + begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ + className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{ + name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ + begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{ + className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{ + begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{ + className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}], + illegal:"[^\\s\\}]"}}})()); + hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{ + const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n, + keyword:"@interface @class @protocol @implementation"};return{ + name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], + keywords:{$pattern:n, + keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN", + literal:"false true FALSE TRUE nil YES NO NULL", + built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" + },illegal:"/,end:/$/, + illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ + className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/, + excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{ + begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})()); + hljs.registerLanguage("perl",(()=>{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function n(...n){ + return n.map((n=>e(n))).join("")}function t(...n){ + return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ + const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/, + keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" + },i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/, + end:/\}/},o={variants:[{begin:/\$\d/},{ + begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") + },{begin:/[$%@][^\s\w{]/,relevance:0}] + },c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{ + const i="\\1"===s?s:n(s,t) + ;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r) + },d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ + endsWithParent:!0}),a,{className:"string",contains:c,variants:[{ + begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", + end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ + begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", + relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", + contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", + contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ + begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", + begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", + relevance:0},{ + begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", + keywords:"split return print reverse grep",relevance:0, + contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ + begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{ + begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{ + className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ + begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{ + begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ + begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", + end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ + begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", + subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] + }];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s, + contains:p}}})()); + hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={ + className:"variable", + begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={ + className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{ + begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/, + end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null + }),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null, + contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({ + begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, + contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string", + contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'" + }),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{ + begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{ + begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{ + begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?" + }],relevance:0},c={ + keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield", + literal:"false null true", + built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass" + };return{aliases:["php3","php4","php5","php6","php7","php8"], + case_insensitive:!0,keywords:c, + contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t] + }),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}] + }),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0, + keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{ + begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function", + relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0, + illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{ + begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)", + excludeBegin:!0,excludeEnd:!0,keywords:c, + contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{ + beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", + illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ + beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ + beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, + contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";", + contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})()); + hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({ + name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/, + subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"', + end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{ + illegal:null,className:null,contains:null,skip:!0 + }),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null, + skip:!0})]}]})})()); + hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({ + name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})()); + hljs.registerLanguage("properties",(()=>{"use strict";return e=>{ + var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={ + end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{ + begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties", + case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{ + returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+", + relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}], + starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta", + begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0, + begin:s+n+"$"}]}}})()); + hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={ + $pattern:/[A-Za-z]\w+|__\w+__/, + keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"], + built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], + literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], + type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] + },a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/, + end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={ + className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ + begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, + contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ + begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, + contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ + begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, + contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, + end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/, + relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ + begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, + end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, + contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, + contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] + },r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={ + className:"number",relevance:0,variants:[{ + begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{ + begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{ + begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{ + begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={ + className:"comment", + begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")), + end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/, + endsWithParent:!0}]},c={className:"params",variants:[{className:"", + begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0, + keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d + ;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"], + keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{ + beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{ + className:"function",beginKeywords:"def"},{className:"class", + beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/, + contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}] + },{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})()); + hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({ + aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$", + subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{ + begin:/^\.\.\.(?=[ ]|$)/}]}]})})()); + hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{ + return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{ + const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R", + illegal:/->/,keywords:{$pattern:n, + keyword:"function if in break next repeat else for while", + literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", + built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" + },compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return + ;if(a.starts)throw Error("beforeMatch cannot be used with starts") + ;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e] + })),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0, + contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch + }],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag", + begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/, + endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag", + begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{ + begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag", + begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}] + }),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE], + variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ + }),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ + }),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ + }),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ + }),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ + }),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', + relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0, + beforeMatch:/([^a-zA-Z0-9._])/,variants:[{ + match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{ + match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{ + match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{ + begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{ + begin:/\\./}]}]}}})()); + hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){ + return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n + })).join("")}return n=>{ + const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={ + keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__", + built_in:"proc lambda",literal:"true false nil"},s={className:"doctag", + begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s] + }),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10 + }),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/, + keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{ + begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/, + end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{ + begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/, + end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{ + begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{ + begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ + begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ + begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ + begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{ + begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, + contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number", + relevance:0,variants:[{ + begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ + begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" + },{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ + begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ + begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)", + endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module", + end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{ + begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{ + begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{ + className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))), + relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a + }),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol", + begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", + begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable", + begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ + className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{ + begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{ + className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{ + begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(", + end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}] + }].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o + ;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta", + begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", + starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby", + aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/, + contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})()); + hljs.registerLanguage("rust",(()=>{"use strict";return e=>{ + const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!" + ;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?", + keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield", + literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}})()); + hljs.registerLanguage("scss",(()=>{"use strict" + ;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() + ;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, + HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, + ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, + illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} + }))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable", + begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0, + illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{ + className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ + className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 + },n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", + begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", + begin:":("+s.join("|")+")"},{className:"selector-pseudo", + begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE] + },{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{ + begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" + },{begin:":",end:";", + contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT] + },{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@", + end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, + keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d, + className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" + },c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}} + })()); + hljs.registerLanguage("shell",(()=>{"use strict";return s=>({ + name:"Shell Session",aliases:["console"],contains:[{className:"meta", + begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/, + subLanguage:"bash"}}]})})()); + hljs.registerLanguage("sql",(()=>{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function r(...r){ + return r.map((r=>e(r))).join("")}function t(...r){ + return"("+r.map((r=>e(r))).join("|")+")"}return e=>{ + const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={ + begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL", + case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/, + keyword:((e,{exceptions:r,when:t}={})=>{const n=t + ;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) + })(l,{when:e=>e.length<3}),literal:a,type:i, + built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] + },contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o), + literal:a,type:i}},{className:"type", + begin:t("double precision","large object","with timezone","without timezone") + },u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ + begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ + begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator", + begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})()); + hljs.registerLanguage("swift",(()=>{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} + function a(...n){return n.map((n=>e(n))).join("")}function t(...n){ + return"("+n.map((n=>e(n))).join("|")+")"} + const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] + ;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ + contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword", + begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={ + match:a(/\./,t(...r)),relevance:0 + },C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{ + className:"keyword", + match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={ + $pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{ + match:a(/\./,t(...d)),relevance:0},{className:"built_in", + match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{ + className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] + }],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ + match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ + match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ + match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({ + className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{ + match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst", + match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst", + label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/), + end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/), + end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string", + variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={ + match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{ + className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/, + className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, + contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{ + className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{ + className:"type", + match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") + },{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ + match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={ + begin://,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z) + ;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{ + match:a(w,/\s*:/),keywords:"_|0",relevance:0 + },...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{ + className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={ + begin://,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D, + contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0, + contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}] + },...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={ + className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/] + },X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{ + keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p], + illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{ + className:"title",match:b,endsParent:!0,relevance:0}]},Q={ + beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{ + className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0, + endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){ + const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D + ;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/, + contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{ + className:"class",beginKeywords:"struct protocol class extension enum", + end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{ + begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{ + beginKeywords:"import",end:/$/,contains:[...v],relevance:0 + },...B,...k,...S,I,K,...z,...q,U,G]}}})()); + hljs.registerLanguage("typescript",(()=>{"use strict" + ;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) + ;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{ + return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ + const c={$pattern:e, + keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]), + literal:a, + built_in:s.concat(["any","void","number","boolean","string","object","never","enum"]) + },o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{ + const s=e.contains.findIndex((e=>e.label===n)) + ;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a) + },b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/, + end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ + const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{ + const a="", + returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ + begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 + },{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] + },{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ + variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, + end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, + contains:["self"]}]}],relevance:0},{className:"function", + beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, + contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{ + beginKeywords:"while if switch catch for"},{className:"function", + begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", + returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ + begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", + beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ + beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, + end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A] + },{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", + contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}] + }})(i) + ;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{ + beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface", + end:/\{/,excludeEnd:!0,keywords:"interface extends" + }]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10, + begin:/^\s*['"]use strict['"]/ + }),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{ + name:"TypeScript",aliases:["ts","tsx"]}),b}})()); + hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){ + return e?"string"==typeof e?e:e.source:null}function n(...n){ + return n.map((n=>e(n))).join("")}function t(...n){ + return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ + const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={ + className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{ + begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{ + begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{ + className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{ + begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET", + aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{ + keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", + built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", + type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", + literal:"true false nothing"}, + illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ + className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, + end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0, + variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ + },{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ + begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ + className:"label",begin:/^\w+:/},l,c,{className:"meta", + begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, + end:/$/,keywords:{ + "meta-keyword":"const disable else elseif enable end externalsource if region then" + },contains:[c]}]}}})()); + hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{ + var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ + className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ + },{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", + variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ + variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ + end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, + end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", + contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ + begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ + begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", + relevance:10},{className:"string", + begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ + begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, + relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", + begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a + },{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", + begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", + relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ + className:"number", + begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" + },{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] + ;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, + aliases:["yml"],contains:b}}})()); \ No newline at end of file diff --git a/js/highlight.js.LICENSE b/js/highlight.js.LICENSE new file mode 100644 index 00000000000..d4906cd67cb --- /dev/null +++ b/js/highlight.js.LICENSE @@ -0,0 +1,11 @@ +Copyright (c) 2006-2021, Ivan Sagalaev + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/js/main.js b/js/main.js new file mode 100644 index 00000000000..eb8abfe8b2d --- /dev/null +++ b/js/main.js @@ -0,0 +1,255 @@ +// ID Scroll +const links = document.querySelectorAll("div.item-wrapper"); +const contents = document.querySelectorAll("#content")[0]; + +lastActive = null; + +if (contents) { + contents.addEventListener('scroll', (e) => { + links.forEach((ha) => { + const rect = ha.getBoundingClientRect(); + if (rect.top > 0 && rect.top < 150) { + const location = window.location.toString().split("#")[0]; + history.replaceState(null, null, location + "#" + ha.id); + + if (lastActive != null) { + lastActive.classList.remove("active-item"); + } + + lastActive = document.querySelectorAll(`#nav-contents a[href="#${ha.id}"]`)[0]; + if (lastActive != null) { + lastActive.classList.add("active-item"); + } + } + }); + }); +} + + + // Active Tab +const pageLink = window.location.toString().replaceAll(/(.*)\/(.+?).html(.*)/gi, '$2'); +if (pageLink === "" || pageLink == window.location.toString()) // home page - when there is no `.+?.html` pageLink will = windown.location due to current regex + document.querySelectorAll('#global-navigation a[href="index.html"]')[0].classList.add("active-tab"); +else + document.querySelectorAll(`#global-navigation a[href="${pageLink}.html"]`)[0].classList.add("active-tab"); + + +// No Left Panel +for (e in {"content-no-docs": 0, "content": 1}) { + let noLeftPanel = document.querySelectorAll(`#${e}.no-left-panel`)[0]; + if (noLeftPanel != null) + document.querySelectorAll('#side-nav')[0].classList.add('no-left-panel'); +} + +// <> Magic Text +function getRandomChar() { + chars = "ÂÃÉÊÐÑÙÚÛÜéêëãòóôēĔąĆćŇň1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ~!@#$%^&*()-=_+{}["; + return chars.charAt(Math.floor(Math.random() * chars.length) + 1) +} + +function magicTextGen(element) { + var msg = element.textContent; + var length = msg.length; + + setInterval(() => { + var newMsg = ""; + for (i = 0; i <= length; i++) { + newMsg += getRandomChar(msg.charAt(i)); + } + element.textContent = newMsg; + + }, 30) +} + +function renderMagicText() { + document.querySelectorAll('.magic-text').forEach((e) => { + magicTextGen(e); + }) +} +renderMagicText(); + +// Magic Text + +// <> Mobile anchor correction due to doubled size header) +function offsetAnchor(event, element) { + if (window.innerWidth <= 768) { + event.preventDefault(); + content = document.querySelectorAll("#content")[0]; + actualElement = document.getElementById(element.getAttribute("href").replace("#", "")); + content.scroll(0, actualElement.offsetTop - 15); + } +} + +document.querySelectorAll("#nav-contents a").forEach((e) => { + e.addEventListener("click", (event) => { + offsetAnchor(event, e); + }); +}) +// Mobile anchor correction + +// <> Anchor click copy link +function copyToClipboard() { + setTimeout(() => { + var cb = document.body.appendChild(document.createElement("input")); + cb.value = window.location.href; + cb.focus(); + cb.select(); + document.execCommand('copy'); + cb.parentNode.removeChild(cb); + }, 50) +} +function showNotification(text, bgColor, color) { + var noti = document.body.appendChild(document.createElement("span")); + noti.id = "notification-box"; + + setTimeout(() => { + noti.textContent = text; + if (bgColor) + noti.styles.backgroundColor = bgColor; + if (color) + noti.styles.backgroundColor = color; + noti.classList.add("activate-notification"); + setTimeout(() => { + noti.classList.remove("activate-notification"); + setTimeout(() => { + noti.parentNode.removeChild(noti); + }, 200); + }, 1500); + }, 50); +} + +const currentPageLink = window.location.toString().replaceAll(/(.+?.html)(.*)/gi, '$1'); +document.querySelectorAll(".item-title > a").forEach((e) => { + e.addEventListener("click", (event) => { + copyToClipboard(); + showNotification("✅ Link copied successfully.") + }); +}) +// Anchor click copy link + +// <> Search Bar +function versionCompare(base, target) { // Return -1, 0, 1 + base = base.replaceAll(/(\d\.\d(\.\d|)).*/gi, "$1").replaceAll(/[^0-9]/gi, ""); // Handle special chars and versions like -dev21 and filter non digits + target = target.replaceAll(/(\d\.\d(\.\d|)).*/gi, "$1").replaceAll(/[^0-9]/gi, ""); + + base = parseInt(base) < 100 ? parseInt(base) * 10 : parseInt(base); // convert ten's to hundred's to fix (2.5.1+ not reiggering 2.6 by converting 26 -> 260) + target = parseInt(target) < 100 ? parseInt(target) * 10 : parseInt(target); + + + if (target > base) + return 1 + if (target == base) + return 0 + if (target < base) + return -1 +} + +var content = document.getElementById("content"); +if (content) { + content.insertAdjacentHTML('afterbegin', ''); +} + +var searchBar = document.getElementById("search-bar"); +if (searchBar) { + searchBar.focus() // To easily search without the need to click + searchBar.addEventListener('keydown', (event) => { + setTimeout(() => { // Important to actually get the value after typing or deleting + let allElements = document.querySelectorAll(".item-wrapper"); + let searchValue = searchBar.value; + let count = 0; // Check if any matches found + let pass; + + let version = searchValue.replaceAll(/v(?:ersion|)\:(\d\.\d(?:\.\d)?)\+?/gi, "$1").replaceAll(/[^0-9.]/gi, ""); + let versionAndUp = searchValue.replaceAll(/v(?:ersion|)\:\d\.\d(?:\.\d)?(\+?)/gi, "$1").replaceAll(/[^+]/g, "") == "+"; + searchValue = searchValue.replaceAll(/ ?v(ersion|)\:(\d\.\d(\.\d)?)\+?/gi, "") // Don't include filters in the search + searchValue = searchValue.replaceAll(/( ){2,}/gi, " ") // Filter duplicate spaces + + searchValue = searchValue.replaceAll(/[^a-zA-Z0-9 ]/gi, ""); // Filter none alphabet and digits to avoid regex errors + + allElements.forEach((e) => { + let patterns = document.querySelectorAll(`#${e.id} .item-details .skript-code-block`); + for (let i = 0; i < patterns.length; i++) { // Search in the patterns for better results + let pattern = patterns[i]; + // let regex = new RegExp("\\b" + searchValue + "\\b", "gi") // Makes live character update useless + let regex = new RegExp(searchValue, "gi") + let name = document.querySelectorAll(`#${e.id} .item-title h1`)[0].textContent // Syntax Name + let versionFound; + + if (version != "") { + versionFound = document.querySelectorAll(`#${e.id} .item-details:nth-child(2) td:nth-child(2)`)[0].textContent.includes(version); + + if (versionAndUp) { + let versions = document.querySelectorAll(`#${e.id} .item-details:nth-child(2) td:nth-child(2)`)[0].textContent.split(","); + for (const v in versions) { // split on ',' without space in case some version didn't have space and versionCompare will handle it + if (versionCompare(version, versions[v]) == 1 == true) { + versionFound = true; + break; // Performance + } + } + } + } else { + versionFound = true; + } + if ((regex.test(pattern.textContent) || regex.test(name) || searchValue == "") && versionFound) { + pass = true + break; // Performance + } + } + + // Filter + let sideNavItem = document.querySelectorAll(`#nav-contents a[href="#${e.id}"]`)[0]; + if (pass) { + e.style.display = null; + if (sideNavItem) + sideNavItem.style.display = null; + count++; + } else { + e.style.display = "none"; + if (sideNavItem) + sideNavItem.style.display = "none"; + } + + pass = false; // reset + }) + + if (count == 0) { + if (document.getElementById("no-matches") == null) + document.getElementById("content").insertAdjacentHTML('beforeend', '

      No matches found.

      '); + } else { + if (document.getElementById("no-matches") != null) + document.getElementById("no-matches").remove(); + } + + count = 0; // reset + }, 100); // Spam delay for better performance + + }); +} +// Search Bar + +// <> HighlightJS +document.querySelectorAll('pre.code').forEach(el => { // Apply the code formatting on the same
       not the  inside to not break the styling
      +  hljs.highlightElement(el);
      +});
      +document.querySelectorAll('div .skript-code-block').forEach(el => { // This lags the docs pages due to the huge amount of elements being parsed, we can disable this if lag is so bad for some people or keep it because it looks AMAZING!
      +  hljs.highlightElement(el);
      +});
      +// HighlightJS 
      +
      +// <> Placeholders
      +function replacePlaceholders(html) {
      +  let innerHTML = html.innerHTML;
      +  if (innerHTML.includes("${latest-version}")) {
      +    let lv = $.getJSON("https://api.github.com/repos/SkriptLang/Skript/releases?per_page=1", (data) => {
      +      html.innerHTML = html.innerHTML.replaceAll("${latest-version}", data[0]["tag_name"]);
      +    })
      +  }
      +  if (innerHTML.includes("${contributors-size}")) {
      +    let lv = $.getJSON("https://api.github.com/repos/SkriptLang/Skript/contributors?per_page=500", (data) => {
      +      html.innerHTML = html.innerHTML.replaceAll("${contributors-size}", data.length);
      +    })
      +  }
      +}
      +replacePlaceholders(document.querySelector("body"));
      +// Placeholders 
      +
      diff --git a/old/classes.html b/old/classes.html
      deleted file mode 100644
      index 59e5cd3cdba..00000000000
      --- a/old/classes.html
      +++ /dev/null
      @@ -1,1781 +0,0 @@
      -
      -
      -
      -  
      -  
      -  Skript Documentation - 2.2-dev37c
      -  
      -
      -
      -  
      -
      -  
      -  
      -

      Types

      - - - -
      Biome
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • Biome names; you can use F3 ingame
      • - -
      -
      Since:1.4.4
      - -
      - All possible biomes Minecraft uses to generate a world. -
      - -
      - - Examples: - -
      - biome at the player is desert -
      - -
      -
      - - -
      Block
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Boolean
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • true/yes/on or false/no/off
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - set {config.%player%.use mod} to false -
      - -
      -
      - - -
      Chunk
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:2.0
      - -
      - A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Click Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:2.2-dev16b, 2.2-dev35 (renamed to click type)
      - -
      - Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Colour
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:
      - -
      - Wool, dye and chat colours. -
      - -
      - - Examples: - -
      - color of the sheep is red or black -
      set the colour of the block to green -
      message "You're holding a <%color of tool%>%color of tool% wool block" -
      - -
      -
      - - -
      Command Sender
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • use <a href='../expressions/#LitConsole'>the console</a> for the console
      • -
      • see <a href='#player'>player</a> for players.
      • - -
      -
      Since:1.0
      - -
      - A player or the console. -
      - -
      - - Examples: - -
      - on command /pm: -
      command sender is not the console -
      chance of 10% -
      give coal to the player -
      message "You got a piece of coal for sending that PM!" -
      - -
      -
      - - -
      Damage Cause
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:2.0
      - -
      - The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc. -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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Date
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.4
      - -
      - A date is a certain point in the real world's time which can currently only be obtained with now. -See time and timespan for the other time types of Skript. -
      - -
      - - Examples: - -
      - set {_yesterday} to now -
      subtract a day from {_yesterday} -
      # now {_yesterday} represents the date 24 hours before now -
      - -
      -
      - - -
      Direction
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • see <a href='../expressions/#ExprDirection'>direction (expression)</a>
      • - -
      -
      Since:2.0
      - -
      - A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc. -Locations and some blocks also have a direction, but without a length. -Please note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments. -
      - -
      - - Examples: - -
      - set the block below the victim to a chest -
      loop blocks from the block infront of the player to the block 10 below the player: -
      set the block behind the loop-block to water -
      - -
      -
      - - -
      Enchantment
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • Protection, Fire Protection, Feather Falling, Blast Protection, Projectile Protection, Respiration, Aqua Affinity, Mending, Thorns, Curse of Vanishing, Depth Strider, Frost Walker, Curse of Binding, Sharpness, Smite, Bane of Arthropods, Knockback, Fire Aspect, Looting, Sweeping Edge, Efficiency, Silk Touch, Unbreaking, Fortune, Power, Punch, Flame, Infinity, Luck of the Sea, Lure
      • - -
      -
      Since:1.4.6
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Enchantment Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>&lt;enchantment&gt; [&lt;level&gt;]</code>
      • - -
      -
      Since:1.4.6
      - -
      - An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'. -
      - -
      - - Examples: - -
      - enchant the player's tool with sharpness 5 -
      helmet is enchanted with waterbreathing -
      - -
      -
      - - -
      Entity
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc.
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - entity is a zombie or creeper -
      player is an op -
      projectile is an arrow -
      shoot a fireball from the player -
      - -
      -
      - - -
      Entity Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <i>Detailed usage will be added eventually</i>
      • - -
      -
      Since:1.3
      - -
      - The type of an entity, e.g. player, wolf, powered creeper, etc. -
      - -
      - - Examples: - -
      - victim is a cow -
      spawn a creeper -
      - -
      -
      - - -
      Entity Type with Amount
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • &lt;<a href='#number'>number</a>&gt; &lt;entity type&gt;
      • - -
      -
      Since:1.3
      - -
      - 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. -
      - -
      - - Examples: - -
      - spawn 5 creepers behind the player -
      - -
      -
      - - -
      Experience
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>[&lt;number&gt;] ([e]xp|experience [point[s]])</code>
      • - -
      -
      Since:2.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - give 10 xp to the player -
      - -
      -
      - - -
      Game Mode
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • creative/survival/adventure
      • - -
      -
      Since:1.0
      - -
      - The game modes survival, creative and adventure. -
      - -
      - - Examples: - -
      - player's gamemode is survival -
      set the player argument's game mode to creative -
      - -
      -
      - - -
      Inventory
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.0
      - -
      - An inventory of a player or block. Inventories have many effects and conditions regarding the items contained. -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). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Inventory Action
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:2.2-dev16
      - -
      - What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Inventory Slot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:
      - -
      - Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. -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). -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. -
      - -
      - - Examples: - -
      - set tool of player to dirt -
      delete helmet of the victim -
      set the colour of the player's tool to green -
      enchant the player's chestplate with projectile protection 5 -
      - -
      -
      - - -
      Inventory Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:2.2-dev32
      - -
      - Minecraft has several different inventory types with their own use cases. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Item / Material
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>[&lt;number&gt; [of]] &lt;alias&gt; [of &lt;enchantment&gt; &lt;level&gt;]</code>, Where &lt;alias&gt; must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')
      • - -
      -
      Since:1.0
      - -
      - 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). -You don't usually need this type except when you want to make a command that only accepts an exact item. -Please note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments. -
      - -
      - - Examples: - -
      - set {_item} to type of the targeted block -
      {_item} is a torch -
      - -
      -
      - - -
      Item Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>[&lt;number&gt; [of]] [all/every] &lt;alias&gt; [of &lt;enchantment&gt; [&lt;level&gt;] [,/and &lt;more enchantments...&gt;]]</code>
      • - -
      -
      Since:1.0
      - -
      - 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. -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. -
      - -
      - - Examples: - -
      - give 4 torches to the player -
      add all slabs to the inventory of the block -
      player's tool is a diamond sword of sharpness -
      remove a pickaxes of fortune 4 from {stored items::*} -
      set {_item} to 10 of every upside-down stair -
      block is dirt or farmland -
      - -
      -
      - - -
      Living Entity
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • see <a href='#entity'>entity</a>, but ignore inanimate objects
      • - -
      -
      Since:1.0
      - -
      - A living entity, i.e. a mob or player, not inanimate entities like projectiles or dropped items. -
      - -
      - - Examples: - -
      - spawn 5 powered creepers -
      shoot a zombie from the creeper -
      - -
      -
      - - -
      Location
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Metadata Holder
      -
      - - - - - - - - - - - - -
      Pattern: -
        - -
      -
      Since:2.2-dev36
      - -
      - Something that can hold metadata (e.g. an entity or block) -
      - -
      - - Examples: - -
      - set metadata value "super cool" of player to true -
      - -
      -
      - - -
      Money
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>&lt;number&gt; $</code> or <code>$ &lt;number&gt;</code>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'
      • - -
      -
      Since:2.0
      - -
      - A certain amount of money. Please note that this differs from numbers as it includes a currency symbol or name, but usually the two are interchangeable, e.g. you can both add 100$ to the player's balance and add 100 to the player's balance. -
      - -
      - - Examples: - -
      - add 10£ to the player's account -
      remove Fr. 9.95 from the player's money -
      set the victim's money to 0 -
      increase the attacker's balance by the level of the victim * 100 -
      - -
      -
      - - -
      Number
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [-]###[.###]</code> (any amount of digits; very large numbers will be truncated though)
      • - -
      -
      Since:1.0
      - -
      - A number, e.g. 2.5, 3, or -9812454. -Please note that many expressions only need integers, i.e. will discard any frational parts of any numbers without producing an error. -
      - -
      - - Examples: - -
      - set the player's health to 5.5 -
      set {_temp} to 2*{_temp} - 2.5 -
      - -
      -
      - - -
      Object
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.0
      - -
      - The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Offlineplayer
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Player
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • - -
      -
      Since:1.0
      - -
      - 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. -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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Potion Effect Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • 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
      • - -
      -
      Since:
      - -
      - A potion effect type, e.g. 'strength' or 'swiftness'. -
      - -
      - - Examples: - -
      - apply swiftness 5 to the player -
      apply potion of speed 2 to the player for 60 seconds -
      remove invisibility from the victim -
      - -
      -
      - - -
      Projectile
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • arrow, fireball, snowball, thrown potion, etc.
      • - -
      -
      Since:1.0
      - -
      - A projectile, e.g. an arrow, snowball or thrown potion. -
      - -
      - - Examples: - -
      - projectile is a snowball -
      shoot an arrow at speed 5 from the player -
      - -
      -
      - - -
      Region
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • "region name"
      • - -
      -
      Since:2.1
      - -
      - A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones. -Please note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like "region name" in scripts may or may not work. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Text
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • simple: "..."
      • -
      • quotes: "...""..."
      • -
      • expressions: "...%expression%..."
      • -
      • percent signs: "...%%..."
      • - -
      -
      Since:1.0
      - -
      - 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). -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. -Please read the article on Texts and Variable Names to learn more. -
      - -
      - - Examples: - -
      - broadcast "Hello World!" -
      message "Hello %player%" -
      message "The id of ""%type of tool%"" is %id of tool%." -
      - -
      -
      - - -
      Time
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>##:##</code>
      • -
      • <code>##[:##][ ]am/pm</code>
      • - -
      -
      Since:1.0
      - -
      - 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. -See date and timespan for the other time types of Skript. -
      - -
      - - Examples: - -
      - at 20:00: -
      time is 8 pm -
      broadcast "It's %time%" -
      - -
      -
      - - -
      Timeperiod
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>##:## - ##:##</code>
      • -
      • dusk/day/dawn/night
      • - -
      -
      Since:1.0
      - -
      - 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. -This type might be removed in the future as you can use 'time of world is between x and y' as a replacement. -
      - -
      - - Examples: - -
      - time in world is night -
      - -
      -
      - - -
      Timespan
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>&lt;number&gt; [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] &lt;more...&gt;</code>]
      • -
      • <code>[###:]##:##[.####]</code> ([hours:]minutes:seconds[.milliseconds])
      • - -
      -
      Since:1.0
      - -
      - 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'. -See date and time for the other time types of Skript. -
      - -
      - - Examples: - -
      - every 5 minecraft days: -
      wait a minecraft second and 5 ticks -
      every 10 mc days and 12 hours: -
      halt for 12.7 irl minutes, 12 hours and 120.5 seconds -
      - -
      -
      - - -
      Tree Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>[any] &lt;general tree/mushroom type&gt;</code>, e.g. tree/any jungle tree/etc.
      • -
      • <code>&lt;specific tree/mushroom species&gt;</code>, e.g. red mushroom/small jungle tree/big regular tree/etc.
      • - -
      -
      Since:
      - -
      - A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect. -
      - -
      - - Examples: - -
      - grow any regular tree at the block -
      grow a huge red mushroom above the block -
      - -
      -
      - - -
      Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • See the type name patterns of all types - including this one
      • - -
      -
      Since:2.0
      - -
      - Represents a type, e.g. number, object, item type, location, block, world, entity type, etc. -This is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player. -
      - -
      - - Examples: - -
      - {variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5 -
      {variable} is a type # check whether the variable contains a type, e.g. number or player -
      {variable} is an object # will always succeed if the variable is set as everything is an object, even types. -
      disable PvP in the event-world -
      kill the loop-entity -
      - -
      -
      - - -
      Vector
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vector(x, y, z)
      • - -
      -
      Since:2.2-dev23
      - -
      - Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Visual Effect
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • ender signal, mobspawner flames, potion break, smoke, hurt, sheep eating, wolf hearts, wolf shaking, wolf smoke, 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
      • - -
      -
      Since:2.1
      - -
      - A visible effect, e.g. particles. -
      - -
      - - Examples: - -
      - show wolf hearts on the clicked wolf -
      play mob spawner flames at the targeted block to the player -
      - -
      -
      - - -
      Weather Type
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm
      • - -
      -
      Since:1.0
      - -
      - The weather types sunny, rainy, and thundering. -
      - -
      - - Examples: - -
      - is raining -
      is sunny in the player's world -
      message "It is %weather in the argument's world% in %world of the argument%" -
      - -
      -
      - - -
      World
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • <code>"world_name"</code>, e.g. "world"
      • - -
      -
      Since:1.0, 2.2 (alternate syntax)
      - -
      - 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. -
      - -
      - - Examples: - -
      - broadcast "Hello!" to the world "world_nether" -
      - -
      -
      - - -
      - - - diff --git a/old/conditions.html b/old/conditions.html deleted file mode 100644 index f810f2f04d5..00000000000 --- a/old/conditions.html +++ /dev/null @@ -1,1789 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
      -

      Conditions

      - - - -
      Can Build
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Tests whether a player is allowed to build at a certain location. -This condition requires a supported regions plugin to be installed. -
      - -
      - - Examples: - -
      - command /setblock : -
      description: set the block at your crosshair to a different type -
      trigger: -
      player cannot build at the targeted block: -
      message "You do not have permission to change blocks there!" -
      stop -
      set the targeted block to argument -
      - -
      -
      - - -
      Can Hold
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Tests whether a player or a chest can hold the given item. -
      - -
      - - Examples: - -
      - block can hold 200 cobblestone -
      player has enough space for 64 feathers -
      - -
      -
      - - -
      Can See
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev37c
      - -
      - Checks whether the given players can see another players. -
      - -
      - - Examples: - -
      - if the player can't see the player-argument: -
      message "The player %player-argument% is not online!" -
      - -
      -
      - - -
      Chance
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • chance of %number%[\%]
      • - -
      -
      Since:1.0
      - -
      - A condition that randomly succeeds or fails. -Valid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1. -
      - -
      - - Examples: - -
      - chance of 50%: -
      drop a diamond -
      chance of {var}% # {var} between 0 and 100 -
      chance of {var} # {var} between 0 and 1 -
      - -
      -
      - - -
      Comparison
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [neither] %objects% ((is|are)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above)|\>) %objects%
      • -
      • [neither] %objects% ((is|are)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|\>=) %objects%
      • -
      • [neither] %objects% ((is|are)[((n't| not| neither)]) ((less|smaller) than|below)|\<) %objects%
      • -
      • [neither] %objects% ((is|are)[((n't| not| neither)]) (less|smaller|below) [than] or (equal to|the same as)|\<=) %objects%
      • -
      • [neither] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%
      • -
      • [neither] %objects% (is|are|=) [(equal to|the same as)] %objects%
      • -
      • [neither] %objects% (is|are) between %objects% and %objects%
      • -
      • [neither] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%
      • -
      • [neither] %objects% (was|were)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above) %objects%
      • -
      • [neither] %objects% (was|were)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%
      • -
      • [neither] %objects% (was|were)[((n't| not| neither)]) ((less|smaller) than|below) %objects%
      • -
      • [neither] %objects% (was|were)[((n't| not| neither)]) (less|smaller|below) [than] or (equal to|the same as) %objects%
      • -
      • [neither] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%
      • -
      • [neither] %objects% (was|were) [(equal to|the same as)] %objects%
      • -
      • [neither] %objects% (was|were) between %objects% and %objects%
      • -
      • [neither] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%
      • -
      • [neither] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%
      • -
      • [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%
      • -
      • [neither] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller) than|below) %objects%
      • -
      • [neither] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|below) [than] or (equal to|the same as) %objects%
      • -
      • [neither] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%
      • -
      • [neither] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%
      • -
      • [neither] %objects% will be between %objects% and %objects%
      • -
      • [neither] %objects% (will not be|won't be) between %objects% and %objects%
      • - -
      -
      Since:1.0
      - -
      - 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. -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. -
      - -
      - - Examples: - -
      - the clicked block is a stone slab or a double stone slab -
      time in the player's world is greater than 8:00 -
      the creature is not an enderman or an ender dragon -
      - -
      -
      - - -
      Contains
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - block contains 20 cobblestone -
      player has 4 flint and 2 iron ingots -
      - -
      -
      - - -
      Damage Cause
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] damage (was|is|has)[(n('|o)]t) [been] (caused|done|made) by %damage cause%
      • - -
      -
      Since:2.0
      - -
      - Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes. -
      - -
      - - Examples: - -
      - # make players use their potions of fire resistance whenever they take any kind of fire damage -
      on damage: -
      damage was caused by lava, fire or burning -
      victim is a player -
      victim has a potion of fire resistance -
      cancel event -
      apply fire resistance to the victim for 30 seconds -
      remove 1 potion of fire resistance from the victim -
      # prevent mobs from dropping items under certain circumstances -
      on death: -
      entity is not a player -
      damage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison -
      clear drops -
      - -
      -
      - - -
      Event Cancelled
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] event is cancel[l]ed
      • -
      • [the] event (is not|isn't) cancel[l]ed
      • - -
      -
      Since:2.2-dev36
      - -
      - Checks whether or not the event is cancelled -
      - -
      - - Examples: - -
      - on click: -
      if event is cancelled: -
      broadcast "no clicks allowed!" -
      - -
      -
      - - -
      Exists/Is Set
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %~objects% (exist[s]|(is|are) set)
      • -
      • %~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)
      • - -
      -
      Since:1.2
      - -
      - Checks whether a given expression or variable is set. -
      - -
      - - Examples: - -
      - {teams::%player's uuid%::preferred-team} is not set -
      on damage: -
      projectile exists -
      broadcast "%attacker% used a %projectile% to attack %victim%!" -
      - -
      -
      - - -
      Has Metadata
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - Checks whether a metadata holder has a metadata tag. -
      - -
      - - Examples: - -
      - if player has metadata value "healer": -
      - -
      -
      - - -
      Has Permission
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Test whether a player has a certain permission. -
      - -
      - - Examples: - -
      - player has permission "skript.tree" -
      victim has the permission "admin": -
      send "You're attacking an admin!" to attacker -
      - -
      -
      - - -
      Has Played Before
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)
      • -
      • %offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)
      • - -
      -
      Since:1.4
      - -
      - 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. -
      - -
      - - Examples: - -
      - player has played on this server before -
      player hasn't played before -
      - -
      -
      - - -
      Is Alive
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Checks whether an entity is alive. This is mostly useful to check whether an entity stored in a variable does still exist. -
      - -
      - - Examples: - -
      - {villager-buddy::%player's uuid%} is dead -
      - -
      -
      - - -
      Is Banned
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Checks whether a player or IP is banned. -
      - -
      - - Examples: - -
      - player is banned -
      victim is not IP-banned -
      "127.0.0.1" is banned -
      - -
      -
      - - -
      Is Blocking
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %players% (is|are) (blocking|defending)
      • -
      • %players% (isn't|is not|aren't|are not) (blocking|defending)
      • - -
      -
      Since:unknown (before 2.1)
      - -
      - Checks whether a player is blocking with his shield. -
      - -
      - - Examples: - -
      - on damage of player: -
      victim is blocking -
      damage attacker by 0.5 hearts -
      - -
      -
      - - -
      Is Burning
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %entities% (is|are) (burning|ignited|on fire)
      • -
      • %entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)
      • - -
      -
      Since:1.4.4
      - -
      - Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava. -
      - -
      - - Examples: - -
      - # increased attack against burning targets -
      victim is burning: -
      increase damage by 2 -
      - -
      -
      - - -
      Is Edible
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - Checks whether an item is edible. -
      - -
      - - Examples: - -
      - steak is edible -
      player's tool is edible -
      - -
      -
      - - -
      Is Empty
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:unknown (before 2.1)
      - -
      - Checks whether an inventory, an inventory slot, or a text is empty. -
      - -
      - - Examples: - -
      - player's inventory is empty -
      - -
      -
      - - -
      Is Enchanted
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.6
      - -
      - Checks whether an item is enchanted. -
      - -
      - - Examples: - -
      - tool of the player is enchanted with efficiency 2 -
      helm, chestplate, leggings or boots are enchanted -
      - -
      -
      - - -
      Is Flammable
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - Checks whether an item is flammable. -
      - -
      - - Examples: - -
      - wood is flammable -
      player's tool is flammable -
      - -
      -
      - - -
      Is Flying
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %players% (is|are) flying
      • -
      • %players% (isn't|is not|aren't|are not) flying
      • - -
      -
      Since:1.4.4
      - -
      - Checks whether a player is flying. -
      - -
      - - Examples: - -
      - player is not flying -
      - -
      -
      - - -
      Is Holding
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead. -
      - -
      - - Examples: - -
      - player is holding a stick -
      victim isn't holding a sword of sharpness -
      - -
      -
      - - -
      Is Loaded
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev37
      - -
      - Checks whether or not a chunk/world is loaded -
      - -
      - - Examples: - -
      - if chunk at {home::%player's uuid%} is loaded: -
      - -
      -
      - - -
      Is Member/Owner of Region
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.1
      - -
      - Checks whether a player is a member or owner of a particular region. -This condition requires a supported regions plugin to be installed. -
      - -
      - - Examples: - -
      - on region enter: -
      player is the owner of the region -
      message "Welcome back to %region%!" -
      send "%player% just entered %region%!" to all members of the region -
      - -
      -
      - - -
      Is Online
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %offline players% ((is|are) online|(is not|isn't|are not|aren't) offline)
      • -
      • %offline players% ((is|are) offline|(is not|isn't|are not|aren't) online)
      • - -
      -
      Since:1.4
      - -
      - Checks whether a player is online. -
      - -
      - - Examples: - -
      - player is online -
      player-argument is offline -
      - -
      -
      - - -
      Is Poisoned
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.4
      - -
      - Checks whether an entity is poisoned. -
      - -
      - - Examples: - -
      - player is poisoned: -
      cure the player from poison -
      message "You have been cured!" -
      - -
      -
      - - -
      Is Riding
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Tests whether an entity is riding another or is in a vehicle. -
      - -
      - - Examples: - -
      - player is riding a saddled pig -
      - -
      -
      - - -
      Is Script Loaded
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • script[s] [%texts%] (is|are) loaded
      • -
      • script[s] [%texts%] (isn't|is not|aren't|are not) loaded
      • - -
      -
      Since:2.2-dev31
      - -
      - Check if the current script or another script, is current loaded. -
      - -
      - - Examples: - -
      - script is loaded -
      script "example.sk" is loaded -
      - -
      -
      - - -
      Is Sleeping
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %players% (is|are) sleeping
      • -
      • %players% (isn't|is not|aren't|are not) sleeping
      • - -
      -
      Since:1.4.4
      - -
      - Checks whether a player is sleeping. -
      - -
      - - Examples: - -
      - # cut your enemies' throats in their sleep >=) -
      on attack: -
      attacker is holding a sword -
      victim is sleeping -
      increase the damage by 1000 -
      - -
      -
      - - -
      Is Sneaking
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %players% (is|are) sneaking
      • -
      • %players% (isn't|is not|aren't|are not) sneaking
      • - -
      -
      Since:1.4.4
      - -
      - Checks whether a player is sneaking. -
      - -
      - - Examples: - -
      - # prevent mobs from seeing sneaking players if they are at least 4 meters apart -
      on target: -
      target is sneaking -
      distance of target and the entity is bigger than 4 -
      cancel the event -
      - -
      -
      - - -
      Is Solid
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - Checks whether an item is solid. -
      - -
      - - Examples: - -
      - grass block is solid -
      player's tool isn't solid -
      - -
      -
      - - -
      Is Sprinting
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %players% (is|are) sprinting
      • -
      • %players% (isn't|is not|aren't|are not) sprinting
      • - -
      -
      Since:1.4.4
      - -
      - Checks whether a player is sprinting. -
      - -
      - - Examples: - -
      - player is not sprinting -
      - -
      -
      - - -
      Is Transparent
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - Checks whether an item is transparent. -
      - -
      - - Examples: - -
      - glass is transparent -
      player's tool is transparent. -
      - -
      -
      - - -
      Is Wearing
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Checks whether a player is wearing some armour. -
      - -
      - - Examples: - -
      - player is wearing an iron chestplate and iron leggings -
      player is wearing all diamond armour -
      - -
      -
      - - -
      Is in World
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Checks whether an entity is in a specific world. -
      - -
      - - Examples: - -
      - player is in "world" -
      argument isn't in world "world_nether" -
      the player is in the world of the victim -
      - -
      -
      - - -
      Is of Type
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Checks whether an item of 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'). -
      - -
      - - Examples: - -
      - tool is of type {*selected type} -
      victim is of type {villager type} -
      - -
      -
      - - -
      Is on Ground
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %entities% (is|are) on ground
      • -
      • %entities% (isn't|is not|aren't|are not) on ground
      • - -
      -
      Since:2.2-dev26
      - -
      - Checks whether an entity is on ground. -
      - -
      - - Examples: - -
      - player is not on ground -
      - -
      -
      - - -
      PvP
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (is PvP|PvP is) enabled [in %worlds%]
      • -
      • (is PvP|PvP is) disabled [in %worlds%]
      • - -
      -
      Since:1.3.4
      - -
      - Checks the PvP state of a world. -
      - -
      - - Examples: - -
      - PvP is enabled -
      PvP is disabled in "world" -
      - -
      -
      - - -
      Region Contains
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.1
      - -
      - Checks whether a location is contained in a particular region. -This condition requires a supported regions plugin to be installed. -
      - -
      - - Examples: - -
      - player is in the region {regions::3} -
      on region enter: -
      region contains {flags.%world%.red} -
      message "The red flag is near!" -
      - -
      -
      - - -
      Starts/Ends With
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %texts% (start|end)[s] with %text%
      • -
      • %texts% do[es](n't| not) (start|end) with %text%
      • - -
      -
      Since:2.2-dev36
      - -
      - Checks if a text starts or ends with another. -
      - -
      - - Examples: - -
      - if the argument starts with "test": -
      send "Stop!" -
      - -
      -
      - - -
      Time
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %date% (was|were)( more|(n't| not) less) than %time span% [ago]
      • -
      • %date% (was|were)((n't| not) more| less) than %time span% [ago]
      • - -
      -
      Since:2.0
      - -
      - Tests whether a given real time was more or less than some time span ago. -
      - -
      - - Examples: - -
      - command /command-with-cooldown: -
      trigger: -
      {command::%player's uuid%::last-usage} was less than a minute ago: -
      message "Please wait a minute between uses of this command." -
      stop -
      set {command::%player's uuid%::last-usage} to now -
      # ... actual command trigger here ... -
      - -
      -
      - - -
      Weather
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Checks whether the weather in a world is of a specific type. -I welcome any ideas how to write this condition differently. -
      - -
      - - Examples: - -
      - is thundering -
      is raining in "world" or "world2" -
      - -
      -
      - - -
      - - - diff --git a/old/css/styles.css b/old/css/styles.css deleted file mode 100644 index 7cdb0ed2b76..00000000000 --- a/old/css/styles.css +++ /dev/null @@ -1,172 +0,0 @@ -@media (min-device-width:700px){ - body{ - font-size: 10pt; - } - #content{ - margin-left: 230px; - } - nav{ - width: 200px; - position:fixed; - height:90%; - overflow-y:auto; - } - #nav-title{ - font-size:15pt; - } - .item-title{ - font-size: 15pt; - } -} - -@media (max-device-width:700px){ - body{ - font-size: 15pt; - } - #nav-title{ - font-size: 15pt; - } - .item-title{ - font-size: 15pt; - } -} - -body { - font-family:sans-serif; - padding: 0px; - margin: 0px; - background-color: #e6f7ff; -} - -#global-navigation{ - background-color: #5BC7F9; - padding: 10px; - font-size: 12pt; - font-weight: bold; - white-space: nowrap; - overflow: auto; - position: fixed; - width: 100%; - z-index: 100; -} - -#global-navigation a{ - color: #000000; - padding: 10px; - display: inline-block; - text-align: center; -} - -#global-navigation a:hover, -#global-navigation a:hover:active{ - background-color: white; - border-radius: 5px; -} - -nav{ - list-style: none; - background-color: #e6f7ff; - padding:10px; - margin-top: 50px; - -} - -#nav-title{ - font-weight: bold; - border-bottom: solid 2px #00aeff; - margin-bottom: 10px; - position: fixed; -} - -#nav-contents{ - padding-top: 30px; -} - -nav p { - padding: 3px; - margin: 0px; -} - -nav p a{ - color: black; - display: block; - border-radius: 3px; -} -nav p a:hover{ - background-color:#5BC7F9; -} - -#content{ - background-color:#e6f7ff; - padding:20px; - padding-top:50px; -} - -.item-title{ - border-bottom: solid 2px black; - font-weight: bold; -} - -.item-content{ - margin-left: 30px; - margin-top:15px; -} - -table{ - border-collapse:collapse; - margin-bottom: 10px; - width:100%; -} - -td { - border: solid 2px #00aeff; - padding: 5px; -} - -td.item-table-label{ - color: white; - background-color: #00aeff; - width: 10%; -} - -td ul{ - list-style:none; - margin: 0px; - padding: 0px; -} - -td li{ - padding-bottom: 3px; -} - -.item-description{ - -} - -a{ - color: #00aeff; - text-decoration:none; -} - -.skript-code-inline{ - font-family: monospace; - background-color: #e0e7eb; - border-radius: 5px; - padding: 2px; - overflow: auto; -} - -.skript-code-block{ - font-family: monospace; - background-color: #e0e7eb; - border-radius: 5px; - padding: 10px; - margin: 10px; - margin-left: 0px; -} - -.box{ - padding: 10px; - border: solid 2px #00aeff; - border-top-width:30px; -} diff --git a/old/docs.json b/old/docs.json deleted file mode 100644 index bc69e9d6b30..00000000000 --- a/old/docs.json +++ /dev/null @@ -1,5792 +0,0 @@ -{ - "skriptVersion" : "2.2-dev37c", - - "classes" : [ - { - "id" : "biome", - "name" : "Biome", - "patterns" : [ - "Biome names; you can use F3 ingame", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "All possible biomes Minecraft uses to generate a world.", - "examples" : "biome at the player is desert" -}, -{ - "id" : "block", - "name" : "Block", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "boolean", - "name" : "Boolean", - "patterns" : [ - "true/yes/on or false/no/off", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "set {config.%player%.use mod} to false" -}, -{ - "id" : "chunk", - "name" : "Chunk", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "2.0", - "description" : "A chunk is a cuboid of 16×16×128 (x×z×y) blocks. Chunks are spread on a fixed rectangular grid in their world.", - "examples" : "" -}, -{ - "id" : "clicktype", - "name" : "Click Type", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "2.2-dev16b, 2.2-dev35 (renamed to click type)", - "description" : "Click type, mostly for inventory events. Tells exactly which keys/buttons player pressed, assuming that default keybindings are used in client side.", - "examples" : "" -}, -{ - "id" : "color", - "name" : "Colour", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "", - "description" : "Wool, dye and chat colours.", - "examples" : "color of the sheep is red or black\\nset the colour of the block to green\\nmessage \"You're holding a <%color of tool%>%color of tool% wool block\"" -}, -{ - "id" : "commandsender", - "name" : "Command Sender", - "patterns" : [ - "use <a href='../expressions/#LitConsole'>the console</a> for the console", -"see <a href='#player'>player</a> for players.", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A player or the console.", - "examples" : "on command /pm:\\n command sender is not the console\\n chance of 10%\\n give coal to the player\\n message \"You got a piece of coal for sending that PM!\"" -}, -{ - "id" : "damagecause", - "name" : "Damage Cause", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The cause/type of a damage event, e.g. lava, fall, fire, drowning, explosion, poison, etc.\\nPlease 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.", - "examples" : "" -}, -{ - "id" : "date", - "name" : "Date", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.4", - "description" : "A date is a certain point in the real world's time which can currently only be obtained with now.\\nSee time and timespan for the other time types of Skript.", - "examples" : "set {_yesterday} to now\\nsubtract a day from {_yesterday}\\n# now {_yesterday} represents the date 24 hours before now" -}, -{ - "id" : "direction", - "name" : "Direction", - "patterns" : [ - "see <a href='../expressions/#ExprDirection'>direction (expression)</a>", - - "pattern_end" - ], - "since" : "2.0", - "description" : "A direction, e.g. north, east, behind, 5 south east, 1.3 meters to the right, etc.\\nLocations and some blocks also have a direction, but without a length.\\nPlease note that directions have changed extensively in the betas and might not work perfectly. They can also not be used as command arguments.", - "examples" : "set the block below the victim to a chest\\nloop blocks from the block infront of the player to the block 10 below the player:\\n set the block behind the loop-block to water" -}, -{ - "id" : "enchantment", - "name" : "Enchantment", - "patterns" : [ - "Protection, Fire Protection, Feather Falling, Blast Protection, Projectile Protection, Respiration, Aqua Affinity, Mending, Thorns, Curse of Vanishing, Depth Strider, Frost Walker, Curse of Binding, Sharpness, Smite, Bane of Arthropods, Knockback, Fire Aspect, Looting, Sweeping Edge, Efficiency, Silk Touch, Unbreaking, Fortune, Power, Punch, Flame, Infinity, Luck of the Sea, Lure", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "enchantmenttype", - "name" : "Enchantment Type", - "patterns" : [ - "<code>&lt;enchantment&gt; [&lt;level&gt;]</code>", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "An enchantment with an optional level, e.g. 'sharpness 2' or 'fortune'.", - "examples" : "enchant the player's tool with sharpness 5\\nhelmet is enchanted with waterbreathing" -}, -{ - "id" : "entity", - "name" : "Entity", - "patterns" : [ - "player, op, wolf, tamed ocelot, powered creeper, zombie, unsaddled pig, fireball, arrow, dropped item, item frame, etc.", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "entity is a zombie or creeper\\nplayer is an op\\nprojectile is an arrow\\nshoot a fireball from the player" -}, -{ - "id" : "entitydata", - "name" : "Entity Type", - "patterns" : [ - "<i>Detailed usage will be added eventually</i>", - - "pattern_end" - ], - "since" : "1.3", - "description" : "The type of an entity, e.g. player, wolf, powered creeper, etc.", - "examples" : "victim is a cow\\nspawn a creeper" -}, -{ - "id" : "entitytype", - "name" : "Entity Type with Amount", - "patterns" : [ - "&lt;<a href='#number'>number</a>&gt; &lt;entity type&gt;", - - "pattern_end" - ], - "since" : "1.3", - "description" : "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.", - "examples" : "spawn 5 creepers behind the player" -}, -{ - "id" : "experience", - "name" : "Experience", - "patterns" : [ - "<code>[&lt;number&gt;] ([e]xp|experience [point[s]])</code>", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.", - "examples" : "give 10 xp to the player" -}, -{ - "id" : "gamemode", - "name" : "Game Mode", - "patterns" : [ - "creative/survival/adventure", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The game modes survival, creative and adventure.", - "examples" : "player's gamemode is survival\\nset the player argument's game mode to creative" -}, -{ - "id" : "inventory", - "name" : "Inventory", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.0", - "description" : "An inventory of a player or block. Inventories have many effects and conditions regarding the items contained.\\nAn 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).", - "examples" : "" -}, -{ - "id" : "inventoryaction", - "name" : "Inventory Action", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "2.2-dev16", - "description" : "What player just did in inventory event. Note that when in creative game mode, most actions do not work correctly.", - "examples" : "" -}, -{ - "id" : "slot", - "name" : "Inventory Slot", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "", - "description" : "Represents a single slot of an inventory. Notable slots are the armour slots and furnace slots. \\nThe 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).\\nPlease 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.", - "examples" : "set tool of player to dirt\\ndelete helmet of the victim\\nset the colour of the player's tool to green\\nenchant the player's chestplate with projectile protection 5" -}, -{ - "id" : "inventorytype", - "name" : "Inventory Type", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "2.2-dev32", - "description" : "Minecraft has several different inventory types with their own use cases.", - "examples" : "" -}, -{ - "id" : "itemstack", - "name" : "Item / Material", - "patterns" : [ - "<code>[&lt;number&gt; [of]] &lt;alias&gt; [of &lt;enchantment&gt; &lt;level&gt;]</code>, Where &lt;alias&gt; must be an alias that represents exactly one item (i.e cannot be a general alias like 'sword' or 'plant')", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).\\nYou don't usually need this type except when you want to make a command that only accepts an exact item.\\nPlease note that currently 'material' is exactly the same as 'item', i.e. can have an amount & enchantments.", - "examples" : "set {_item} to type of the targeted block\\n{_item} is a torch" -}, -{ - "id" : "itemtype", - "name" : "Item Type", - "patterns" : [ - "<code>[&lt;number&gt; [of]] [all/every] &lt;alias&gt; [of &lt;enchantment&gt; [&lt;level&gt;] [,/and &lt;more enchantments...&gt;]]</code>", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nAn 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.", - "examples" : "give 4 torches to the player\\nadd all slabs to the inventory of the block\\nplayer's tool is a diamond sword of sharpness\\nremove a pickaxes of fortune 4 from {stored items::*}\\nset {_item} to 10 of every upside-down stair\\nblock is dirt or farmland" -}, -{ - "id" : "livingentity", - "name" : "Living Entity", - "patterns" : [ - "see <a href='#entity'>entity</a>, but ignore inanimate objects", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A living entity, i.e. a mob or player, not inanimate entities like projectiles or dropped items.", - "examples" : "spawn 5 powered creepers\\nshoot a zombie from the creeper" -}, -{ - "id" : "location", - "name" : "Location", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "metadataholder", - "name" : "Metadata Holder", - "patterns" : [ - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Something that can hold metadata (e.g. an entity or block)", - "examples" : "set metadata value \"super cool\" of player to true" -}, -{ - "id" : "money", - "name" : "Money", - "patterns" : [ - "<code>&lt;number&gt; $</code> or <code>$ &lt;number&gt;</code>, where '$' is your server's currency, e.g. '10 rupees' or '£5.00'", - - "pattern_end" - ], - "since" : "2.0", - "description" : "A certain amount of money. Please note that this differs from numbers as it includes a currency symbol or name, but usually the two are interchangeable, e.g. you can both add 100$ to the player's balance and add 100 to the player's balance.", - "examples" : "add 10£ to the player's account\\nremove Fr. 9.95 from the player's money\\nset the victim's money to 0\\nincrease the attacker's balance by the level of the victim * 100" -}, -{ - "id" : "number", - "name" : "Number", - "patterns" : [ - "[-]###[.###]</code> (any amount of digits; very large numbers will be truncated though)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A number, e.g. 2.5, 3, or -9812454.\\nPlease note that many expressions only need integers, i.e. will discard any frational parts of any numbers without producing an error.", - "examples" : "set the player's health to 5.5\\nset {_temp} to 2*{_temp} - 2.5" -}, -{ - "id" : "object", - "name" : "Object", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The supertype of all types, meaning that if %object% is used in e.g. a condition it will accept all kinds of expressions.", - "examples" : "" -}, -{ - "id" : "offlineplayer", - "name" : "Offlineplayer", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "player", - "name" : "Player", - "patterns" : [ - "", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nYou 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.", - "examples" : "" -}, -{ - "id" : "potioneffecttype", - "name" : "Potion Effect Type", - "patterns" : [ - "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", - - "pattern_end" - ], - "since" : "", - "description" : "A potion effect type, e.g. 'strength' or 'swiftness'.", - "examples" : "apply swiftness 5 to the player\\napply potion of speed 2 to the player for 60 seconds\\nremove invisibility from the victim" -}, -{ - "id" : "projectile", - "name" : "Projectile", - "patterns" : [ - "arrow, fireball, snowball, thrown potion, etc.", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A projectile, e.g. an arrow, snowball or thrown potion.", - "examples" : "projectile is a snowball\\nshoot an arrow at speed 5 from the player" -}, -{ - "id" : "region", - "name" : "Region", - "patterns" : [ - ""region name"", - - "pattern_end" - ], - "since" : "2.1", - "description" : "A region of a regions plugin. Skript currently supports WorldGuard, Factions, GriefPrevention and PreciousStones.\\nPlease note that some regions plugins do not have named regions, some use numerical ids to identify regions, and some may have regions with the same name in different worlds, thus using regions like \"region name\" in scripts may or may not work.", - "examples" : "" -}, -{ - "id" : "string", - "name" : "Text", - "patterns" : [ - "simple: "..."", -"quotes: "...""..."", -"expressions: "...%expression%..."", -"percent signs: "...%%..."", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).\\nBecause 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.\\nPlease read the article on Texts and Variable Names to learn more.", - "examples" : "broadcast \"Hello World!\"\\nmessage \"Hello %player%\"\\nmessage \"The id of \"\"%type of tool%\"\" is %id of tool%.\"" -}, -{ - "id" : "time", - "name" : "Time", - "patterns" : [ - "<code>##:##</code>", -"<code>##[:##][ ]am/pm</code>", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nSee date and timespan for the other time types of Skript.", - "examples" : "at 20:00:\\n time is 8 pm\\n broadcast \"It's %time%\"" -}, -{ - "id" : "timeperiod", - "name" : "Timeperiod", - "patterns" : [ - "<code>##:## - ##:##</code>", -"dusk/day/dawn/night", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nThis type might be removed in the future as you can use 'time of world is between x and y' as a replacement.", - "examples" : "time in world is night" -}, -{ - "id" : "timespan", - "name" : "Timespan", - "patterns" : [ - "<code>&lt;number&gt; [minecraft/mc/real/rl/irl] ticks/seconds/minutes/hours/days [[,/and] &lt;more...&gt;</code>]", -"<code>[###:]##:##[.####]</code> ([hours:]minutes:seconds[.milliseconds])", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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'.\\nSee date and time for the other time types of Skript.", - "examples" : "every 5 minecraft days:\\n wait a minecraft second and 5 ticks\\nevery 10 mc days and 12 hours:\\n halt for 12.7 irl minutes, 12 hours and 120.5 seconds" -}, -{ - "id" : "structuretype", - "name" : "Tree Type", - "patterns" : [ - "<code>[any] &lt;general tree/mushroom type&gt;</code>, e.g. tree/any jungle tree/etc.", -"<code>&lt;specific tree/mushroom species&gt;</code>, e.g. red mushroom/small jungle tree/big regular tree/etc.", - - "pattern_end" - ], - "since" : "", - "description" : "A tree type represents a tree species or a huge mushroom species. These can be generated in a world with the generate tree effect.", - "examples" : "grow any regular tree at the block\\ngrow a huge red mushroom above the block" -}, -{ - "id" : "classinfo", - "name" : "Type", - "patterns" : [ - "See the type name patterns of all types - including this one", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Represents a type, e.g. number, object, item type, location, block, world, entity type, etc.\\nThis is mostly used for expressions like 'event-<type>', '<type>-argument', 'loop-<type>', etc., e.g. event-world, number-argument and loop-player.", - "examples" : "{variable} is a number # check whether the variable contains a number, e.g. -1 or 5.5\\n{variable} is a type # check whether the variable contains a type, e.g. number or player\\n{variable} is an object # will always succeed if the variable is set as everything is an object, even types.\\ndisable PvP in the event-world\\nkill the loop-entity" -}, -{ - "id" : "vector", - "name" : "Vector", - "patterns" : [ - "vector(x, y, z)", - - "pattern_end" - ], - "since" : "2.2-dev23", - "description" : "Vector is a collection of numbers. In Minecraft, 3D vectors are used to express velocities of entities.", - "examples" : "" -}, -{ - "id" : "visualeffect", - "name" : "Visual Effect", - "patterns" : [ - "ender signal, mobspawner flames, potion break, smoke, hurt, sheep eating, wolf hearts, wolf shaking, wolf smoke, 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", - - "pattern_end" - ], - "since" : "2.1", - "description" : "A visible effect, e.g. particles.", - "examples" : "show wolf hearts on the clicked wolf\\nplay mob spawner flames at the targeted block to the player" -}, -{ - "id" : "weathertype", - "name" : "Weather Type", - "patterns" : [ - "clear/sun/sunny, rain/rainy/raining, and thunder/thundering/thunderstorm", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The weather types sunny, rainy, and thundering.", - "examples" : "is raining\\nis sunny in the player's world\\nmessage \"It is %weather in the argument's world% in %world of the argument%\"" -}, -{ - "id" : "world", - "name" : "World", - "patterns" : [ - "<code>"world_name"</code>, e.g. "world"", - - "pattern_end" - ], - "since" : "1.0, 2.2 (alternate syntax)", - "description" : "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.", - "examples" : "broadcast \"Hello!\" to the world \"world_nether\"" -}, - - {"end" : true} - ], - - "conditions" : [ - { - "id" : "CondCanBuild", - "name" : "Can Build", - "patterns" : [ - "%players% (can|(is|are) allowed to) build %directions% %locations%", -"%players% (can('t|not)|(is|are)(n't| not) allowed to) build %directions% %locations%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Tests whether a player is allowed to build at a certain location.\\nThis condition requires a supported regions plugin to be installed.", - "examples" : "command /setblock :\\n description: set the block at your crosshair to a different type\\n trigger:\\n player cannot build at the targeted block:\\n message \"You do not have permission to change blocks there!\"\\n stop\\n set the targeted block to argument" -}, -{ - "id" : "CondCanHold", - "name" : "Can Hold", - "patterns" : [ - "%inventories% (can hold|ha(s|ve) [enough] space (for|to hold)) %item types%", -"%inventories% (can(no|')t hold|(ha(s|ve) not|ha(s|ve)n't|do[es]n't have) [enough] space (for|to hold)) %item types%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Tests whether a player or a chest can hold the given item.", - "examples" : "block can hold 200 cobblestone\\nplayer has enough space for 64 feathers" -}, -{ - "id" : "CondCanSee", - "name" : "Can See", - "patterns" : [ - "%players% (is|are) [(in)]visible for %players%", -"%players% can see %players%", -"%players% (is|are)(n't| not) [(in)]visible for %players%", -"%players% can('t| not) see %players%", - - "pattern_end" - ], - "since" : "2.2-dev37c", - "description" : "Checks whether the given players can see another players.", - "examples" : "if the player can't see the player-argument:\\n message \"The player %player-argument% is not online!\"" -}, -{ - "id" : "CondChance", - "name" : "Chance", - "patterns" : [ - "chance of %number%[\\%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A condition that randomly succeeds or fails.\\nValid values are between 0% and 100%, or if the percent sign is omitted between 0 and 1.", - "examples" : "chance of 50%:\\n drop a diamond\\nchance of {var}% # {var} between 0 and 100\\nchance of {var} # {var} between 0 and 1" -}, -{ - "id" : "CondCompare", - "name" : "Comparison", - "patterns" : [ - "[neither] %objects% ((is|are)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above)|\\>) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as)|\\>=) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) ((less|smaller) than|below)|\\<) %objects%", -"[neither] %objects% ((is|are)[((n't| not| neither)]) (less|smaller|below) [than] or (equal to|the same as)|\\<=) %objects%", -"[neither] %objects% ((is|are) (not|neither)|isn't|aren't|!=) [equal to] %objects%", -"[neither] %objects% (is|are|=) [(equal to|the same as)] %objects%", -"[neither] %objects% (is|are) between %objects% and %objects%", -"[neither] %objects% (is not|are not|isn't|aren't) between %objects% and %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) ((greater|more|higher|bigger|larger) than|above) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) (greater|more|higher|bigger|larger|above) [than] or (equal to|the same as) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) ((less|smaller) than|below) %objects%", -"[neither] %objects% (was|were)[((n't| not| neither)]) (less|smaller|below) [than] or (equal to|the same as) %objects%", -"[neither] %objects% ((was|were) (not|neither)|wasn't|weren't) [equal to] %objects%", -"[neither] %objects% (was|were) [(equal to|the same as)] %objects%", -"[neither] %objects% (was|were) between %objects% and %objects%", -"[neither] %objects% (was not|were not|wasn't|weren't) between %objects% and %objects%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) ((greater|more|higher|bigger|larger) than|above) %objects%", -"[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%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) ((less|smaller) than|below) %objects%", -"[neither] %objects% (will be|(will (not|neither) be|won't be)) (less|smaller|below) [than] or (equal to|the same as) %objects%", -"[neither] %objects% ((will (not|neither) be|won't be)|(isn't|aren't|is not|are not) (turning|changing) [in]to) [equal to] %objects%", -"[neither] %objects% (will be [(equal to|the same as)]|(is|are) (turning|changing) [in]to) %objects%", -"[neither] %objects% will be between %objects% and %objects%", -"[neither] %objects% (will not be|won't be) between %objects% and %objects%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nNote: 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.", - "examples" : "the clicked block is a stone slab or a double stone slab\\ntime in the player's world is greater than 8:00\\nthe creature is not an enderman or an ender dragon" -}, -{ - "id" : "CondContains", - "name" : "Contains", - "patterns" : [ - "%inventories% ha(s|ve) %item types% [in [(the[ir]|his|her|its)] inventory]", -"%inventories/texts/objects% contain[s] %item types/texts/objects%", -"%inventories% do[es](n't| not) have %item types% [in [(the[ir]|his|her|its)] inventory]", -"%inventories/texts/objects% do[es](n't| not) contain %item types/texts/objects%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "block contains 20 cobblestone\\nplayer has 4 flint and 2 iron ingots" -}, -{ - "id" : "CondDamageCause", - "name" : "Damage Cause", - "patterns" : [ - "[the] damage (was|is|has)[(n('|o)]t) [been] (caused|done|made) by %damage cause%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Tests what kind of damage caused a damage event. Refer to the Damage Cause type for a list of all possible causes.", - "examples" : "# make players use their potions of fire resistance whenever they take any kind of fire damage\\non damage:\\n damage was caused by lava, fire or burning\\n victim is a player\\n victim has a potion of fire resistance\\n cancel event\\n apply fire resistance to the victim for 30 seconds\\n remove 1 potion of fire resistance from the victim\\n# prevent mobs from dropping items under certain circumstances\\non death:\\n entity is not a player\\n damage wasn't caused by a block explosion, an attack, a projectile, a potion, fire, burning, thorns or poison\\n clear drops" -}, -{ - "id" : "CondCancelled", - "name" : "Event Cancelled", - "patterns" : [ - "[the] event is cancel[l]ed", -"[the] event (is not|isn't) cancel[l]ed", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether or not the event is cancelled", - "examples" : "on click:\\n if event is cancelled:\\n broadcast \"no clicks allowed!\"" -}, -{ - "id" : "CondIsSet", - "name" : "Exists/Is Set", - "patterns" : [ - "%~objects% (exist[s]|(is|are) set)", -"%~objects% (do[es](n't| not) exist|(is|are)(n't| not) set)", - - "pattern_end" - ], - "since" : "1.2", - "description" : "Checks whether a given expression or variable is set.", - "examples" : "{teams::%player's uuid%::preferred-team} is not set\\non damage:\\n projectile exists\\n broadcast \"%attacker% used a %projectile% to attack %victim%!\"" -}, -{ - "id" : "CondHasMetadata", - "name" : "Has Metadata", - "patterns" : [ - "%metadata holders% (has|have) metadata [(value|tag)[s]] %texts%", -"%metadata holders% (doesn't|does not|do not|don't) have metadata [(value|tag)[s]] %texts%", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether a metadata holder has a metadata tag.", - "examples" : "if player has metadata value \"healer\":" -}, -{ - "id" : "CondPermission", - "name" : "Has Permission", - "patterns" : [ - "[%players/console%] (do[es]n't|don't|do[es] not) have [the] permission[s] %texts%", -"[%players/console%] ha(s|ve) [the] permission[s] %texts%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Test whether a player has a certain permission.", - "examples" : "player has permission \"skript.tree\"\\nvictim has the permission \"admin\":\\n send \"You're attacking an admin!\" to attacker" -}, -{ - "id" : "CondPlayedBefore", - "name" : "Has Played Before", - "patterns" : [ - "%offline player% [(has|did)] [already] play[ed] [on (this|the) server] (before|already)", -"%offline player% (has not|hasn't|did not|didn't) [(already|yet)] play[ed] [on (this|the) server] (before|already|yet)", - - "pattern_end" - ], - "since" : "1.4", - "description" : "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.", - "examples" : "player has played on this server before\\nplayer hasn't played before" -}, -{ - "id" : "CondIsAlive", - "name" : "Is Alive", - "patterns" : [ - "%living entities% (is|are) (alive|dead)", -"%living entities% (isn't|is not|aren't|are not) (alive|dead)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Checks whether an entity is alive. This is mostly useful to check whether an entity stored in a variable does still exist.", - "examples" : "{villager-buddy::%player's uuid%} is dead" -}, -{ - "id" : "CondIsBanned", - "name" : "Is Banned", - "patterns" : [ - "%offline players/texts% (is|are) banned", -"%players/texts% [(is|are) IP(-| )]banned", -"%offline players/texts% (isn't|is not|aren't|are not) banned", -"%players/texts% [(isn't|is not|aren't|are not) IP(-| )]banned", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Checks whether a player or IP is banned.", - "examples" : "player is banned\\nvictim is not IP-banned\\n\"127.0.0.1\" is banned" -}, -{ - "id" : "CondIsBlocking", - "name" : "Is Blocking", - "patterns" : [ - "%players% (is|are) (blocking|defending)", -"%players% (isn't|is not|aren't|are not) (blocking|defending)", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Checks whether a player is blocking with his shield.", - "examples" : "on damage of player:\\n victim is blocking\\n damage attacker by 0.5 hearts" -}, -{ - "id" : "CondIsBurning", - "name" : "Is Burning", - "patterns" : [ - "%entities% (is|are) (burning|ignited|on fire)", -"%entities% (isn't|is not|aren't|are not) (burning|ignited|on fire)", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether an entity is on fire, e.g. a zombie due to being in sunlight, or any entity after falling into lava.", - "examples" : "# increased attack against burning targets\\nvictim is burning:\\n increase damage by 2" -}, -{ - "id" : "CondIsEdible", - "name" : "Is Edible", - "patterns" : [ - "%item stacks% (is|are) edible", -"%item stacks% (isn't|is not|aren't|are not) edible", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether an item is edible.", - "examples" : "steak is edible\\nplayer's tool is edible" -}, -{ - "id" : "CondIsEmpty", - "name" : "Is Empty", - "patterns" : [ - "%inventories/slots/texts% (is|are) empty", -"%inventories/slots/texts% (isn't|is not|aren't|are not) empty", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Checks whether an inventory, an inventory slot, or a text is empty.", - "examples" : "player's inventory is empty" -}, -{ - "id" : "CondIsEnchanted", - "name" : "Is Enchanted", - "patterns" : [ - "%item types% (is|are) enchanted [with %enchantment type%]", -"%item types% (isn't|is not|aren't|are not) enchanted [with %enchantment type%]", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "Checks whether an item is enchanted.", - "examples" : "tool of the player is enchanted with efficiency 2\\nhelm, chestplate, leggings or boots are enchanted" -}, -{ - "id" : "CondIsFlammable", - "name" : "Is Flammable", - "patterns" : [ - "%item stacks% (is|are) flammable", -"%item stacks% (isn't|is not|aren't|are not) flammable", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether an item is flammable.", - "examples" : "wood is flammable\\nplayer's tool is flammable" -}, -{ - "id" : "CondIsFlying", - "name" : "Is Flying", - "patterns" : [ - "%players% (is|are) flying", -"%players% (isn't|is not|aren't|are not) flying", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether a player is flying.", - "examples" : "player is not flying" -}, -{ - "id" : "CondItemInHand", - "name" : "Is Holding", - "patterns" : [ - "[%living entities%] ha(s|ve) %item types% in [main] hand", -"[%living entities%] (is|are) holding %item types% [in main hand]", -"[%living entities%] ha(s|ve) %item types% in off[(-| )]hand", -"[%living entities%] (is|are) holding %item types% in off[(-| )]hand", -"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in [main] hand", -"[%living entities%] (is not|isn't) holding %item types% [in main hand]", -"[%living entities%] (ha(s|ve) not|do[es]n't have) %item types% in off[(-| )]hand", -"[%living entities%] (is not|isn't) holding %item types% in off[(-| )]hand", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Checks whether a player is holding a specific item. Cannot be used with endermen, use 'entity is [not] an enderman holding <item type>' instead.", - "examples" : "player is holding a stick\\nvictim isn't holding a sword of sharpness" -}, -{ - "id" : "CondIsLoaded", - "name" : "Is Loaded", - "patterns" : [ - "%worlds/chunks% (is|are) loaded", -"%worlds/chunks% (isn't|is not|aren't|are not) loaded", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "Checks whether or not a chunk/world is loaded", - "examples" : "if chunk at {home::%player's uuid%} is loaded:" -}, -{ - "id" : "CondIsMember", - "name" : "Is Member/Owner of Region", - "patterns" : [ - "%offline players% (is|are) ([a] member|[(the|an)] owner) of [[the] region] %regions%", -"%offline players% (is|are)(n't| not) ([a] member|[(the|an)] owner) of [[the] region] %regions%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "Checks whether a player is a member or owner of a particular region.\\nThis condition requires a supported regions plugin to be installed.", - "examples" : "on region enter:\\n player is the owner of the region\\n message \"Welcome back to %region%!\"\\n send \"%player% just entered %region%!\" to all members of the region" -}, -{ - "id" : "CondIsOnline", - "name" : "Is Online", - "patterns" : [ - "%offline players% ((is|are) online|(is not|isn't|are not|aren't) offline)", -"%offline players% ((is|are) offline|(is not|isn't|are not|aren't) online)", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Checks whether a player is online.", - "examples" : "player is online\\nplayer-argument is offline" -}, -{ - "id" : "CondIsPoisoned", - "name" : "Is Poisoned", - "patterns" : [ - "%living entities% (is|are) poisoned", -"%living entities% (isn't|is not|aren't|are not) poisoned", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether an entity is poisoned.", - "examples" : "player is poisoned:\\n cure the player from poison\\n message \"You have been cured!\"" -}, -{ - "id" : "CondIsRiding", - "name" : "Is Riding", - "patterns" : [ - "%entities% (is|are) riding [%entity types%]", -"%entities% (isn't|is not|aren't|are not) riding [%entity types%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Tests whether an entity is riding another or is in a vehicle.", - "examples" : "player is riding a saddled pig" -}, -{ - "id" : "CondScriptLoaded", - "name" : "Is Script Loaded", - "patterns" : [ - "script[s] [%texts%] (is|are) loaded", -"script[s] [%texts%] (isn't|is not|aren't|are not) loaded", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Check if the current script or another script, is current loaded.", - "examples" : "script is loaded\\nscript \"example.sk\" is loaded" -}, -{ - "id" : "CondIsSleeping", - "name" : "Is Sleeping", - "patterns" : [ - "%players% (is|are) sleeping", -"%players% (isn't|is not|aren't|are not) sleeping", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether a player is sleeping.", - "examples" : "# cut your enemies' throats in their sleep >=)\\non attack:\\n attacker is holding a sword\\n victim is sleeping\\n increase the damage by 1000" -}, -{ - "id" : "CondIsSneaking", - "name" : "Is Sneaking", - "patterns" : [ - "%players% (is|are) sneaking", -"%players% (isn't|is not|aren't|are not) sneaking", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether a player is sneaking.", - "examples" : "# prevent mobs from seeing sneaking players if they are at least 4 meters apart\\non target:\\n target is sneaking\\n distance of target and the entity is bigger than 4\\n cancel the event" -}, -{ - "id" : "CondIsSolid", - "name" : "Is Solid", - "patterns" : [ - "%item stacks% (is|are) solid", -"%item stacks% (isn't|is not|aren't|are not) solid", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether an item is solid.", - "examples" : "grass block is solid\\nplayer's tool isn't solid" -}, -{ - "id" : "CondIsSprinting", - "name" : "Is Sprinting", - "patterns" : [ - "%players% (is|are) sprinting", -"%players% (isn't|is not|aren't|are not) sprinting", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Checks whether a player is sprinting.", - "examples" : "player is not sprinting" -}, -{ - "id" : "CondIsTransparent", - "name" : "Is Transparent", - "patterns" : [ - "%item stacks% (is|are) transparent", -"%item stacks% (isn't|is not|aren't|are not) transparent", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks whether an item is transparent.", - "examples" : "glass is transparent\\nplayer's tool is transparent." -}, -{ - "id" : "CondIsWearing", - "name" : "Is Wearing", - "patterns" : [ - "%living entities% (is|are) wearing %item types%", -"%living entities% (isn't|is not|aren't|are not) wearing %item types%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Checks whether a player is wearing some armour.", - "examples" : "player is wearing an iron chestplate and iron leggings\\nplayer is wearing all diamond armour" -}, -{ - "id" : "CondIsInWorld", - "name" : "Is in World", - "patterns" : [ - "%entities% (is|are) in [[the] world[s]] %worlds%", -"%entities% (is not|isn't|are not|aren't) in [[the] world[s]] %worlds%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Checks whether an entity is in a specific world.", - "examples" : "player is in \"world\"\\nargument isn't in world \"world_nether\"\\nthe player is in the world of the victim" -}, -{ - "id" : "CondIsOfType", - "name" : "Is of Type", - "patterns" : [ - "%item stacks/entities% (is|are) of type[s] %item types/entity types%", -"%item stacks/entities% (isn't|is not|aren't|are not) of type[s] %item types/entity types%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Checks whether an item of 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').", - "examples" : "tool is of type {*selected type}\\nvictim is of type {villager type}" -}, -{ - "id" : "CondIsOnGround", - "name" : "Is on Ground", - "patterns" : [ - "%entities% (is|are) on ground", -"%entities% (isn't|is not|aren't|are not) on ground", - - "pattern_end" - ], - "since" : "2.2-dev26", - "description" : "Checks whether an entity is on ground.", - "examples" : "player is not on ground" -}, -{ - "id" : "CondPvP", - "name" : "PvP", - "patterns" : [ - "(is PvP|PvP is) enabled [in %worlds%]", -"(is PvP|PvP is) disabled [in %worlds%]", - - "pattern_end" - ], - "since" : "1.3.4", - "description" : "Checks the PvP state of a world.", - "examples" : "PvP is enabled\\nPvP is disabled in \"world\"" -}, -{ - "id" : "CondRegionContains", - "name" : "Region Contains", - "patterns" : [ - "[[the] region] %regions% contain[s] %directions% %locations%", -"%locations% (is|are) ([contained] in|part of) [[the] region] %regions%", -"[[the] region] %regions% (do|does)(n't| not) contain %directions% %locations%", -"%locations% (is|are)(n't| not) (contained in|part of) [[the] region] %regions%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "Checks whether a location is contained in a particular region.\\nThis condition requires a supported regions plugin to be installed.", - "examples" : "player is in the region {regions::3}\\non region enter:\\n region contains {flags.%world%.red}\\n message \"The red flag is near!\"" -}, -{ - "id" : "CondStartsWith", - "name" : "Starts/Ends With", - "patterns" : [ - "%texts% (start|end)[s] with %text%", -"%texts% do[es](n't| not) (start|end) with %text%", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Checks if a text starts or ends with another.", - "examples" : "if the argument starts with \"test\":\\n send \"Stop!\"" -}, -{ - "id" : "CondDate", - "name" : "Time", - "patterns" : [ - "%date% (was|were)( more|(n't| not) less) than %time span% [ago]", -"%date% (was|were)((n't| not) more| less) than %time span% [ago]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Tests whether a given real time was more or less than some time span ago.", - "examples" : "command /command-with-cooldown:\\n trigger:\\n {command::%player's uuid%::last-usage} was less than a minute ago:\\n message \"Please wait a minute between uses of this command.\"\\n stop\\n set {command::%player's uuid%::last-usage} to now\\n # ... actual command trigger here ..." -}, -{ - "id" : "CondWeather", - "name" : "Weather", - "patterns" : [ - "is %weather types% [in %worlds%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Checks whether the weather in a world is of a specific type.\\nI welcome any ideas how to write this condition differently.", - "examples" : "is thundering\\nis raining in \"world\" or \"world2\"" -}, - - {"end" : true} - ], - - "effects" : [ - { - "id" : "EffBan", - "name" : "Ban", - "patterns" : [ - "ban %texts/offline players% [(by reason of|because [of]|on account of|due to) %text%]", -"unban %texts/offline players%", -"ban %players% by IP [(by reason of|because [of]|on account of|due to) %text%]", -"unban %players% by IP", -"IP(-| )ban %players% [(by reason of|because [of]|on account of|due to) %text%]", -"(IP(-| )unban|un[-]IP[-]ban) %players%", - - "pattern_end" - ], - "since" : "1.4, 2.1.1 (ban reason)", - "description" : "Bans/unbans a player or IP.\\nStarting with Skript 2.1.1 and Bukkit 1.7.2 R0.4, one can also ban players with a reason.", - "examples" : "unban player\\nban \"127.0.0.1\"\\nIP-ban the player because \"he is an idiot\"" -}, -{ - "id" : "EffBroadcast", - "name" : "Broadcast", - "patterns" : [ - "broadcast %texts% [(to|in) %worlds%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Broadcasts a message to the server.", - "examples" : "broadcast \"Welcome %player% to the server!\"\\nbroadcast \"Woah! It's a message!\"" -}, -{ - "id" : "EffCancelCooldown", - "name" : "Cancel Command Cooldown", - "patterns" : [ - "(cancel|ignore) [the] [current] [command] cooldown", -"un(cancel|ignore) [the] [current] [command] cooldown", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Only usable in command events. Makes it so the current command usage isn't counted towards the cooldown.", - "examples" : "command /nick :\\n executable by: players\\n cooldown: 10 seconds\\n trigger:\\n if length of arg-1 is more than 16:\\n # Makes it so that invalid arguments don't make you wait for the cooldown again\\n cancel the cooldown\\n send \"Your nickname may be at most 16 characters.\"\\n stop\\n set the player's display name to arg-1" -}, -{ - "id" : "EffCancelEvent", - "name" : "Cancel Event", - "patterns" : [ - "cancel [the] event", -"uncancel [the] event", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Cancels the event (e.g. prevent blocks from being placed, or damage being taken).", - "examples" : "on damage:\\n victim is a player\\n victim has the permission \"skript.god\"\\n cancel the event" -}, -{ - "id" : "EffChange", - "name" : "Change: Set/Add/Remove/Delete/Reset", - "patterns" : [ - "(add|give) %objects% to %~objects%", -"increase %~objects% by %objects%", -"give %~objects% %objects%", -"set %~objects% to %objects%", -"remove (all|every) %objects% from %~objects%", -"(remove|subtract) %objects% from %~objects%", -"reduce %~objects% by %objects%", -"(delete|clear) %~objects%", -"reset %~objects%", - - "pattern_end" - ], - "since" : "1.0 (set, add, remove, delete), 2.0 (remove all)", - "description" : "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.", - "examples" : "# set:\\nSet the player's display name to \"%name of player%\"\\nset the block above the victim to lava\\n# add:\\nadd 2 to the player's health # preferably use 'heal' for this\\nadd argument to {blacklist::*}\\ngive a diamond pickaxe of efficiency 5 to the player\\nincrease the data value of the clicked block by 1\\n# remove:\\nremove 2 pickaxes from the victim\\nsubtract 2.5 from {points.%player%}\\n# remove all:\\nremove every iron tool from the player\\nremove all minecarts from {entitylist::*}\\n# delete:\\ndelete the block below the player\\nclear drops\\ndelete {variable}\\n# reset:\\nreset walk speed of player\\nreset chunk at the targeted block" -}, -{ - "id" : "EffColorArmor", - "name" : "Colour Items", - "patterns" : [ - "(dye|colo[u]r|paint) %slots/item stack% %color%", -"(dye|colo[u]r|paint) %slots/item stack% \\(%number%, %number%, %number%\\)", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev26 (maps and potions)", - "description" : "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.", - "examples" : "dye player's helmet blue\\ncolour the player's tool red" -}, -{ - "id" : "EffCommand", - "name" : "Command", - "patterns" : [ - "[execute] [the] command %texts% [by %players/console%]", -"[execute] [the] %players/console% command %texts%", -"(let|make) %players/console% execute [[the] command] %texts%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Executes a command. This can be useful to use other plugins in triggers.", - "examples" : "make player execute command \"/suicide\"\\nexecute console command \"/say Hello everyone!\"" -}, -{ - "id" : "EffContinue", - "name" : "Continue", - "patterns" : [ - "continue [loop]", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "Skips the value currently being looped, moving on to the next value if it exists.", - "examples" : "loop all players: - if loop-value does not have permission \"moderator\": - continue # filter out non moderators - broadcast \"%loop-player% is a moderator!\" # only moderators get broadcast" -}, -{ - "id" : "EffHealth", - "name" : "Damage/Heal/Repair", - "patterns" : [ - "damage %slots/living entities/item stack% by %number% [heart[s]][ with fake cause %damage cause%]", -"heal %living entities% [by %number% [heart[s]]]", -"repair %slots/item stack% [by %number%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Damage/Heal/Repair an entity, or item stack.", - "examples" : "damage player by 5 hearts\\nheal the player\\nrepair tool of player" -}, -{ - "id" : "Delay", - "name" : "Delay", - "patterns" : [ - "(wait|halt) [for] %time span%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "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!", - "examples" : "wait 2 minutes\\nhalt for 5 minecraft hours\\nwait a tick" -}, -{ - "id" : "EffDrop", - "name" : "Drop", - "patterns" : [ - "drop %item types/experience point% [%directions% %locations%]", -"drop %item types/experience point% [%directions% %locations%] without velocity", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Drops one or more items.", - "examples" : "on death of creeper:\\n drop 1 TNT" -}, -{ - "id" : "EffEnchant", - "name" : "Enchant/Disenchant", - "patterns" : [ - "enchant %~item stack% with %enchantment types%", -"disenchant %~item stack%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Enchant or disenchant an existing item", - "examples" : "enchant the player's tool with sharpness 5\\ndisenchant the player's tool" -}, -{ - "id" : "EffEquip", - "name" : "Equip", - "patterns" : [ - "equip [%living entity%] with %item types%", -"make %living entity% wear %item types%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Equips a player with some given armor. This will replace any armor that the player is wearing.", - "examples" : "equip player with diamond helmet\\nequip player with all diamond armor" -}, -{ - "id" : "EffExit", - "name" : "Exit", - "patterns" : [ - "(exit|stop) [trigger]", -"(exit|stop) [(1|a|the|this)] (section|loop|conditional)", -"(exit|stop) <\\d+> (section|loop|conditional)s", -"(exit|stop) all (section|loop|conditional)s", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Exits a given amount of loops and conditionals, or the entire trigger.", - "examples" : "if player has any ore:\\n stop\\nmessage \"%player% has no ores!\"\\nloop blocks above the player:\\n loop-block is not air:\\n exit 2 sections\\n set loop-block to water" -}, -{ - "id" : "EffExplosion", - "name" : "Explosion", - "patterns" : [ - "[(create|make)] [an] explosion (of|with) (force|strength|power) %number% [%directions% %locations%]", -"[(create|make)] [a] safe explosion (of|with) (force|strength|power) %number% [%directions% %locations%]", -"[(create|make)] [a] fake explosion [%directions% %locations%]", -"[(create|make)] [an] explosion[ ]effect [%directions% %locations%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Creates an explosion of a given force. The Minecraft Wiki has an article on explosions which lists the explosion forces of TNT, creepers, etc.\\nHint: 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.\\nStarting with Bukkit 1.4.5 and Skript 2.0 you can use safe explosions which will damage entities but won't destroy any blocks.", - "examples" : "create an explosion of force 10 at the player\\ncreate an explosion of force 0 at the victim" -}, -{ - "id" : "EffFeed", - "name" : "Feed", - "patterns" : [ - "feed [the] %players% [by %number% [beef[s]]]", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Feeds the specified players.", - "examples" : "feed all players\\nfeed the player by 5 beefs" -}, -{ - "id" : "EffRespawn", - "name" : "Force Respawn", - "patterns" : [ - "force %players% to respawn", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "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.", - "examples" : "on death of player:\\n force event-player to respawn" -}, -{ - "id" : "EffIgnite", - "name" : "Ignite/Extinguish", - "patterns" : [ - "(ignite|set fire to) %entities% [for %time span%]", -"(set|light) %entities% on fire [for %time span%]", -"extinguish %entities%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Lights entities on fire or extinguishes them.", - "examples" : "ignite the player\\nextinguish the player" -}, -{ - "id" : "EffKick", - "name" : "Kick", - "patterns" : [ - "kick %players% [(by reason of|because [of]|on account of|due to) %text%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Kicks a player from the server.", - "examples" : "on place of TNT, lava, or obsidian:\\n kick the player due to \"You may not place %block%!\"\\n cancel the event" -}, -{ - "id" : "EffKill", - "name" : "Kill", - "patterns" : [ - "kill %entities%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Kills an entity.\\nNote: This effect does not set the entitie's health to 0 (which causes issues), but damages the entity by 100 times its maximum health.", - "examples" : "kill the player\\nkill all creepers in the player's world\\nkill all endermen, witches and bats" -}, -{ - "id" : "EffLightning", - "name" : "Lightning", - "patterns" : [ - "(create|strike) lightning[[ ]effect] %directions% %locations%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Strike lightning at a given location. Can use 'ligning effect' to create a lightning that does not harm entities or start fires.", - "examples" : "strike lightning at the player\\nstrike lightning effect at the victim" -}, -{ - "id" : "EffLog", - "name" : "Log", - "patterns" : [ - "log %texts% [(to|in) [file[s]] %texts%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Writes text into a .log file. Skript will write these files to /plugins/Skript/logs.\\nNB: 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.", - "examples" : "on place of TNT:\\n log \"%player% placed TNT in %world% at %location of block%\" to \"tnt/placement.log\"" -}, -{ - "id" : "EffScriptOptionLoops", - "name" : "Loop Version", - "patterns" : [ - "use[s] (old|new|2.1.2|2.2) loops", - - "pattern_end" - ], - "since" : "unknown (2.2)", - "description" : "Changes loops to emulate given Skript version's behaviour.", - "examples" : "use old loops\\nuse new loops" -}, -{ - "id" : "EffMakeFly", - "name" : "Make Fly", - "patterns" : [ - "force %players% to [(start|stop)] fly[ing]", -"make %players% (start|stop) flying", -"make %players% fly", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Forces a player to start/stop flying.\\nBe aware that this also changes the flight mode of the player.", - "examples" : "make player fly\\nforce all players to stop flying" -}, -{ - "id" : "EffMakeSay", - "name" : "Make Say", - "patterns" : [ - "make %players% (say|send [the] message[s]) %texts%", -"force %players% to (say|send [the] message[s]) %texts%", - - "pattern_end" - ], - "since" : "2.2-dev37b", - "description" : "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.", - "examples" : "make the player say \"Hello.\"\\nforce all players to send the message \"I love this server\"" -}, -{ - "id" : "EffMessage", - "name" : "Message", - "patterns" : [ - "(message|send [message[s]]) %texts% [to %players/console%]", - - "pattern_end" - ], - "since" : "1.0, 2.2-dev26 (advanced features)", - "description" : "Sends a message to the given player.", - "examples" : "message \"A wild %player% appeared!\"\\nmessage \"This message is a distraction. Mwahaha!\"\\nsend \"Your kill streak is %{kill streak.%player%}%.\" to player\\nif the targeted entity exists:\\n message \"You're currently looking at a %type of the targeted entity%!\"" -}, -{ - "id" : "EffOpenInventory", - "name" : "Open/Close Inventory", - "patterns" : [ - "[(open|show) (((crafting [table]|workbench)|chest|anvil) (view|window|inventory)]|%inventory%) (to|for) %players%", -"close [the] inventory [view] (to|of|for) %players%", -"close %players%'[s] inventory [view]", - - "pattern_end" - ], - "since" : "2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil)", - "description" : "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.\\nPlease note that currently 'show' and 'open' have the same effect, but 'show' will eventually show an unmodifiable view of the inventory in the future.", - "examples" : "show the victim's inventory to the player\\nopen the player's inventory for the player" -}, -{ - "id" : "EffVisualEffect", - "name" : "Play Effect", - "patterns" : [ - "(play|show) %visual effects% (on|%directions%) %entities/locations% [(to %players%|in (radius|range) of %number%)]", -"(play|show) %number% %visual effects% (on|%directions%) %locations% [(to %players%|in (radius|range) of %number%)]", - - "pattern_end" - ], - "since" : "2.1", - "description" : "Plays a visual effect at a given location or on a given entity.\\nPlease 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.", - "examples" : "play wolf hearts on the clicked wolf\\nshow mob spawner flames at the targeted block to the player" -}, -{ - "id" : "EffPlaySound", - "name" : "Play Sound", - "patterns" : [ - "play sound %text% [with volume %number%] [(and|with) pitch %number%] at %location% [for %players%]", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Plays a sound at given location for everyone or just for given players. Playing sounds from resource packs is supported.", - "examples" : "" -}, -{ - "id" : "EffPlayerVisibility", - "name" : "Player Visibility", - "patterns" : [ - "hide %players% [(from|for) %players%]", -"reveal %players% [(to|for|from) %players%]", - - "pattern_end" - ], - "since" : "2.2-dev37c", - "description" : "Change visibility of a player for the given players.\\nWhen 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.\\n\\nNote: if a player was hidden and relogs, this player will be visible again.", - "examples" : "on join:\\n if {vanished::%player's uuid%} is true:\\n hide the player from all players\\n\\nreveal hidden players of {_player}" -}, -{ - "id" : "EffPoison", - "name" : "Poison/Cure", - "patterns" : [ - "poison %living entities% [for %time span%]", -"(cure|unpoison) %living entities% [(from|of) poison]", - - "pattern_end" - ], - "since" : "1.3.2", - "description" : "Poison or cure a creature.", - "examples" : "poison the player\\npoison the victim for 20 seconds\\ncure the player from poison" -}, -{ - "id" : "EffPotion", - "name" : "Potion Effects", - "patterns" : [ - "apply [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%]", -"apply ambient [potion of] %potions% [potion] [[[of] tier] %number%] to %living entities% [for %time span%]", -"apply [potion of] %potions% [potion] [[[of] tier] %number%] without [any] particles to %living entities% [for %time span%]", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev27 (ambient and particle-less potion effects)", - "description" : "Apply or remove potion effects to/from entities.", - "examples" : "apply swiftness 2 to the player\\nremove haste from the victim\\non join:\\n apply potion of strength of tier {strength.%player%} to the player for 999 days" -}, -{ - "id" : "EffPush", - "name" : "Push", - "patterns" : [ - "(push|thrust) %entities% %direction% [(at|with) (speed|velocity|force) %number%]", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "Push entities around.", - "examples" : "push the player upwards\\npush the victim downwards at speed 0.5" -}, -{ - "id" : "EffPvP", - "name" : "PvP", - "patterns" : [ - "enable PvP [in %worlds%]", -"disable PVP [in %worlds%]", - - "pattern_end" - ], - "since" : "1.3.4", - "description" : "Set the PvP state for a given world.", - "examples" : "enable PvP #(current world only)\\ndisable PvP in all worlds" -}, -{ - "id" : "EffReplace", - "name" : "Replace", - "patterns" : [ - "replace [(all|every)] %texts% in %texts% with %text%", -"replace [(all|every)] %texts% with %text% in %texts%", -"replace [(all|every)] %item stacks% in %inventories% with %item stack%", -"replace [(all|every)] %item stacks% with %item stack% in %inventories%", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev24 (replace in muliple strings and replace items in inventory)", - "description" : "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.\\nStarting with 2.2-dev24, you can replace items in a inventory too.", - "examples" : "replace \"\" in {textvar} with \"%item%\"\\nreplace every \"&\" with \"§\" in line 1\\n# The following acts as a simple chat censor, but it will e.g. censor mass, hassle, assassin, etc. as well:\\non chat:\\n replace all \"fuck\", \"bitch\" and \"ass\" with \"****\" in the message\\n \\nreplace all stone and dirt in player's inventory and player's top inventory with diamond" -}, -{ - "id" : "EffReturn", - "name" : "Return", - "patterns" : [ - "return %objects%", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Makes a function return a value", - "examples" : "function double(i: number) :: number:\\n return 2 * {_i}" -}, -{ - "id" : "EffSendBlockChange", - "name" : "Send Block Change", - "patterns" : [ - "make %players% see %blocks% as %item type%", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "Makes a player see a block as something it really isn't", - "examples" : "make player see block at player as dirt" -}, -{ - "id" : "EffShear", - "name" : "Shear", - "patterns" : [ - "shear %living entities%", -"un[-]shear %living entities%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Shears or 'un-shears' a sheep. Please note that no wool is dropped, this only sets the 'sheared' state of the sheep.", - "examples" : "on rightclick on a sheep holding a sword:\\n shear the clicked sheep" -}, -{ - "id" : "EffShoot", - "name" : "Shoot", - "patterns" : [ - "shoot %entity types% [from %living entities/locations%] [(at|with) (speed|velocity) %number%] [%direction%]", -"(make|let) %living entities/locations% shoot %entity types% [(at|with) (speed|velocity) %number%] [%direction%]", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Shoots a projectile (or any other entity) from a given entity.", - "examples" : "shoot an arrow\\nmake the player shoot a creeper at speed 10\\nshoot a pig from the creeper" -}, -{ - "id" : "EffSpawn", - "name" : "Spawn", - "patterns" : [ - "spawn %entity types% [%directions% %locations%]", -"spawn %number% of %entity types% [%directions% %locations%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Spawn a creature.", - "examples" : "spawn 3 creepers at the targeted block\\nspawn a ghast 5 meters above the player" -}, -{ - "id" : "EffTeleport", - "name" : "Teleport", - "patterns" : [ - "teleport %entities% (to|%direction%) %location%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Teleport an entity to a specific location.", - "examples" : "teleport the player to {homes.%player%}\\nteleport the attacker to the victim" -}, -{ - "id" : "EffToggle", - "name" : "Toggle", - "patterns" : [ - "(close|turn off|de[-]activate) %blocks%", -"(toggle|switch) [[the] state of] %blocks%", -"(open|turn on|activate) %blocks%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "Toggle the state of a block.", - "examples" : "# use arrows to toggle switches, doors, etc.\\non projectile hit:\\n projectile is arrow\\n toggle the block at the arrow" -}, -{ - "id" : "EffTree", - "name" : "Tree", - "patterns" : [ - "(grow|create|generate) tree [of type %tree type%] %directions% %locations%", -"(grow|create|generate) %tree type% [tree] %directions% %locations%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Creates a tree.\\nThis 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.", - "examples" : "grow a tall redwood tree above the clicked block" -}, -{ - "id" : "EffVectorRotateXYZ", - "name" : "Vectors - Rotate around XYZ", - "patterns" : [ - "rotate %vectors% around (x|y|z)(-| )axis by %number% [degrees]", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Rotates a vector around x, y, or z axis by some degrees", - "examples" : "rotate {_v} around x-axis by 90\\nrotate {_v} around y-axis by 90\\nrotate {_v} around z-axis by 90" -}, -{ - "id" : "EffVectorRotateAroundAnother", - "name" : "Vectors - Rotate around vector", - "patterns" : [ - "rotate %vectors% around %vector% by %number% [degrees]", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Rotates a vector around another vector", - "examples" : "rotate {_v} around vector 1, 0, 0 by 90" -}, -{ - "id" : "EffVehicle", - "name" : "Vehicle", - "patterns" : [ - "(make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%", -"[(make|let|force) %entities% [to] (dismount|(dismount|leave) (from|of)] [(any|the[ir]|his|her)] vehicle[s])", -"[(eject|dismount) (any|the)] passenger[s] (of|from) %entities%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc.", - "examples" : "make the player ride a saddled pig\\nmake the attacker ride the victim" -}, -{ - "id" : "EffOp", - "name" : "op/deop", - "patterns" : [ - "[de[-]]op %offline players%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Grant/revoke a user operator state.", - "examples" : "op the player\\ndeop all players" -}, - - {"end" : true} - ], - - "events" : [ - { - "id" : "at_time", - "name" : "At Time", - "patterns" : [ - "at %time% [in %worlds%]", - - "pattern_end" - ], - "since" : "1.3.4", - "description" : "An event that occurs at a given minecraft time in every world or only in specific worlds.", - "examples" : "at 18:00\\nat 7am in \"world\"" -}, -{ - "id" : "aoe_cloud_effect", - "name" : "On AoE Cloud Effect", - "patterns" : [ - "(area|AoE) [cloud] effect", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Called when area effect cloud applies it's potion effect. This happens every 5 ticks by default.", - "examples" : "" -}, -{ - "id" : "bed_enter", - "name" : "On Bed Enter", - "patterns" : [ - "bed enter[ing]", -"[player] enter[ing] [a] bed", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player starts sleeping.", - "examples" : "" -}, -{ - "id" : "bed_leave", - "name" : "On Bed Leave", - "patterns" : [ - "bed leav(e|ing)", -"[player] leav(e|ing) [a] bed", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player leaves a bed.", - "examples" : "" -}, -{ - "id" : "block_damage", - "name" : "On Block Damage", - "patterns" : [ - "block damag(ing|e)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player starts to break a block. You can usually just use the leftclick event for this.", - "examples" : "" -}, -{ - "id" : "block_growth", - "name" : "On Block Growth", - "patterns" : [ - "(plant|crop|block) grow[(th|ing)] [[of] %item types%]", - - "pattern_end" - ], - "since" : "2.2-Fixes-V10", - "description" : "Called when a crop grows. Alternative to new form of generic grow event.", - "examples" : "on crop growth" -}, -{ - "id" : "book_edit", - "name" : "On Book Edit", - "patterns" : [ - "book (edit|change|write)", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Called when a player edits a book", - "examples" : "" -}, -{ - "id" : "book_sign", - "name" : "On Book Sign", - "patterns" : [ - "book sign[ing]", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Called when a player signs a book", - "examples" : "" -}, -{ - "id" : "break_mine", - "name" : "On Break / Mine", - "patterns" : [ - "[block] (break[ing]|min(e|ing)) [[of] %item types%]", - - "pattern_end" - ], - "since" : "1.0 (break), unknown (mine)", - "description" : "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.", - "examples" : "on mine\\non break of stone\\non mine of any ore" -}, -{ - "id" : "bucket_empty", - "name" : "On Bucket Empty", - "patterns" : [ - "bucket empty[ing]", -"[player] empty[ing] [a] bucket", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player empties a bucket. You can also use the place event with a check for water or lava.", - "examples" : "" -}, -{ - "id" : "bucket_fill", - "name" : "On Bucket fill", - "patterns" : [ - "bucket fill[ing]", -"[player] fill[ing] [a] bucket", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player fills a bucket.", - "examples" : "" -}, -{ - "id" : "burn", - "name" : "On Burn", - "patterns" : [ - "[block] burn[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a block is destroyed by fire.", - "examples" : "on burn\\non burn of wood, fences, or chests" -}, -{ - "id" : "can_build_check", - "name" : "On Can Build Check", - "patterns" : [ - "[block] can build check", - - "pattern_end" - ], - "since" : "1.0 (basic), 2.0 ([un]cancellable)", - "description" : "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.\\nPlease note that the data value of the block to be placed is not available in this event, only its ID.", - "examples" : "" -}, -{ - "id" : "chat", - "name" : "On Chat", - "patterns" : [ - "chat", - - "pattern_end" - ], - "since" : "1.4.1", - "description" : "Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients.", - "examples" : "on chat:\\n if player has permission \"owner\":\\n set chat format to \"[player]: [message]\"\\n else if player has permission \"admin\":\\n set chat format to \"[player]: [message]\"\\n else: #default message format\\n set chat format to \"[player]: [message]\"" -}, -{ - "id" : "chunk_generate", - "name" : "On Chunk Generate", - "patterns" : [ - "chunk (generat|populat)(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called after a new chunk was generated.", - "examples" : "" -}, -{ - "id" : "chunk_load", - "name" : "On Chunk Load", - "patterns" : [ - "chunk load[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a chunk loads. The chunk might or might not contain mobs when it's loaded.", - "examples" : "" -}, -{ - "id" : "chunk_unload", - "name" : "On Chunk Unload", - "patterns" : [ - "chunk unload[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).", - "examples" : "" -}, -{ - "id" : "click", - "name" : "On Click", - "patterns" : [ - "[(right|left)[( |-)]][mouse[( |-)]]click[ing] [on %entity type/item type%] [(with|using|holding) %item type%]", -"[(right|left)[( |-)]][mouse[( |-)]]click[ing] (with|using|holding) %item type% on %entity type/item type%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a user clicks on a block, an entity or air with or without an item in their hand.\\nPlease 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.", - "examples" : "on click\\non rightclick holding a fishing rod\\non leftclick on a stone or obsidian\\non rightclick on a creeper\\non click with a sword" -}, -{ - "id" : "combust", - "name" : "On Combust", - "patterns" : [ - "combust[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons).", - "examples" : "" -}, -{ - "id" : "command", - "name" : "On Command", - "patterns" : [ - "command [%text%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Called when a player enters a command (not neccessarily a Skript command).", - "examples" : "on command\\non command \"/stop\"\\non command \"pm Njol \"" -}, -{ - "id" : "connect", - "name" : "On Connect", - "patterns" : [ - "[player] connect[ing]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.", - "examples" : "on connect:\\n player doesn't have permission \"VIP\"\\n number of players is larger than 20, kick the player due to \"The last 5 slots are reserved for VIP players.\"" -}, -{ - "id" : "consume", - "name" : "On Consume", - "patterns" : [ - "[player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion.", - "examples" : "" -}, -{ - "id" : "craft", - "name" : "On Craft", - "patterns" : [ - "[player] craft[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Called when a player crafts an item.", - "examples" : "" -}, -{ - "id" : "creeper_power", - "name" : "On Creeper Power", - "patterns" : [ - "creeper power", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered.", - "examples" : "" -}, -{ - "id" : "damage", - "name" : "On Damage", - "patterns" : [ - "damag(e|ing) [of %entity type%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc.", - "examples" : "on damage\\non damage of a player" -}, -{ - "id" : "death", - "name" : "On Death", - "patterns" : [ - "death [of %entity types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a living entity (including players) dies.", - "examples" : "on death\\non death of player\\non death of a wither or ender dragon:\\n broadcast \"A %entity% has been slain in %world%!\"" -}, -{ - "id" : "dispense", - "name" : "On Dispense", - "patterns" : [ - "dispens(e|ing) [[of] %item types%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Called when a dispenser dispenses an item.", - "examples" : "" -}, -{ - "id" : "drop", - "name" : "On Drop", - "patterns" : [ - "[player] drop[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Called when a player drops an item from his inventory.", - "examples" : "" -}, -{ - "id" : "endermansheepsilverfish", - "name" : "On Enderman/Sheep/Silverfish", - "patterns" : [ - "enderman place", -"enderman pickup", -"sheep eat", -"silverfish enter", -"silverfish exit", - - "pattern_end" - ], - "since" : "", - "description" : "Called when an enderman places or picks up a block, a sheep eats grass or a silverfish boops into/out of a block respectively.", - "examples" : "" -}, -{ - "id" : "entity_dismount", - "name" : "On Entity Dismount", - "patterns" : [ - "dismount[ing]", - - "pattern_end" - ], - "since" : "2.2-dev13b", - "description" : "Called when an entity dismounts.", - "examples" : "" -}, -{ - "id" : "entity_mount", - "name" : "On Entity Mount", - "patterns" : [ - "mount[ing]", - - "pattern_end" - ], - "since" : "2.2-dev13b", - "description" : "Called when entity starts riding another.", - "examples" : "" -}, -{ - "id" : "experience_spawn", - "name" : "On Experience Spawn", - "patterns" : [ - "[e]xp[erience] [orb] spawn", -"spawn of [a[n]] [e]xp[erience] [orb]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.\\nPlease 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)", - "examples" : "on xp spawn:\\n world is \"minigame_world\"\\n cancel event" -}, -{ - "id" : "explode", - "name" : "On Explode", - "patterns" : [ - "explo(d(e|ing)|sion)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an entity (a primed TNT or a creeper) explodes.", - "examples" : "" -}, -{ - "id" : "explosion_prime", - "name" : "On Explosion Prime", - "patterns" : [ - "explosion prime", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "fade", - "name" : "On Fade", - "patterns" : [ - "[block] fad(e|ing) [[of] %item types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a block 'fades away', e.g. ice or snow melts.", - "examples" : "on fade of snow or ice" -}, -{ - "id" : "first_join", - "name" : "On First Join", - "patterns" : [ - "first (join|login)", - - "pattern_end" - ], - "since" : "1.3.7", - "description" : "Called when a player joins the server for the first time.", - "examples" : "" -}, -{ - "id" : "fishing", - "name" : "On Fishing", - "patterns" : [ - "[player] fish[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player fishes something. This is not of much use yet.", - "examples" : "" -}, -{ - "id" : "flight_toggle", - "name" : "On Flight Toggle", - "patterns" : [ - "[player] flight togg(e|ing)", -"[player] toggl(e|ing) flight", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Called when a players stops/starts flying.", - "examples" : "on flight toggle:\\n if {game::%player%::playing} exists:\\n cancel event" -}, -{ - "id" : "flow", - "name" : "On Flow", - "patterns" : [ - "[block] flow[ing]", -"block mov(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well.", - "examples" : "" -}, -{ - "id" : "form", - "name" : "On Form", - "patterns" : [ - "[block] form[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).", - "examples" : "on form of snow\\non form of a mushroom" -}, -{ - "id" : "fuel_burn", - "name" : "On Fuel Burn", - "patterns" : [ - "fuel burn[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a furnace burns an item from its fuel slot.", - "examples" : "" -}, -{ - "id" : "gamemode_change", - "name" : "On Gamemode Change", - "patterns" : [ - "game[ ]mode change [to %gamemode%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player's gamemode changes.", - "examples" : "on gamemode change\\non gamemode change to adventure" -}, -{ - "id" : "gliding_state_change", - "name" : "On Gliding State Change", - "patterns" : [ - "(gliding state change|toggl(e|ing) gliding)", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly.", - "examples" : "on toggling gliding:\\n cancel the event # bad idea, but you CAN do it!" -}, -{ - "id" : "grow", - "name" : "On Grow", - "patterns" : [ - "grow [of (%tree type%|%item type%)]", - - "pattern_end" - ], - "since" : "1.0 (2.2-dev20 for plants)", - "description" : "Called when a tree, giant mushroom or plant grows to next stage.", - "examples" : "on grow\\non grow of a tree\\non grow of a huge jungle tree" -}, -{ - "id" : "heal", - "name" : "On Heal", - "patterns" : [ - "heal[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).", - "examples" : "" -}, -{ - "id" : "hunger_meter_change", - "name" : "On Hunger Meter Change", - "patterns" : [ - "(food|hunger) (level|met(er|re)|bar) chang(e|ing)", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time.", - "examples" : "" -}, -{ - "id" : "ignition", - "name" : "On Ignition", - "patterns" : [ - "[block] ignit(e|ion)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable.\\nThe burn event will be called when the block is about do be destroyed by the fire.", - "examples" : "" -}, -{ - "id" : "inventory_click", - "name" : "On Inventory Click", - "patterns" : [ - "[player] inventory(-| )click[ing] [[at] %item types%]", - - "pattern_end" - ], - "since" : "2.2-Fixes-V10", - "description" : "Called when clicking on inventory slot.", - "examples" : "" -}, -{ - "id" : "inventory_close", - "name" : "On Inventory Close", - "patterns" : [ - "inventory clos(ing|e[d])", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Called when player's currently viewed inventory is closed.", - "examples" : "" -}, -{ - "id" : "inventory_open", - "name" : "On Inventory Open", - "patterns" : [ - "inventory open[ed]", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Called when an inventory is opened for player.", - "examples" : "" -}, -{ - "id" : "item_break", - "name" : "On Item Break", - "patterns" : [ - "[player] tool break[ing]", -"[player] break[ing] [(a|the)] tool", - - "pattern_end" - ], - "since" : "2.1.1", - "description" : "Called when a player breaks his tool because its damage reached the maximum value.\\nThis event cannot be cancelled.", - "examples" : "" -}, -{ - "id" : "item_despawn", - "name" : "On Item Despawn", - "patterns" : [ - "(item[ ][stack]|[item] %item types%) despawn[ing]", -"[item[ ][stack]] despawn[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped.", - "examples" : "on item despawn of diamond:\\n send \"Not my precious!\"\\n cancel event" -}, -{ - "id" : "item_merge", - "name" : "On Item Merge", - "patterns" : [ - "(item[ ][stack]|[item] %item types%) merg(e|ing)", -"item[ ][stack] merg(e|ing) [[of] %item types%]", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "Called when dropped items merge into a single stack.", - "examples" : "on item merge of gold blocks:\\n cancel event" -}, -{ - "id" : "item_spawn", - "name" : "On Item Spawn", - "patterns" : [ - "item spawn[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "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).", - "examples" : "" -}, -{ - "id" : "join", - "name" : "On Join", - "patterns" : [ - "[player] (login|logging in|join[ing])", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "on join:\\n message \"Welcome on our awesome server!\"\\n broadcast \"%player% just joined the server!\"" -}, -{ - "id" : "kick", - "name" : "On Kick", - "patterns" : [ - "[player] (kick|being kicked)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player is kicked from the server. You can change the kick message or cancel the event entirely.", - "examples" : "" -}, -{ - "id" : "language_change", - "name" : "On Language Change", - "patterns" : [ - "[player] (language|locale) chang(e|ing)", -"[player] chang(e|ing) (language|locale)", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "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.\\nThis event requires Minecraft 1.12+.", - "examples" : "on language change:\\n if player's language starts with \"en\":\\n send \"Hello!\"" -}, -{ - "id" : "leaves_decay", - "name" : "On Leaves Decay", - "patterns" : [ - "leaves decay[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a leaf block decays due to not being connected to a tree.", - "examples" : "" -}, -{ - "id" : "level_change", - "name" : "On Level Change", - "patterns" : [ - "[player] level [change]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player's level changes, e.g. by gathering experience or by enchanting something.", - "examples" : "" -}, -{ - "id" : "lightning_strike", - "name" : "On Lightning Strike", - "patterns" : [ - "lightning [strike]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when lightning strikes.", - "examples" : "" -}, -{ - "id" : "move_on", - "name" : "On Move On", - "patterns" : [ - "(step|walk)[ing] (on|over) %*item types%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.", - "examples" : "on walking on dirt or grass\\non stepping on stone" -}, -{ - "id" : "physics", - "name" : "On Physics", - "patterns" : [ - "[block] physics", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "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.", - "examples" : "# prevents sand from falling\\non block physics:\\n block is sand\\n cancel event" -}, -{ - "id" : "pick_up", - "name" : "On Pick Up", - "patterns" : [ - "[player] (pick[ ]up|picking up) [[of] %item types%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Called when a player picks up an item. Please note that the item is still on the ground when this event is called.", - "examples" : "" -}, -{ - "id" : "pig_zap", - "name" : "On Pig Zap", - "patterns" : [ - "pig[ ]zap", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation.", - "examples" : "" -}, -{ - "id" : "piston_extend", - "name" : "On Piston Extend", - "patterns" : [ - "piston extend[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a piston is about to extend.", - "examples" : "" -}, -{ - "id" : "piston_retract", - "name" : "On Piston Retract", - "patterns" : [ - "piston retract[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a piston is about to retract.", - "examples" : "" -}, -{ - "id" : "place", - "name" : "On Place", - "patterns" : [ - "[block] (plac(e|ing)|build[ing]) [[of] %item types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player places a block.", - "examples" : "on place\\non place of a furnace, workbench or chest" -}, -{ - "id" : "player_world_change", - "name" : "On Player World Change", - "patterns" : [ - "[player] world chang(ing|e[d])", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Called when a player enters a world. Does not work with other entities!", - "examples" : "on player world change:\\n world is \"city\"\\n send \"Welcome to the City!\"" -}, -{ - "id" : "portal", - "name" : "On Portal", - "patterns" : [ - "[player] portal", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player uses a nether or end portal. Cancel the event to prevent the player from teleporting.", - "examples" : "" -}, -{ - "id" : "portal_create", - "name" : "On Portal Create", - "patterns" : [ - "portal creat(e|ion)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nPlease note that it's not possible to use the player in this event.", - "examples" : "" -}, -{ - "id" : "portal_enter", - "name" : "On Portal Enter", - "patterns" : [ - "portal enter[ing]", -"entering [a] portal", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player enters a nether portal and the swirly animation starts to play.", - "examples" : "" -}, -{ - "id" : "prepare_craft", - "name" : "On Prepare Craft", - "patterns" : [ - "[player] (preparing|beginning) craft[ing] [[of] %item types%]", - - "pattern_end" - ], - "since" : "2.2-Fixes-V10", - "description" : "Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs.", - "examples" : "" -}, -{ - "id" : "pressure_plate_trip", - "name" : "On Pressure Plate / Trip", - "patterns" : [ - "[step[ping] on] [a] [pressure] plate", -"(trip|[step[ping] on] [a] tripwire)", - - "pattern_end" - ], - "since" : "1.0 (pressure plate), 1.4.4 (tripwire)", - "description" : "Called when a player steps on a pressure plate or tripwire respectively.", - "examples" : "" -}, -{ - "id" : "projectile_hit", - "name" : "On Projectile Hit", - "patterns" : [ - "projectile hit", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a projectile hits an entity or a block.\\nUse 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.\\nA damage event will even be fired if the damage is 0, e.g. when throwing snowballs at non-nether mobs.", - "examples" : "" -}, -{ - "id" : "quit", - "name" : "On Quit", - "patterns" : [ - "(quit[ting]|disconnect[ing]|log[ ]out|logging out)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player leaves the server. Starting with Skript 2.0 this also includes kicked players.", - "examples" : "" -}, -{ - "id" : "redstone", - "name" : "On Redstone", - "patterns" : [ - "redstone [current] [chang(e|ing)]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when the redstone current of a block changes. This event is of not much use yet.", - "examples" : "" -}, -{ - "id" : "region_enterleave", - "name" : "On Region Enter/Leave", - "patterns" : [ - "(enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)", -"region (enter[ing]|leav(e|ing)|exit[ing])", - - "pattern_end" - ], - "since" : "2.1", - "description" : "Called when a player enters or leaves a region.\\nThis event requires a supported regions plugin to be installed.", - "examples" : "on region exit:\\n message \"Leaving %region%.\"" -}, -{ - "id" : "respawn", - "name" : "On Respawn", - "patterns" : [ - "[player] respawn[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "resurrect_attempt", - "name" : "On Resurrect Attempt", - "patterns" : [ - "[entity] resurrect[ion] [attempt]", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Called when an entity dies, always. If they are not holding a totem, this is calcelled - you can, however, uncancel it.", - "examples" : "on resurrect attempt:\\n entity is player\\n entity has permission \"admin.undying\"\\n uncancel the event" -}, -{ - "id" : "script_loadunload", - "name" : "On Script Load/Unload", - "patterns" : [ - "[script] (load|init|enable)", -"[script] (unload|stop|disable)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Called directly after the trigger is loaded, or directly before the whole script is unloaded.", - "examples" : "on load:\\n set {running.%script%} to true\\non unload:\\n set {running.%script%} to false" -}, -{ - "id" : "server_startstop", - "name" : "On Server Start/Stop", - "patterns" : [ - "(server|skript) (start|load|enable)", -"(server|skript) (stop|unload|disable)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well).", - "examples" : "on Skript start\\non server stop" -}, -{ - "id" : "sheep_regrow_wool", - "name" : "On Sheep Regrow Wool", - "patterns" : [ - "sheep [re]grow[ing] wool", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Called when sheep regrows it's sheared wool back.", - "examples" : "" -}, -{ - "id" : "shoot", - "name" : "On Shoot", - "patterns" : [ - "[projectile] shoot", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called whenever a projectile is shot. Use the shooter expression to get who shot the projectile.", - "examples" : "" -}, -{ - "id" : "sign_change", - "name" : "On Sign Change", - "patterns" : [ - "sign (chang[e]|edit)[ing]", -"[player] (chang[e]|edit)[ing] [a] sign", - - "pattern_end" - ], - "since" : "1.0", - "description" : "As signs are placed empty, this event is called when a player is done editing a sign.", - "examples" : "on sign change:\\n line 2 is empty\\n set line 1 to \"%line 1%\"" -}, -{ - "id" : "slime_split", - "name" : "On Slime Split", - "patterns" : [ - "slime split[ting]", - - "pattern_end" - ], - "since" : "2.2-dev26", - "description" : "Called when a slime splits. Usually this happens when a big slime dies.", - "examples" : "" -}, -{ - "id" : "smelt", - "name" : "On Smelt", - "patterns" : [ - "[ore] smelt[ing]", -"smelt[ing] of ore", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a furnace smelts an item in its ore slot.", - "examples" : "" -}, -{ - "id" : "sneak_toggle", - "name" : "On Sneak Toggle", - "patterns" : [ - "[player] toggl(e|ing) sneak", -"[player] sneak toggl(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called.", - "examples" : "# make players that stop sneaking jump\\non sneak toggle:\\n player was sneaking\\n push the player upwards at speed 0.5" -}, -{ - "id" : "spawn", - "name" : "On Spawn", - "patterns" : [ - "spawn[ing] [of %entity types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an creature spawns.", - "examples" : "on spawn of a zombie\\non spawn of an ender dragon:\\n broadcast \"A dragon has been sighted in %world%!\"" -}, -{ - "id" : "spawn_change", - "name" : "On Spawn Change", - "patterns" : [ - "[world] spawn change", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when the spawn point of a world changes.", - "examples" : "" -}, -{ - "id" : "spread", - "name" : "On Spread", - "patterns" : [ - "spread[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a new block forms as a result of a block that can spread, e.g. water or mushrooms.", - "examples" : "" -}, -{ - "id" : "sprint_toggle", - "name" : "On Sprint Toggle", - "patterns" : [ - "[player] toggl(e|ing) sprint", -"[player] sprint toggl(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player starts or stops sprinting. Use is sprinting to get whether the player was sprinting before the event was called.", - "examples" : "on sprint toggle:\\n player is not sprinting\\n send \"Run!\"" -}, -{ - "id" : "tame", - "name" : "On Tame", - "patterns" : [ - "[entity] tam(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed.", - "examples" : "" -}, -{ - "id" : "target", - "name" : "On Target", - "patterns" : [ - "[entity] target", -"[entity] un[-]target", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a mob starts/stops following/attacking another entity, usually a player.", - "examples" : "" -}, -{ - "id" : "teleport", - "name" : "On Teleport", - "patterns" : [ - "[player] teleport[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called whenever a player is teleported, either by a nether/end portal or other means (e.g. by plugins).", - "examples" : "" -}, -{ - "id" : "throwing_of_an_egg", - "name" : "On Throwing of an Egg", - "patterns" : [ - "throw[ing] [of] [an] egg", -"[player] egg throw", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "tool_change", - "name" : "On Tool Change", - "patterns" : [ - "[player['s]] (tool|item held|held item) chang(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "vehicle_create", - "name" : "On Vehicle Create", - "patterns" : [ - "vehicle create", -"creat(e|ing|ion of) [a] vehicle", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a new vehicle is created, e.g. when a player places a boat or minecart.", - "examples" : "" -}, -{ - "id" : "vehicle_damage", - "name" : "On Vehicle Damage", - "patterns" : [ - "vehicle damage", -"damag(e|ing) [a] vehicle", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a vehicle gets damage. Too much damage will destroy the vehicle.", - "examples" : "" -}, -{ - "id" : "vehicle_destroy", - "name" : "On Vehicle Destroy", - "patterns" : [ - "vehicle destroy", -"destr(oy[ing]|uction of) [a] vehicle", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a vehicle is destroyed. Any passenger will be ejected and the vehicle might drop some item(s).", - "examples" : "" -}, -{ - "id" : "vehicle_enter", - "name" : "On Vehicle Enter", - "patterns" : [ - "vehicle enter", -"enter[ing] [a] vehicle", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an entity enters a vehicle, either deliberately (players) or by falling into them (mobs).", - "examples" : "" -}, -{ - "id" : "vehicle_exit", - "name" : "On Vehicle Exit", - "patterns" : [ - "vehicle exit", -"exit[ing] [a] vehicle", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when an entity exits a vehicle.", - "examples" : "" -}, -{ - "id" : "weather_change", - "name" : "On Weather Change", - "patterns" : [ - "weather change [to %weather types%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a world's weather changes.", - "examples" : "on weather change\\non weather change to sunny" -}, -{ - "id" : "world_init", - "name" : "On World Init", - "patterns" : [ - "world init[zation)]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.\\nWorld management plugins might change the behaviour of this event though.", - "examples" : "" -}, -{ - "id" : "world_load", - "name" : "On World Load", - "patterns" : [ - "world load[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).", - "examples" : "" -}, -{ - "id" : "world_save", - "name" : "On World Save", - "patterns" : [ - "world sav(e|ing)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this.", - "examples" : "" -}, -{ - "id" : "world_unload", - "name" : "On World Unload", - "patterns" : [ - "world unload[ing]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a world is unloaded. This event might never be called if you don't have a world management plugin.", - "examples" : "" -}, -{ - "id" : "zombie_break_door", - "name" : "On Zombie Break Door", - "patterns" : [ - "zombie break[ing] [a] [wood[en]] door", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door.", - "examples" : "" -}, -{ - "id" : "periodical", - "name" : "Periodical", - "patterns" : [ - "every %time span%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "An event that is called periodically.", - "examples" : "every 2 seconds\\nevery minecraft hour\\nevery ticks #can cause lag (depends on the code in this trigger)\\nevery minecraft days" -}, -{ - "id" : "periodical", - "name" : "Periodical", - "patterns" : [ - "every %time span% in [world[s]] %worlds%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "An event that is called periodically.", - "examples" : "every 2 seconds in \"world\"\\nevery minecraft hour in \"flatworld\"\\nevery ticks in \"world\" #can cause lag (depends on the code in this trigger)\\nevery minecraft days in \"plots\"" -}, - - {"end" : true} - ], - - "expressions" : [ - { - "id" : "ExprAllGroups", - "name" : "All Groups", - "patterns" : [ - "all groups", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed.", - "examples" : "command /group :\\n trigger:\\n if argument is \"list\":\\n send \"%all groups%\"" -}, -{ - "id" : "ExprPermissions", - "name" : "All Permissions", - "patterns" : [ - "[the] permissions of %players%", -"%players%'[s] permissions", - - "pattern_end" - ], - "since" : "2.2-dev33", - "description" : "Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions.", - "examples" : "set {_permissions::*} to all permissions of the player" -}, -{ - "id" : "ExprAlphabetList", - "name" : "Alphabetical Sort", - "patterns" : [ - "alphabetically sorted %texts%", - - "pattern_end" - ], - "since" : "2.2-dev18b", - "description" : "Sorts given strings in alphabetical order.", - "examples" : "set {_list::*} to alphabetically sorted {_list::*" -}, -{ - "id" : "ExprAltitude", - "name" : "Altitude", - "patterns" : [ - "[the] altitude[s] of %locations%", -"%locations%'[s] altitude[s]", - - "pattern_end" - ], - "since" : "1.4.3", - "description" : "Effectively an alias of 'y-coordinate of …', it represents the height of some object above bedrock.", - "examples" : "on damage:\\n altitude of the attacker is higher that the altitude of the victim\\n set damage to damage * 1.2" -}, -{ - "id" : "ExprAmount", - "name" : "Amount", - "patterns" : [ - "(amount|number|size) of %objects%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The amount of something.\\nPlease 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.", - "examples" : "message \"There are %number of all players% players online!\"" -}, -{ - "id" : "ExprAmountOfItems", - "name" : "Amount of Items", - "patterns" : [ - "[the] (amount|number) of %item types% (in|of) %inventories%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Counts how many of a particular item type are in a given inventory.", - "examples" : "message \"You have %number of ores in the player's inventory% ores in your inventory.\"" -}, -{ - "id" : "ExprArgument", - "name" : "Argument", - "patterns" : [ - "[the] last arg[ument][s]", -"[the] arg[ument][s](-| )<(\\d+)>", -"[the] <(\\d*1)st|(\\d*2)nd|(\\d*3)rd|(\\d*[4-90])th> arg[ument][s]", -"[the] arg[ument][s]", -"[the] %*type%( |-)arg[ument][( |-)<\\d+>]", -"[the] arg[ument]( |-)%*type%[( |-)<\\d+>]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Only usable in command events. Holds the value of the nth 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!\".\\nOne 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'.", - "examples" : "give the item-argument to the player-argument\\ndamage the player-argument by the number-argument\\ngive a diamond pickaxe to the argument\\nadd argument 1 to argument 2\\nheal the last argument" -}, -{ - "id" : "ExprArithmetic", - "name" : "Arithmetic", - "patterns" : [ - "%number%[ ]+[ ]%number%", -"%number%[ ]-[ ]%number%", -"%number%[ ]*[ ]%number%", -"%number%[ ]/[ ]%number%", -"%number%[ ]^[ ]%number%", - - "pattern_end" - ], - "since" : "1.4.2", - "description" : "Arithmetic expressions, e.g. 1+2, (2 - health of player)/3, etc.", - "examples" : "set the player's health to 10 - the player's health\\nloop (argument + 2)/5 times:\\n message \"Two useless numbers: %loop-num*2 - 5%, %2^loop-num - 1%\"\\nmessage \"You have %health of player * 2% half hearts of HP!\"" -}, -{ - "id" : "ExprArmorSlot", - "name" : "Armour Slot", - "patterns" : [ - "[the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%", -"%living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A part of a player's armour, i.e. the boots, leggings, chestplate or helmet.", - "examples" : "set chestplate of the player to a diamond chestplate\\nhelmet of player is neither a helmet nor air # player is wearing a block, e.g. from another plugin" -}, -{ - "id" : "ExprAttacked", - "name" : "Attacked", - "patterns" : [ - "[the] (attacked|damaged|victim) [<(.+)>]", - - "pattern_end" - ], - "since" : "1.3", - "description" : "The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie.", - "examples" : "on damage:\\n victim is a creeper\\n damage the attacked by 1 heart" -}, -{ - "id" : "ExprAttacker", - "name" : "Attacker", - "patterns" : [ - "[the] (attacker|damager)", - - "pattern_end" - ], - "since" : "1.3", - "description" : "The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player.\\nPlease 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.", - "examples" : "on damage:\\n attacker is a player\\n health of attacker is less than or equal to 2\\n damage victim by 1 heart" -}, -{ - "id" : "ExprBed", - "name" : "Bed", - "patterns" : [ - "[the] bed[s] [location[s]] of %players%", -"%players%'[s] bed[s] [location[s]]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.", - "examples" : "bed of player exists:\\n teleport player the the player's bed\\nelse:\\n teleport the player to the world's spawn point" -}, -{ - "id" : "ExprBiome", - "name" : "Biome", - "patterns" : [ - "[the] biome (of|%direction%) %location%", -"%location%'[s] biome", - - "pattern_end" - ], - "since" : "1.4.4", - "description" : "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. ", - "examples" : "# damage player in deserts constantly\\nevery real minute:\\n loop all players:\\n biome at loop-player is desert\\n damage the loop-player by 1" -}, -{ - "id" : "ExprBlock", - "name" : "Block", - "patterns" : [ - "[the] [event-]block", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The block involved in the event, e.g. the clicked block or the placed block.\\nCan optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.", - "examples" : "block is ore\\nset block below to air\\nspawn a creeper above the block\\nloop blocks in radius 4:\\n loop-block is obsidian\\n set loop-block to water\\nblock is a chest:\\n clear the inventory of the block" -}, -{ - "id" : "ExprBlock", - "name" : "Block", - "patterns" : [ - "[the] block %direction% [%location%]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The block involved in the event, e.g. the clicked block or the placed block.\\nCan optionally include a direction as well, e.g. 'block above' or 'block in front of the player'.", - "examples" : "block is ore\\nset block below to air\\nspawn a creeper above the block\\nloop blocks in radius 4:\\n loop-block is obsidian\\n set loop-block to water\\nblock is a chest:\\n clear the inventory of the block" -}, -{ - "id" : "ExprBlockSphere", - "name" : "Block Sphere", - "patterns" : [ - "[(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]", -"[(all [[of] the]|the)] blocks around %location% in radius %number%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "All blocks in a sphere around a center, mostly useful for looping.", - "examples" : "loop blocks in radius 5 around the player:" -}, -{ - "id" : "ExprBlocks", - "name" : "Blocks", - "patterns" : [ - "[(all [[of] the]|the)] blocks %direction% [%locations%]", -"[(all [[of] the]|the)] blocks from %location% [on] %direction%", -"[(all [[of] the]|the)] blocks from %block% to %block%", -"[(all [[of] the]|the)] blocks (within|between) %block% and %block%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Blocks relative to other blocks or between other blocks. Can be used to get blocks relative to other blocks or for looping.", - "examples" : "loop blocks above the player:\\nloop blocks between the block below the player and the targeted block:\\nset the blocks below the player, the victim and the targeted block to air" -}, -{ - "id" : "ExprBlocksInRegion", - "name" : "Blocks in Region", - "patterns" : [ - "[(all|the)] blocks (in|of) [[the] region[s]] %regions%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "All blocks in a region.\\nThis expression requires a supported regions plugin to be installed.", - "examples" : "loop all blocks in the region {arena.%{faction.%player%}%}:\\n clear the loop-block" -}, -{ - "id" : "ExprBookAuthor", - "name" : "Book Author", - "patterns" : [ - "[the] [book] (author|writer|publisher) of %item stack%", -"%item stack%'[s] [book] (author|writer|publisher)", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "The author of a book", - "examples" : "on book sign:\\n message \"Book Title: %author of event-item%\"" -}, -{ - "id" : "ExprBookPages", - "name" : "Book Pages", - "patterns" : [ - "[all] [the] [book] (pages|content) of %item stack%", -"%item stack%'s [book] (pages|content)", -"[book] page %number% of %item stack%", -"%item stack%'s [book] page %number%", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "The pages of a book", - "examples" : "on book sign:\\n message \"Book Pages: %pages of event-item%\"\\n message \"Book Page 1: %page 1 of event-item%\"" -}, -{ - "id" : "ExprBookTitle", - "name" : "Book Title", - "patterns" : [ - "[the] (book name|title) of %item stack%", -"%item stack%'[s] (book name|title)", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "The title of a book", - "examples" : "on book sign:\\n message \"Book Title: %title of event-item%\"" -}, -{ - "id" : "ExprBurnCookTime", - "name" : "Burn/Cook Time", - "patterns" : [ - "[the] burn[ing] time", -"[the] (burn|cook)[ing] time of %blocks%", -"%blocks%'[s] (burn|cook)[ing] time", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "The time a furnace takes to burn an item in a fuel burn event.\\nCan also be used to change the burn/cook time of a placed furnace.", - "examples" : "on fuel burn:\\n if fuel slot is coal:\\n set burning time to 1 tick" -}, -{ - "id" : "ExprChatFormat", - "name" : "Chat Format", - "patterns" : [ - "[the] (message|chat) format[ting]", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "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].", - "examples" : "set the chat format to \"[player]: [message]\"" -}, -{ - "id" : "ExprChatRecipients", - "name" : "Chat Recipients", - "patterns" : [ - "[chat][( |-)]recipients", - - "pattern_end" - ], - "since" : "2.2-Fixes-v7, 2.2-dev35 (clearing recipients)", - "description" : "Recipients of chat events where this is called.", - "examples" : "chat recipients" -}, -{ - "id" : "ExprChunk", - "name" : "Chunk", - "patterns" : [ - "[the] chunk[s] (of|%directions%) %locations%", -"%locations%'[s] chunk[s]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The chunk a block, location or entity is in", - "examples" : "add the chunk at the player to {protected chunks::*}" -}, -{ - "id" : "ExprClicked", - "name" : "Clicked Block/Entity/Inventory/Slot", - "patterns" : [ - "[the] ( clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action)", - - "pattern_end" - ], - "since" : "1.0, 2.2-dev35 (more clickable things)", - "description" : "The clicked block, entity, inventory slot, inventory, type or action.", - "examples" : "message \"You clicked on a %type of clicked entity%!\"\\nclicked block is a chest:\\n show the inventory of the clicked block to the player" -}, -{ - "id" : "ExprColorOf", - "name" : "Colour of", - "patterns" : [ - "[the] colo[u]r[s] of %item stacks/entities%", -"%item stacks/entities%'[s] colo[u]r[s]", - - "pattern_end" - ], - "since" : "1.2", - "description" : "The colour of an item, can also be used to colour chat messages with \"<%colour of ...%>this text is coloured!\".", - "examples" : "on click on wool:\\n message \"This wool block is <%colour of block%>%colour of block%!\"\\n set the colour of the block to black" -}, -{ - "id" : "ExprColoured", - "name" : "Coloured / Uncoloured", - "patterns" : [ - "(colo[u]r-|colo[u]red )%texts%", -"(un|non)[-](colo[u]r-|colo[u]red )%texts%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Parses <colour>s (including chat styles) in a message or removes any colours & chat styles from the message.", - "examples" : "on chat:\\n set message to coloured message\\ncommand /fade :\\n trigger:\\n set display name of the player-argument to uncoloured display name of the player-argument" -}, -{ - "id" : "ExprCommand", - "name" : "Command", - "patterns" : [ - "[the] (full|complete|whole) command", -"[the] command [label]", -"[the] arguments", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The command that caused an 'on command' event (excluding the leading slash and all arguments)", - "examples" : "# prevent any commands except for the /exit command during some game\\non command:\\n{game.%player%.is playing} is true\\ncommand is not \"exit\"\\nmessage \"You're not allowed to use commands during the game\"\\ncancel the event" -}, -{ - "id" : "ExprCommandSender", - "name" : "Command Sender", - "patterns" : [ - "[the] [command['s]] (sender|executor)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The player or the console who sent a command. Mostly useful in commands and command events.", - "examples" : "make the command sender execute \"/say hi!\"\\non command:\\n log \"%executor% used command /%command% %arguments%\" to \"commands.log\"" -}, -{ - "id" : "ExprCompassTarget", - "name" : "Compass Target", - "patterns" : [ - "[the] compass target of %players%", -"%players%'[s] compass target", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The location a player's compass is pointing at.", - "examples" : "# make all player's compasses target a player stored in {compass target.%player%}\\nevery 5 seconds:\\n loop all players:\\n set the loop-player's compass target to location of {compass target.%loop-player%}" -}, -{ - "id" : "LitConsole", - "name" : "Console", - "patterns" : [ - "[the] (console|server)", - - "pattern_end" - ], - "since" : "1.3.1", - "description" : "Represents the server's console which can receive messages and execute commands", - "examples" : "execute console command \"/stop\"\\nsend \"message to console\" to the console" -}, -{ - "id" : "ExprCmdCooldownInfo", - "name" : "Cooldown Time/Remaining Time/Elapsed Time/Last Usage Date/Cooldown Bypass Permission", - "patterns" : [ - "[the] (remaining [time]|elapsed [time]|cooldown [time] [length]|last usage [date]|cooldown bypass perm[ission]) [of] [the] [(cooldown|wait)] [((of|for)[the] [current] command)]", - - "pattern_end" - ], - "since" : "2.2-dev33", - "description" : "Only usable in command events. Represents the cooldown time, the remaining time, or the elapsed time, or the last usage date, or the cooldown bypass permission.", - "examples" : "command /home:\\n cooldown: 10 seconds\\n cooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time%\\n trigger:\\n teleport player to {home::%player%}" -}, -{ - "id" : "ExprCoordinate", - "name" : "Coordinate", - "patterns" : [ - "[the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%", -"%locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]", - - "pattern_end" - ], - "since" : "1.4.3", - "description" : "Represents a given coordinate of a location. ", - "examples" : "player's y-coordinate is smaller than 40:\\n message \"Watch out for lava!\"" -}, -{ - "id" : "ExprEntity", - "name" : "Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc.", - "patterns" : [ - "[the] [event-]<.+>", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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).\\nYou 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'.", - "examples" : "give a diamond sword of sharpness 3 to the player\\nkill the creeper\\nkill all powered creepers in the wolf's world\\nprojectile is an arrow" -}, -{ - "id" : "ExprCursorSlot", - "name" : "Cursor Slot", - "patterns" : [ - "[the] cursor slot of %players%", -"%players%'[s] cursor slot", - - "pattern_end" - ], - "since" : "2.2-dev17", - "description" : "The item which player has on their cursor. This slot is always empty if player has no inventories open.", - "examples" : "cursor slot of player is dirt\\nset cursor slot of player to 64 diamonds" -}, -{ - "id" : "ExprChestInventory", - "name" : "Custom Chest Inventory", - "patterns" : [ - "[a [new]] chest inventory (named|with name) %text% [with %number% row[s]]", -"[a [new]] chest inventory with %number% row[s] [(named|with name) %text%]", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Returns a chest inventory with the given amount of rows and the name. Use the open inventoryeffect to open it.", - "examples" : "open chest inventory with 1 rows named \"test\"\\nset {_inventory} to chest inventory with 1 row" -}, -{ - "id" : "ExprDamage", - "name" : "Damage", - "patterns" : [ - "[the] damage", - - "pattern_end" - ], - "since" : "1.3.5", - "description" : "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).", - "examples" : "increase the damage by 2" -}, -{ - "id" : "ExprDamageCause", - "name" : "Damage Cause", - "patterns" : [ - "[the] damage (cause|type)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The damage cause of a damage event. Please click on the link for more information.", - "examples" : "damage cause is lava, fire or burning" -}, -{ - "id" : "ExprDurability", - "name" : "Data Value", - "patterns" : [ - "[the] ((data|damage)[s] [value[s]]|durabilit(y|ies)) of %item stacks/slots%", -"%item stacks/slots%'[s] ((data|damage)[s] [value[s]]|durabilit(y|ies))", - - "pattern_end" - ], - "since" : "1.2", - "description" : "The data value of an item.\\nYou 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.", - "examples" : "add 1 to the data value of the clicked block" -}, -{ - "id" : "ExprDateAgoLater", - "name" : "Date Ago/Later", - "patterns" : [ - "%time span% (ago|in the past|before [the] [date] %date%)", -"%time span% (later|(from|after) [the] [date] %date%)", - - "pattern_end" - ], - "since" : "2.2-dev33", - "description" : "A date the specified timespan before/after another date.", - "examples" : "set {_yesterday} to 1 day ago" -}, -{ - "id" : "ExprDefaultValue", - "name" : "Default Value", - "patterns" : [ - "%objects% (otherwise|?) %objects%", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned.", - "examples" : "broadcast {score::%player's uuid%} otherwise \"%player% has no score!\"" -}, -{ - "id" : "ExprDifference", - "name" : "Difference", - "patterns" : [ - "difference (between|of) %object% and %object%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "The difference between two values, e.g. numbers, dates or times.", - "examples" : "difference between {command.%player%.lastuse} and now is smaller than a minute:\\n message \"You have to wait a minute before using this command again!\"\\n stop" -}, -{ - "id" : "ExprDirection", - "name" : "Direction", - "patterns" : [ - "[%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%]", -"[%number% [[(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% (of|from)]", -"[%number% [[(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) (of|from)]", -"[%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])", -"[%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])", - - "pattern_end" - ], - "since" : "1.0 (basic), 2.0 (extended)", - "description" : "A helper expression for the direction type.", - "examples" : "thrust the player upwards\\nset the block behind the player to water\\nloop blocks above the player:\\n set {_rand} to a random integer between 1 and 10\\n set the block {_rand} meters south east of the loop-block to stone\\nblock in horizontal facing of the clicked entity from the player is air\\nspawn a creeper 1.5 meters horizontally behind the player\\nspawn a TNT 5 meters above and 2 meters horizontally behind the player\\nthrust the last spawned TNT in the horizontal direction of the player with speed 0.2\\npush the player upwards and horizontally forward at speed 0.5\\npush the clicked entity in in the direction of the player at speed -0.5\\nopen the inventory of the block 2 blocks below the player to the player\\nteleport the clicked entity behind the player\\ngrow a regular tree 2 meters horizontally behind the player" -}, -{ - "id" : "ExprDistance", - "name" : "Distance", - "patterns" : [ - "[the] distance between %location% and %location%", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The distance between two points.", - "examples" : "distance between the player and {%player%.home} is smaller than 20:\\n message \"You're very close to your home!\"" -}, -{ - "id" : "ExprDrops", - "name" : "Drops", - "patterns" : [ - "[the] drops", - - "pattern_end" - ], - "since" : "1.0", - "description" : "Only works in 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.", - "examples" : "clear drops\\nremove 4 planks from the drops" -}, -{ - "id" : "ExprElement", - "name" : "Element of", - "patterns" : [ - "([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The first, last or a random element of a set, e.g. a list variable.\\nSee also: random", - "examples" : "give a random element out of {free items::*} to the player" -}, -{ - "id" : "ExprEnchantmentLevel", - "name" : "Enchantment Level", - "patterns" : [ - "[the] (%enchantment% level|level of [[the] enchant[ment]] %enchantment%) o(f|n) %item types%", -"%item types%'[s] (%enchantment% level|level of [[the] enchant[ment]] %enchantment%)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The level of a particular enchantment on an item", - "examples" : "player' tool is a sword of sharpness:\\n message \"You have a sword of sharpness %level of sharpness of the player's tool% equipped\"" -}, -{ - "id" : "ExprEnderChest", - "name" : "Ender Chest", - "patterns" : [ - "[the] ender[ ]chest[s] of %players%", -"%players%'[s] ender[ ]chest[s]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The ender chest of a player", - "examples" : "open the player's ender chest to the player" -}, -{ - "id" : "ExprEntities", - "name" : "Entities", - "patterns" : [ - "[(all [[of] the]|the)] %*entity types% [(in|of) [world[s]] %worlds%]", -"[(all [[of] the]|the)] entities of type[s] %entity types% [(in|of) [world[s]] %worlds%]", -"[(all [[of] the]|the)] %*entity types% (within|[with]in radius) %number% [(block[s]|met(er|re)[s])] (of|around) %location%", -"[(all [[of] the]|the)] entities of type[s] %entity types% in radius %number% (of|around) %location%", - - "pattern_end" - ], - "since" : "1.2.1", - "description" : "all entities in all world, 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'.", - "examples" : "kill all creepers in the player's world\\nsend \"Psst!\" to all players witin 100 meters of the player\\ngive a diamond to all ops\\nheal all tamed wolves in radius 2000 around {town center}" -}, -{ - "id" : "ExprExhaustion", - "name" : "Exhaustion", - "patterns" : [ - "[the] exhaustion of %players%", -"%players%'[s] exhaustion", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "The exhaustion of a player. This is mainly used to determine the rate of hunger depletion.", - "examples" : "set exhaustion of all players to 1" -}, -{ - "id" : "ExprExperience", - "name" : "Experience", - "patterns" : [ - "[the] [(spawned|dropped)] [e]xp[erience] [orb[s]]", - - "pattern_end" - ], - "since" : "2.1", - "description" : "How much experience was spawned in an experience spawn event. Can be changed.", - "examples" : "on experience spawn:\\n add 5 to the spawned experience" -}, -{ - "id" : "ExprFacing", - "name" : "Facing", - "patterns" : [ - "[the] [horizontal] facing of %living entities/blocks%", -"%living entities/blocks%'[s] [horizontal] facing", - - "pattern_end" - ], - "since" : "1.4", - "description" : "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')", - "examples" : "# makes a bridge\\nloop blocks from the block below the player in the horizontal facing of the player:\\n set block to cobblestone" -}, -{ - "id" : "ExprFilter", - "name" : "Filter", - "patterns" : [ - "%objects% (where|that match) \\[<.+>\\]", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "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.", - "examples" : "send \"congrats on being staff!\" to all players where [player input has permission \"staff\"]" -}, -{ - "id" : "ExprInput", - "name" : "Filter Input", - "patterns" : [ - "input", -"%*type% input", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "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.", - "examples" : "send \"congrats on being staff!\" to all players where [input has permission \"staff\"]" -}, -{ - "id" : "ExprFinalDamage", - "name" : "Final Damage", - "patterns" : [ - "[the] final damage", - - "pattern_end" - ], - "since" : "2.2-dev19", - "description" : "How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed.", - "examples" : "send \"%final damage%\" to victim" -}, -{ - "id" : "ExprFlightMode", - "name" : "Flight Mode", - "patterns" : [ - "[the] fl(y[ing]|ight) (mode|state) of %players%", -"%players%'[s] fl(y[ing]|ight) (mode|state)", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Whether the player(s) are allowed to fly. Use Make Fly effect to force player(s) to fly.", - "examples" : "set flight mode of player to true\\nsend \"%flying state of all players%\"" -}, -{ - "id" : "ExprFoodLevel", - "name" : "Food Level", - "patterns" : [ - "[the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]", -"%player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar. ", - "examples" : "set the player's food level to 10" -}, -{ - "id" : "ExprFormatTime", - "name" : "Formatted time", - "patterns" : [ - "%dates% formatted [human-readable] [(with|as) %text%]", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Converts date to human-readable text format. By default, yyyy-MM-dd HH:mm:ss z will be used. For reference, see this Wikipedia article.", - "examples" : "now formatted human-readable" -}, -{ - "id" : "ExprTimeState", - "name" : "Former/Future State", - "patterns" : [ - "[the] (former|past|old) [state] [of] %~object%", -"%~object% before [the event]", -"[the] (future|to-be|new) [state] [of] %~object%", -"%~object%(-to-be| after[(wards| the event)])", - - "pattern_end" - ], - "since" : "1.1", - "description" : "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.\\nNote: The past, future and present states of an expression are sometimes called 'time states' of an expression.\\nNote 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.", - "examples" : "on teleport:\\n former world was \"world_nether\" # or 'world was'\\n world will be \"world\" # or 'world after the event is'\\non tool change:\\n past tool is an axe\\n the tool after the event will be air\\non weather change:\\n set {weather.%world%.old} to past weather\\n set {weather.%world%.current} to the new weather" -}, -{ - "id" : "ExprFurnaceSlot", - "name" : "Furnace Slot", - "patterns" : [ - "(fuel|result) [slot]", -"(ore|fuel|result)[s] [slot[s]] of %blocks%", -"%blocks%'[s] (ore|fuel|result)[s] [slot[s]]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "A slot of a furnace, i.e. either the ore, fuel or result slot.\\nRemember to use 'block' and not 'furnace', as 'furnace' is not an existing expression.", - "examples" : "set the fuel slot of the clicked block to a lava bucket\\nset the block's ore slot to 64 iron ore\\ngive the result of the block to the player\\nclear the result slot of the block" -}, -{ - "id" : "ExprGameMode", - "name" : "Game Mode", - "patterns" : [ - "[the] game[ ]mode of %players%", -"%players%'[s] game[ ]mode", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The gamemode of a player.", - "examples" : "player's gamemode is survival\\nset the player's gamemode to creative" -}, -{ - "id" : "ExprGlidingState", - "name" : "Gliding State", - "patterns" : [ - "[the] (gliding|glider) [state] of %entities%", -"%entities%'[s] (gliding|glider) [state]", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "Sets of gets gliding state of player. It allows you to set gliding state of entity even if they do not have Elytra equipped.", - "examples" : "set gliding of player to off" -}, -{ - "id" : "ExprGlowing", - "name" : "Glowing", - "patterns" : [ - "[the] glowing of %entities%", -"%entities%'[s] glowing", - - "pattern_end" - ], - "since" : "2.2-dev18", - "description" : "Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls.", - "examples" : "set glowing of player on" -}, -{ - "id" : "ExprGravity", - "name" : "Gravity", - "patterns" : [ - "[the] gravity of %entities%", -"%entities%'[s] gravity", - - "pattern_end" - ], - "since" : "2.2-dev21", - "description" : "If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag.", - "examples" : "set gravity of player off" -}, -{ - "id" : "ExprGroup", - "name" : "Group", - "patterns" : [ - "[the] group[(s)] of %offline players%", -"%offline players%'[s] group[(s)]", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "The primary group or all groups of a player. This expression requires Vault and a compatible permissions plugin to be installed.", - "examples" : "on join:\\nbroadcast \"%group of player%\" # this is the player's primary group\\nbroadcast \"%groups of player%\" # this is all of the player's groups" -}, -{ - "id" : "ExprHash", - "name" : "Hash", - "patterns" : [ - "%texts% hash[ed] with (MD5|SHA-256)", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev32 (SHA-256 algorithm)", - "description" : "Hashes the given text using the MD5 or SHA-256 algorithms. Each algorithm is suitable for different use cases.

      \\nMD5 is provided mostly for backwards compatibility, as it is outdated and not secure. \\nSHA-256 is more secure, and can used to hash somewhat confidental data like IP addresses and even passwords. \\nIt is not that secure out of the box, so please consider using salt when dealing with passwords! \\nWhen hashing data, you must specify algorithms that will be used for security reasons! \\n

      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.", - "examples" : "command /setpass :\\n trigger:\\n set {password.%player%} to text-argument hashed with SHA-256\\ncommand /login :\\n trigger:\\n {password.%player%} is text-argument hashed with SHA-256:\\n message \"Login successful.\"\\n else:\\n message \"Wrong password!\"" -}, -{ - "id" : "ExprEyeLocation", - "name" : "Head location", - "patterns" : [ - "[the] (head|eye[s]) [location[s]] of %living entities%", -"%living entities%'[s] (head|eye[s]) [location[s]]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight.\\nPlease 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.", - "examples" : "set the block at the player's head to air\\nset the block in front of the player's eyes to glass\\nloop blocks in front of the player's head:" -}, -{ - "id" : "ExprHealth", - "name" : "Health", - "patterns" : [ - "[the] health of %living entities%", -"%living entities%'[s] health", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The health of a creature, e.g. a player, mob, villager, etc. from 0 to the creature's max health, e.g. 10 for players.", - "examples" : "message \"You have %health% HP left.\"" -}, -{ - "id" : "ExprHiddenPlayers", - "name" : "Hidden Players", - "patterns" : [ - "[(all [[of] the]|the)] hidden players (of|for) %players%", -"[(all [[of] the]|the)] players hidden (from|for|by) %players%", - - "pattern_end" - ], - "since" : "2.2-dev37c", - "description" : "The players hidden from a player that hidden using the player visibility effect.", - "examples" : "message \"You are currently hiding: %hidden players of the player%\"" -}, -{ - "id" : "ExprHighestSolidBlock", - "name" : "Highest Solid Block", - "patterns" : [ - "[the] highest [(solid|non-air)] block[s] at %locations%", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Returns the highest solid block at the x and z coordinates of the world of given location", - "examples" : "highest block at location of arg-player" -}, -{ - "id" : "ExprHotbarSlot", - "name" : "Hotbar Slot", - "patterns" : [ - "[the] [([currently] selected|current)] hotbar slot of %players%", -"%players%'[s] [([currently] selected|current)] hotbar slot", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "The slot number of the currently selected hotbar slot.", - "examples" : "message \"%player's current hotbar slot%\"\\nset player's selected hotbar slot to slot 4 of player" -}, -{ - "id" : "ExprHumidity", - "name" : "Humidity", - "patterns" : [ - "[the] humidit(y|ies) of %blocks%", -"%blocks%'[s] humidit(y|ies)", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "Humidity of given blocks", - "examples" : "" -}, -{ - "id" : "ExprIP", - "name" : "IP", - "patterns" : [ - "IP[s][( |-)address[es]] of %players%", -"%players%'[s] IP[s][( |-)address[es]]", - - "pattern_end" - ], - "since" : "1.4, 2.2-dev26 (when used in connect event)", - "description" : "The IP address of a player.", - "examples" : "IP-ban the player # is equal to the next line\\nban the IP-address of the player\\nbroadcast \"Banned the IP %IP of player%\"" -}, -{ - "id" : "ExprIdOf", - "name" : "Id", - "patterns" : [ - "[the] id[s] of %item type%", -"%item type%'[s] id[s]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The id of a specific item. You usually don't need this expression as you can likely do everything with aliases.", - "examples" : "message \"the ID of %type of the clicked block% is %id of the clicked block%.\"" -}, -{ - "id" : "ExprIndexOf", - "name" : "Index Of", - "patterns" : [ - "[the] [(first|last)] index of %text% in %text%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "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.", - "examples" : "set {_@} to the first index of \"@\" in the text argument\\nif {_s} contains \"abc\":\\n set {_s} to the first (index of \"abc\" in {_s} + 3) characters of {_s} # removes everything after the first \"abc\" from {_s}" -}, -{ - "id" : "ExprIndexes", - "name" : "Indices of List", - "patterns" : [ - "[(all [[of] the]|the)] indices of %objects%", -"%objects%'s indices", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "Gets indices of a list variable.", - "examples" : "set {l::*} to \"some\", \"cool\" and \"values\" -broadcast \"%all indices of {l::*}%\" # Result is 1, 2 and 3" -}, -{ - "id" : "ExprInventory", - "name" : "Inventory", - "patterns" : [ - "[the] inventor(y|ies) of %inventoryholders%", -"%inventoryholders%'[s] inventor(y|ies)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "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.", - "examples" : "add a plank to the player's inventory\\nclear the player's inventory\\nremove 5 wool from the inventory of the clicked block" -}, -{ - "id" : "ExprInventoryAction", - "name" : "Inventory Action", - "patterns" : [ - "[the] inventory action", - - "pattern_end" - ], - "since" : "2.2-dev16", - "description" : "The inventory action of an inventory event. Please click on the link for more information.", - "examples" : "inventory action is pickup all" -}, -{ - "id" : "ExprInventoryInfo", - "name" : "Inventory Holder/Viewers/Rows", - "patterns" : [ - "[the] (holder[s]|viewers|[amount of] rows) of %inventories%", -"%inventories%'[s] (holder[s]|viewers|[amount of] rows)", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "Gets the rows/size/viewers/holder of an inventory.", - "examples" : "event-inventory's amount of rows\\nholder of player's top inventory\\n{_inventory}'s viewers" -}, -{ - "id" : "ExprInventorySlot", - "name" : "Inventory Slot", - "patterns" : [ - "[the] slot[s] %numbers% of %inventory%", -"%inventory%'[s] slot[s] %numbers%", - - "pattern_end" - ], - "since" : "2.2-dev24", - "description" : "Represents a slot in a inventory. It can be used to change the item in a inventory too.", - "examples" : "if slot 0 of player is air:\\n set slot 0 of player to 2 stones\\n remove 1 stone from slot 0 of player\\n add 2 stones to slot 0 of player\\n clear slot 1 of player" -}, -{ - "id" : "ExprItem", - "name" : "Item", - "patterns" : [ - "[the] item", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "The item involved in an event, e.g. in a drop, dispense, pickup or craft event.", - "examples" : "on dispense:\\n item is a clock\\n set the time to 6:00" -}, -{ - "id" : "ExprItemAmount", - "name" : "Item Amount", - "patterns" : [ - "[the] item[[ ]stack] (amount|size|number) of %item stacks%", -"%item stacks%'[s] item[[ ]stack] (amount|size|number)", - - "pattern_end" - ], - "since" : "2.2-dev24", - "description" : "The amount of an item stack.", - "examples" : "send \"You have got %item amount of player's tool% %player's tool% in your hand !\" to player" -}, -{ - "id" : "ExprEnchantments", - "name" : "Item Enchantments", - "patterns" : [ - "[the] enchantments of %item types%", -"%item types%'[s] enchantments", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "All the enchantments an entities%", -"%entities%'[s] item", - - "pattern_end" - ], - "since" : "2.2-dev35, 2.2-dev36 (improved)", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "ExprItems", - "name" : "Items", - "patterns" : [ - "[(all [[of] the]|the|every)] item(s|[ ]types)", -"[(all [[of] the]|the)] items of type[s] %item types%", -"[(all [[of] the]|the|every)] block(s|[ ]types)", -"[(all [[of] the]|the)] blocks of type[s] %item types%", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "Items or blocks of a specific type, useful for looping.", - "examples" : "loop items of type ore and log:\\n block contains loop-item\\n message \"Theres at least one %loop-item% in this block\"\\ndrop all blocks at the player # drops one of every block at the player" -}, -{ - "id" : "ExprItemsIn", - "name" : "Items In", - "patterns" : [ - "[(all [[of] the]|the)] items ([with]in|of|contained in|out of) [(inventor(y|ies)]) %inventories%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "All items in an inventory. Useful for looping or storing in a list variable.\\nPlease note that the positions of the items in the inventory are not saved, only their order is preserved.", - "examples" : "loop all items in the player's inventory:\\n loop-item is enchanted\\n remove loop-item from the player\\nset {inventory.%player%} to items in the player's inventory" -}, -{ - "id" : "ExprJoinSplit", - "name" : "Join & Split", - "patterns" : [ - "(concat[enate]|join) %objects% [(with|using|by) [[the] delimiter] %text%]", -"split %text% (at|using|by) [[the] delimiter] %text%", -"%text% split (at|using|by) [[the] delimiter] %text%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "Joins several texts with a common delimiter (e.g. \", \"), or splits a text into multiple texts at a given delimiter.", - "examples" : "message \"Online players: %join all players with \" | \"%\" # %all players% would use the default \"x, y, and z\"\\nset {_s::} to the string argument split at \",\"" -}, -{ - "id" : "ExprLanguage", - "name" : "Language", - "patterns" : [ - "[the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%", -"%players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "Currently selected game language of a player. The value of the language is not defined properly.\\nThe vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish.", - "examples" : "message player's current language" -}, -{ - "id" : "ExprLastDamageCause", - "name" : "Last Damage Cause", - "patterns" : [ - "[the] last damage (cause|reason|type) of %living entities%", -"%living entities%'[s] last damage (cause|reason|type)", - - "pattern_end" - ], - "since" : "2.2-Fixes-V10", - "description" : "Cause of last damage done to an entity", - "examples" : "set last damage cause of event-entity to fire tick" -}, -{ - "id" : "ExprLastSpawnedEntity", - "name" : "Last Spawned Entity", - "patterns" : [ - "[the] [last[ly]] (spawned|shot) %*entity type%", -"[the] [last[ly]] dropped (item)", - - "pattern_end" - ], - "since" : "1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item)", - "description" : "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 a item you can however access all them together.", - "examples" : "spawn a priest\\nset {%spawned priest%.healer} to true\\nshoot an arrow from the last spawned entity\\nignite the shot projectile\\ndrop a diamond sword\\npush last dropped item upwards" -}, -{ - "id" : "ExprLength", - "name" : "Length", - "patterns" : [ - "[the] length of %texts%", -"%texts%'[s] length", - - "pattern_end" - ], - "since" : "2.1", - "description" : "The length of a text, in number of characters.", - "examples" : "set {_l} to length of the string argument" -}, -{ - "id" : "ExprLevel", - "name" : "Level", - "patterns" : [ - "[the] level of %players%", -"%players%'[s] level", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "The level of a player.", - "examples" : "reduce the victim's level by 1\\nset the player's level to 0" -}, -{ - "id" : "ExprLevelProgress", - "name" : "Level Progress", - "patterns" : [ - "[the] level progress of %players%", -"%players%'[s] level progress", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The progress a player has made until the next level. Remember that this value is between 0 and 1, not 0 and 100!\\nChanging this value can cause a 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%.", - "examples" : "# use the exp bar as mana\\non rightclick with a blaze rod:\\n player's level progress is larger than 0.2\\n shoot a fireball from the player\\n reduce the player's level progress by 0.2\\nevery 2 seconds:\\n loop all players:\\n level progress of loop-player is smaller than 0.9:\\n increase level progress of the loop-player by 0.1\\n else:\\n set level progress of the loop-player to 0.99\\non xp spawn:\\n cancel event" -}, -{ - "id" : "ExprLightLevel", - "name" : "Light Level", - "patterns" : [ - "[(sky|sun|block)[ ]]light[ ]level [(of|%direction%) %location%]", - - "pattern_end" - ], - "since" : "1.3.4", - "description" : "Gets the light level at a certain location which ranges from 0 to 15.\\nIt 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.", - "examples" : "# set vampire players standing in bright sunlight on fire\\nevery 5 seconds:\\n loop all players:\\n {vampire.%loop-player%} is true\\n sunlight level at the loop-player is greater than 10\\n ignite the loop-player for 5 seconds" -}, -{ - "id" : "ExprLocation", - "name" : "Location", - "patterns" : [ - "[the] [event-](location|position)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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).", - "examples" : "drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'\\nset {_loc} to the location 1 meter above the player" -}, -{ - "id" : "ExprLocation", - "name" : "Location", - "patterns" : [ - "[the] (location|position) %directions% [%location%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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).", - "examples" : "drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples'\\nset {_loc} to the location 1 meter above the player" -}, -{ - "id" : "ExprLocationOf", - "name" : "Location", - "patterns" : [ - "(location|position) of %location%", -"%location%'[s] (location|position)", - - "pattern_end" - ], - "since" : "", - "description" : "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).\\nPlease note that the location of an entity is at it's feet, use head location to get the location of the head.", - "examples" : "set {home.%player%} to the location of the player\\nmessage \"You home was set to %player's location% in %player's world%.\"" -}, -{ - "id" : "ExprLocationAt", - "name" : "Location At", - "patterns" : [ - "[the] (location|position) [at] [\\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\\)] [[(in|of) [[the] world]] %world%]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Allows to create a location from three coordinates and a world.", - "examples" : "set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4\\ndistance between the player and the location (0, 0, 0) is less than 200" -}, -{ - "id" : "ExprLoopValue", - "name" : "Loop value", - "patterns" : [ - "[the] loop-<.+>", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The currently looped value.", - "examples" : "# countdown:\\nloop 10 times:\\n message \"%11 - loop-number%\"\\n wait a second\\n# generate a 10x10 floor made of randomly coloured wool below the player:\\nloop blocks from the block below the player to the block 10 east of the block below the player:\\n loop blocks from the loop-block to the block 10 north of the loop-block:\\n set loop-block-2 to any wool" -}, -{ - "id" : "ExprLore", - "name" : "Lore", - "patterns" : [ - "[the] lore of %item stack/item type%", -"%item stack/item type%'[s] lore", -"[the] line %number% of [the] lore of %item stack/item type%", -"[the] line %number% of %item stack/item type%'[s] lore", -"[the] %number%(st|nd|rd|th) line of [the] lore of %item stack/item type%", -"[the] %number%(st|nd|rd|th) line of %item stack/item type%'[s] lore", - - "pattern_end" - ], - "since" : "2.1", - "description" : "An item's lore.", - "examples" : "set the 1st line of the item's lore to \"Excalibur 2.0\"" -}, -{ - "id" : "ExprMaxHealth", - "name" : "Max Health", - "patterns" : [ - "[the] max[imum] health of %living entities%", -"%living entities%'[s] max[imum] health", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The maximum health of an entity, e.g. 10 for a player", - "examples" : "on join:\\n set the maximum health of the player to 100\\nspawn a giant\\nset the last spawned entity's max health to 1000" -}, -{ - "id" : "ExprMaxStack", - "name" : "Maximum Stack Size", - "patterns" : [ - "[the] max[imum] stack[[ ]size] of %item stack%", -"%item stack%'[s] max[imum] stack[[ ]size]", - - "pattern_end" - ], - "since" : "2.1", - "description" : "The maximum stack size of the specified material, e.g. 64 for torches, 16 for buckets, and 1 for swords.", - "examples" : "send \"You can only pick up %max stack size of player's tool% of %type of (player's tool)%\" to player" -}, -{ - "id" : "ExprMe", - "name" : "Me", - "patterns" : [ - "me", -"my[self]", - - "pattern_end" - ], - "since" : "2.1.1", - "description" : "A 'me' expression that can be used in effect commands only.", - "examples" : "!heal me\\n!kick myself\\n!give a diamond axe to me" -}, -{ - "id" : "ExprMessage", - "name" : "Message", - "patterns" : [ - "[the] [chat( |-)]message", -"[the] (join|log[ ]in)( |-)message", -"[the] (quit|leave|log[ ]out|kick)( |-)message", -"[the] death( |-)message", - - "pattern_end" - ], - "since" : "1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message)", - "description" : "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.", - "examples" : "on chat:\\n player has permission \"admin\"\\n set message to \"%message%\"\\n\\non first join:\\n set join message to \"Welcome %player% to our awesome server!\"\\non join:\\n player has played before\\n set join message to \"Welcome back, %player%!\"\\n\\non quit:\\n set quit message to \"%player% left this awesome server!\"\\n\\non death:\\n set the death message to \"%player% died!\"" -}, -{ - "id" : "ExprMetadata", - "name" : "Metadata", - "patterns" : [ - "metadata [(value|tag)[s]] %texts% of %metadata holders%", -"%metadata holders%'[s] metadata [(value|tag)[s]] %text%", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Metadata is a way to store temporary data on entities, blocks and more thatdisappears after a server restart.", - "examples" : "set metadata value \"healer\" of player to true\\nbroadcast \"%metadata value \"\"healer\"\" of player%\"\\nclear metadata value \"healer\" of player" -}, -{ - "id" : "ExprBalance", - "name" : "Money", - "patterns" : [ - "[the] (money|balance|[bank] account) of %offline players%", -"%offline players%'[s] (money|balance|[bank] account)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "How much virtual money a player has (can be changed). This expression requires Vault and a compatible economy plugin to be installed.", - "examples" : "message \"You have %player's money%\" # the currency name will be added automatically\\nremove 20$ from the player's balance # replace '$' by whatever currency you use\\nadd 200 to the player's account # or omit the currency alltogether" -}, -{ - "id" : "ExprPushedBlocks", - "name" : "Moved blocks", - "patterns" : [ - "[the] moved blocks", - - "pattern_end" - ], - "since" : "2.2-dev27", - "description" : "Blocks which are moved in piston event. Cannot be used outside of piston events.", - "examples" : "the moved blocks" -}, -{ - "id" : "ExprName", - "name" : "Name / Display Name", - "patterns" : [ - "[the] (player|tab)[ ]list name[s] of %players%", -"%players%'[s] (player|tab)[ ]list name[s]", - - "pattern_end" - ], - "since" : "1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)", - "description" : "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.\\nThe differences between the different names are:\\n

        \\n
      • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
      • \\n
      • 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).
      • \\n
      • 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.
      • \\n
      ", - "examples" : "on join:\\n player has permission \"name.red\"\\n set the player's display name to \"[admin]%name of player%\"\\n set the player's tablist name to \"%name of player%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" -}, -{ - "id" : "ExprName", - "name" : "Name / Display Name", - "patterns" : [ - "[the] (display|nick|chat)[ ]name[s] of %item stacks/slots/living entities/players/inventories%", -"%item stacks/slots/living entities/players/inventories%'[s] (display|nick|chat)[ ]name[s]", - - "pattern_end" - ], - "since" : "1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)", - "description" : "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.\\nThe differences between the different names are:\\n
        \\n
      • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
      • \\n
      • 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).
      • \\n
      • 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.
      • \\n
      ", - "examples" : "on join:\\n player has permission \"name.red\"\\n set the player's display name to \"[admin]%name of player%\"\\n set the player's tablist name to \"%name of player%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" -}, -{ - "id" : "ExprName", - "name" : "Name / Display Name", - "patterns" : [ - "[the] name[s] of %item stacks/slots/living entities/players/inventories%", -"%item stacks/slots/living entities/players/inventories%'[s] name[s]", - - "pattern_end" - ], - "since" : "1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)", - "description" : "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.\\nThe differences between the different names are:\\n
        \\n
      • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
      • \\n
      • 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).
      • \\n
      • 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.
      • \\n
      ", - "examples" : "on join:\\n player has permission \"name.red\"\\n set the player's display name to \"[admin]%name of player%\"\\n set the player's tablist name to \"%name of player%\"\\nset the name of the player's tool to \"Legendary Sword of Awesomeness\"" -}, -{ - "id" : "ExprNamed", - "name" : "Named Item/Inventory", - "patterns" : [ - "%item type/inventory type% (named|with name) %text%", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev34 (inventories)", - "description" : "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 name of <item/inventory> to <text>.", - "examples" : "give a diamond sword of sharpness 100 named \"Excalibur\" to the player\\nset tool of player to the player's tool named \"Wand\"\\nset the name of the player's tool to \"Wand\"\\nopen hopper inventory named \"Magic Hopper\" to player" -}, -{ - "id" : "ExprNow", - "name" : "Now", - "patterns" : [ - "now", - - "pattern_end" - ], - "since" : "1.4", - "description" : "The current system time of the server. Use time to get the Minecraft time of a world.", - "examples" : "broadcast \"Current server time: %now%\"" -}, -{ - "id" : "ExprNumbers", - "name" : "Numbers", - "patterns" : [ - "[(all [[of] the]|the)] (numbers|integers) (between|from) %number% (and|to) %number%", -"%number% times", - - "pattern_end" - ], - "since" : "1.4.6", - "description" : "All numbers between two given numbers, useful for looping.\\nUse '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.\\nAn integer loop from 1 to a number x can also be written as 'loop x times'.", - "examples" : "loop 5 times: # loops 1, 2, 3, 4, 5\\nloop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5\\nloop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5" -}, -{ - "id" : "ExprOfflinePlayers", - "name" : "Offline players", - "patterns" : [ - "[(all [[of] the]|the)] offline[ ]players", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "All player that have ever joined the server. This includes players currently online.", - "examples" : "send \"Size of all players who have joined the server: %size of all offline players%\"" -}, -{ - "id" : "ExprOpenedInventory", - "name" : "Opened Inventory", - "patterns" : [ - "[the] (current|open|top) inventory [of %players%]", -"%players%'[s] (current|open|top) inventory", - - "pattern_end" - ], - "since" : "2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)", - "description" : "Return the currently opened inventory of a player.\\nIf no inventory is open, it returns the own player's crafting inventory.", - "examples" : "set slot 1 of player's current inventory to diamond sword" -}, -{ - "id" : "ExprParse", - "name" : "Parse", - "patterns" : [ - "%text% parsed as (%*type%|"<.*>")", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Parses text as a given type, or as a given pattern.\\nThis 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.\\nIf the given text could not be parsed, this expression will return nothing and the parse error will be set if some information is available.\\nSome notes about parsing with a pattern:\\n- 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.\\n- You have to save the expression's value in a list variable, e.g. set {parsed::*} to message parsed as \"...\".\\n- 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}.", - "examples" : "set {var} to line 1 parsed as number\\non chat:\\n set {var::*} to message parsed as \"buying %items% for %money%\"\\n if parse error is set:\\n message \"%parse error%\"\\n else if {var::*} is set:\\n cancel event\\n remove {var::2} from the player's balance\\n give {var::1::*} to the player" -}, -{ - "id" : "ExprParseError", - "name" : "Parse Error", - "patterns" : [ - "[the] [last] [parse] error", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.", - "examples" : "set {var} to line 1 parsed as integer\\nif {var} is not set:\\n parse error is set:\\n message \"Line 1 is invalid: %last parse error%\"\\n else:\\n message \"Please put an integer on line 1!\"" -}, -{ - "id" : "ExprPassenger", - "name" : "Passenger", - "patterns" : [ - "[the] passenger[s] of %entities%", -"%entities%'[s] passenger[s]", - - "pattern_end" - ], - "since" : "2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)", - "description" : "The passenger of a vehicle, or the rider of a mob.\\nSee also: vehicle\\nFor 1.11.2 and above, it returns a list of passengers and you can use all changers in it.", - "examples" : "#for 1.11 and lower\\npassenger of the minecart is a creeper or a cow\\nthe saddled pig's passenger is a player\\n#for 1.11.2+\\npassengers of the minecart contains a creeper or a cow\\nthe boat's passenger contains a pig\\nadd a cow and a zombie to passengers of last spawned boat\\nset passengers of player's vehicle to a pig and a horse\\nremove all pigs from player's vehicle\\nclear passengers of boat" -}, -{ - "id" : "ExprPing", - "name" : "Ping", - "patterns" : [ - "[the] ping of %players%", -"%players%'[s] ping", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "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.", - "examples" : "command /ping :\\n trigger:\\n send \"%arg-1%'s ping is %arg-1's ping%\"" -}, -{ - "id" : "ExprPlayerWeather", - "name" : "Player Weather", - "patterns" : [ - "[the] weather of %players%", -"%players%'[s] weather", - - "pattern_end" - ], - "since" : "2.2-dev34", - "description" : "The weather for a player.", - "examples" : "set weather of arg-player to rainy\\nreset player's weather\\nif arg-player's weather is rainy" -}, -{ - "id" : "ExprPotionItem", - "name" : "Potion (item)", - "patterns" : [ - "[((regular|normal)|(strong|upgraded|level 2)|(extended|long)) ][((splash|exploding)|lingering) ]potion of %potion%", -"[((regular|normal)|(strong|upgraded|level 2)|(extended|long)) ][((splash|exploding)|lingering) ]%potion% potion", -"(water bottle|bottle of water)", -"potion", - - "pattern_end" - ], - "since" : "unknown (2.2)", - "description" : "Potion in item form, with advanced parameters.", - "examples" : "strong splash potion of instant damage" -}, -{ - "id" : "ExprPrefixSuffix", - "name" : "Prefix/Suffix", - "patterns" : [ - "[the] [chat] (prefix|suffix) of %players%", -"%players%'[s] [chat] (prefix|suffix)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The prefix or suffix as defined in the server's chat plugin.", - "examples" : "on chat:\\n cancel event\\n broadcast \"%player's prefix%%player's display name%%player's suffix%: %message%\" to the player's world\\nset the player's prefix to \"[Admin] \"" -}, -{ - "id" : "ExprRandom", - "name" : "Random", - "patterns" : [ - "[a] random %*type% [out] of %objects%", - - "pattern_end" - ], - "since" : "1.4.9", - "description" : "Gets a random item out of a set, e.g. a random player out of all players online.", - "examples" : "give a diamond to a random player out of all players\\ngive a random item out of all items to the player" -}, -{ - "id" : "ExprRandomNumber", - "name" : "Random Number", - "patterns" : [ - "[a] random (integer|number) (from|between) %number% (to|and) %number%", - - "pattern_end" - ], - "since" : "1.4", - "description" : "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.\\nPlease 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.", - "examples" : "set the player's health to a random number between 5 and 10\\nsend \"You rolled a %random integer from 1 to 6%!\" to the player" -}, -{ - "id" : "ExprRawName", - "name" : "Raw Name", - "patterns" : [ - "(raw|minecraft|vanilla) name of %item types%", - - "pattern_end" - ], - "since" : "unknown (2.2)", - "description" : "Raw Minecraft material name for given item. Note that this is not guaranteed to give same results on all servers.", - "examples" : "raw name of tool of player" -}, -{ - "id" : "ExprRegion", - "name" : "Region", - "patterns" : [ - "[the] [event-]region", - - "pattern_end" - ], - "since" : "2.1", - "description" : "The region involved in an event.\\nThis expression requires a supported regions plugin to be installed.", - "examples" : "on region enter:\\n region is {forbidden region}\\n cancel the event" -}, -{ - "id" : "ExprMembersOfRegion", - "name" : "Region Members & Owners", - "patterns" : [ - "[(all|the)] (members|owner[s]) of [[the] region[s]] %regions%", -"[[the] region[s]] %regions%'[s] (members|owner[s])", - - "pattern_end" - ], - "since" : "2.1", - "description" : "A list of members or owners of a region.\\nThis expression requires a supported regions plugin to be installed.", - "examples" : "on entering of a region:\\n message \"You're entering %region% whose owners are %owners of region%\"." -}, -{ - "id" : "ExprRegionsAt", - "name" : "Regions At", - "patterns" : [ - "[the] region[s] %direction% %locations%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "All regions at a particular location.\\nThis expression requires a supported regions plugin to be installed.", - "examples" : "On click on a sign:\\n line 1 of the clicked block is \"[region info]\"\\n set {_regions::*} to regions at the clicked block\\n if {_regions::*} is empty:\\n message \"No regions exist at this sign.\"\\n else:\\n message \"Regions containing this sign: %{_regions::*}%.\"" -}, -{ - "id" : "ExprRemainingAir", - "name" : "Remaining Air", - "patterns" : [ - "[the] remaining air of %living entities%", -"%living entities%'[s] remaining air", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "How much time a player has left underwater before starting to drown.", - "examples" : "player's remaining air is less than 3 seconds:\\n send \"hurry, get to the surface!\" to the player" -}, -{ - "id" : "ExprRespawnLocation", - "name" : "Respawn location", - "patterns" : [ - "[the] respawn location", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "The location that a player should respawn at. This is used within the respawn event.", - "examples" : "on respawn:\\n set respawn location to {example::spawn}" -}, -{ - "id" : "ExprRound", - "name" : "Rounding", - "patterns" : [ - "[(a|the)] round[ed] down %number%", -"[(a|the)] round[ed] %number%", -"[(a|the)] round[ed] up %number%", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Rounds numbers normally, up (ceiling) or down (floor) respectively", - "examples" : "set {var} to rounded health of player\\nset line 1 of the block to round(1.5 * player's level)\\nset {_x} to floor({_y}) - ceil({_x})\\nadd rounded down argument to the player's health" -}, -{ - "id" : "ExprSaturation", - "name" : "Saturation", - "patterns" : [ - "[the] saturation [of %players%]", -"%players%'[s] saturation", - - "pattern_end" - ], - "since" : "2.2-Fixes-v10, 2.2-dev35 (fully modifiable)", - "description" : "The saturation of a player. If used in a player event, it can be omitted and will default to event-player.", - "examples" : "set saturation of player to 20" -}, -{ - "id" : "ExprScript", - "name" : "Script Name", - "patterns" : [ - "[the] script[['s] name]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Holds the current script's name (the file name without '.sk').", - "examples" : "on script load:\\n set {running.%script%} to true\\non script unload:\\n set {running.%script%} to false" -}, -{ - "id" : "ExprShooter", - "name" : "Shooter", - "patterns" : [ - "[the] shooter [of %projectile%]", - - "pattern_end" - ], - "since" : "1.3.7", - "description" : "The shooter of a projectile.", - "examples" : "shooter is a skeleton" -}, -{ - "id" : "ExprShuffledList", - "name" : "Shuffled List", - "patterns" : [ - "shuffled %objects%", - - "pattern_end" - ], - "since" : "2.2-dev32", - "description" : "Shuffles given list randomly. This is done by replacing indices by random numbers in resulting list.", - "examples" : "set {_list::*} to shuffled {_list::*}" -}, -{ - "id" : "ExprSignText", - "name" : "Sign Text", - "patterns" : [ - "[the] line %number% [of %block%]", -"[the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]", - - "pattern_end" - ], - "since" : "1.3", - "description" : "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).", - "examples" : "on rightclick on sign:\\n line 2 of the clicked block is \"[Heal]\":\\n heal the player\\n set line 3 to \"%player%\"" -}, -{ - "id" : "ExprSkull", - "name" : "Skull", - "patterns" : [ - "[the] skull of %offline players/entities/entity types%", -"%offline players/entities/entity types%'[s] skull", - - "pattern_end" - ], - "since" : "2.0", - "description" : "Gets a skull item representing a player or an entity.", - "examples" : "give the victim's skull to the attacker\\nset the block at the entity to the entity's skull" -}, -{ - "id" : "ExprSlotIndex", - "name" : "Slot Index", - "patterns" : [ - "[the] (index|indices) of %slots%", -"%slots%'[s] (index|indices)", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "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.", - "examples" : "" -}, -{ - "id" : "ExprSortedList", - "name" : "Sorted List", - "patterns" : [ - "sorted %objects%", - - "pattern_end" - ], - "since" : "2.2-dev19", - "description" : "Sorts given list in natural order. All objects in list must be comparable; usually if you think you can compare it, it can be compared.", - "examples" : "set {_list::*} to sorted {_list::*}" -}, -{ - "id" : "ExprSpawn", - "name" : "Spawn", - "patterns" : [ - "[the] spawn[s] [(point|location)[s]] [of %worlds%]", -"%worlds%'[s] spawn[s] [(point|location)[s]]", - - "pattern_end" - ], - "since" : "1.4.2", - "description" : "The spawnpoint of a world.", - "examples" : "teleport all players to spawn\\nset the spawn point of \"world\" to the player's location" -}, -{ - "id" : "ExprSpecialNumber", - "name" : "Special Number", - "patterns" : [ - "(NaN|[(-|minus)](infinity|∞)) value", -"value of (NaN|[(-|minus)](infinity|∞))", - - "pattern_end" - ], - "since" : "2.2-dev32d", - "description" : "Special number values, namely NaN, Infinity and -Infinity", - "examples" : "if {_number} is NaN value:" -}, -{ - "id" : "ExprSpectatorTarget", - "name" : "Spectator Target", - "patterns" : [ - "[the] spectator target of %players%", -"%players%'[s] spectator target", - - "pattern_end" - ], - "since" : "2.2-dev37", - "description" : "The entity a player is currently spectating. This can be set and cleared whenthe given player is in spectator mode.", - "examples" : "set spectator target of player to last spawned creeper" -}, -{ - "id" : "ExprSpeed", - "name" : "Speed", - "patterns" : [ - "[the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%", -"%players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "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.\\nPlease note that changing a player's speed will change his FOV just like potions do.", - "examples" : "set the player's walk speed to 1\\nincrease the argument's fly speed by 0.1" -}, -{ - "id" : "ExprSubstring", - "name" : "Subtext", - "patterns" : [ - "[the] [(part|sub[ ](text|string)) of %texts% (between|from) (ind(ex|ices)|character[s])] %number% [(and|to) (index|character)] %number%", -"[the] (first|last) [%number%] character[s] of %texts%", -"[the] %number% (first|last) characters of %texts%", - - "pattern_end" - ], - "since" : "2.1", - "description" : "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).", - "examples" : "set {_s} to the first 5 characters of the text argument\\nmessage \"%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" -}, -{ - "id" : "ExprTPS", - "name" : "TPS (ticks per second)", - "patterns" : [ - "tps from [the] last ([1] minute|1[ ]m[inute])", -"tps from [the] last 5[ ]m[inutes]", -"tps from [the] last 15[ ]m[inutes]", -"[the] tps", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software.", - "examples" : "broadcast \"%tps%\"" -}, -{ - "id" : "ExprTamer", - "name" : "Tamer", - "patterns" : [ - "[the] tamer", - - "pattern_end" - ], - "since" : "2.2-dev25", - "description" : "The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself.", - "examples" : "" -}, -{ - "id" : "ExprTarget", - "name" : "Target", - "patterns" : [ - "[the] target[[ed] %*entity type%] [of %living entities%]", -"%living entities%'[s] target[[ed] %*entity type%]", - - "pattern_end" - ], - "since" : "unknown (before 2.1)", - "description" : "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).", - "examples" : "on entity target:\\n entity's target is a player\\n send \"You're being followed by an %entity%!\" to target of entity" -}, -{ - "id" : "ExprTargetedBlock", - "name" : "Targeted Block", - "patterns" : [ - "[the] target[ed] block[s] [of %players%]", -"%players%'[s] target[ed] block[s]", -"[the] actual[ly] target[ed] block[s] [of %players%]", -"%players%'[s] actual[ly] target[ed] block[s]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The block at the crosshair. This regards all blocks that are not air as fully opaque, e.g. torches will be like a solid stone block for this expression.", - "examples" : "# A command to set the block a player looks at to a specific type:\\ncommand /setblock :\\n trigger:\\n set targeted block to argument" -}, -{ - "id" : "ExprTeleportCause", - "name" : "Teleport Cause", - "patterns" : [ - "[the] teleport (cause|reason|type)", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "The teleport cause within a player teleport event.", - "examples" : "teleport cause is nether portal, end portal or end gateway" -}, -{ - "id" : "ExprTemperature", - "name" : "Temperature", - "patterns" : [ - "[the] temperature[s] of %blocks%", -"%blocks%'[s] temperature[s]", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "Temperature at given block.", - "examples" : "" -}, -{ - "id" : "ExprTernary", - "name" : "Ternary", - "patterns" : [ - "%objects% if <.+>[,] (otherwise|else) %objects%", - - "pattern_end" - ], - "since" : "2.2-dev36", - "description" : "A shorthand expression for returning something based on a condition.", - "examples" : "set {points} to 500 if {admin::%player's uuid%} is set else 100" -}, -{ - "id" : "ExprTime", - "name" : "Time", - "patterns" : [ - "[the] time[s] [([with]in|of) %worlds%]", -"%worlds%'[s] time[s]", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The time of a world.", - "examples" : "time in world is between 18:00 and 6:00:\\n broadcast \"It's night-time, watch out for monsters!\"" -}, -{ - "id" : "ExprTool", - "name" : "Tool", - "patterns" : [ - "[the] (tool|held item|weapon) [of %living entities%]", -"%living entities%'[s] (tool|held item|weapon)", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The item a player is holding.", - "examples" : "player is holding a pickaxe\\n# is the same as\\nplayer's tool is a pickaxe\\nplayer's off hand tool is shield #Only for Minecraft 1.9" -}, -{ - "id" : "ExprTypeOf", - "name" : "Type of", - "patterns" : [ - "[the] type of %entity types/item stacks/inventories%", -"%entity types/item stacks/inventories%'[s] type", - - "pattern_end" - ], - "since" : "1.4", - "description" : "The type of a block/item or entity. The type of an item is only it's id and data value, i.e. it ignores the amount, enchantments etc., and the type of an entity is e.g. 'wolf' or 'player'.", - "examples" : "on rightclick on an entity:\\n message \"This is a %type of clicked entity%!\"" -}, -{ - "id" : "ExprUUID", - "name" : "UUID", - "patterns" : [ - "[the] UUID of %offline players/worlds/entities%", -"%offline players/worlds/entities%'[s] UUID", - - "pattern_end" - ], - "since" : "2.1.2, 2.2 (offline players' UUIDs), 2.2-dev24 (other entities' UUIDs)", - "description" : "The UUID of a player, entity or world.\\nIn 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.\\nPlease note that this expression does not work for offline players if you are under 1.8!", - "examples" : "# prevents people from joining the server if they use the name of a player\\n# who has played on this server at least once since this script has been added\\non login:\\n {uuids.%name of player%} exists:\\n {uuids.%name of player%} is not UUID of player\\n kick player due to \"Someone with your name has played on this server before\"\\n else:\\n set {uuids.%name of player%} to UUID of player" -}, -{ - "id" : "ExprUnbreakable", - "name" : "Unbreakable Items", - "patterns" : [ - "unbreakable %item types%", - - "pattern_end" - ], - "since" : "2.2-dev13b", - "description" : "Creates unbreakable copies of given items.", - "examples" : "unbreakable iron sword #Creates unbreakable iron sword" -}, -{ - "id" : "ExprUnixTicks", - "name" : "Unix Timestamp", - "patterns" : [ - "[the] unix timestamp of %dates%", -"%dates%'[s] unix timestamp", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970.", - "examples" : "unix timestamp of now" -}, -{ - "id" : "ExprStringCase", - "name" : "Upper/lower Case Text", - "patterns" : [ - "%text% in (upper|lower) case", -"capitalized %text%", - - "pattern_end" - ], - "since" : "2.2-dev16", - "description" : "Copy of given text in upper or lower case.", - "examples" : "\"oops!\" in upper case # OOPS!" -}, -{ - "id" : "ExprVectorAngleBetween", - "name" : "Vectors - Angle between", - "patterns" : [ - "angle between %vector% and %vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets the angle between two vectors", - "examples" : "send \"%angle between vector 1, 0, 0 and vector 0, 1, 1%\"" -}, -{ - "id" : "ExprVectorArithmetic", - "name" : "Vectors - Arithmetic", - "patterns" : [ - "%vector%[ ]++[ ]%vector%", -"%vector%[ ]--[ ]%vector%", -"%vector%[ ]**[ ]%vector%", -"%vector%[ ]//[ ]%vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Arithmetic expressions for vectors", - "examples" : "set {_v} to vector 1, 2, 3 // 5\\nset {_v} to {_v} ++ {_v}\\nset {_v} to {_v} ++ 5\\nset {_v} to {_v} -- {_v}\\nset {_v} to {_v} -- 5\\nset {_v} to {_v} ** {_v}\\nset {_v} to {_v} ** 5\\nset {_v} to {_v} // {_v}\\nset {_v} to {_v} // 5" -}, -{ - "id" : "ExprVectorBetweenLocations", - "name" : "Vectors - Between locations", - "patterns" : [ - "vector (from|between) %location% (to|and) %location%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Creates a vector between two locations", - "examples" : "set {_v} to vector between {_loc1} and {_loc2}" -}, -{ - "id" : "ExprVectorXYZ", - "name" : "Vectors - Coordinate", - "patterns" : [ - "(x|y|z) of %vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets or sets the x, y or z coordinate of a vector", - "examples" : "set {_v} to vector 1, 2, 3\\nsend \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"\\nadd 1 to x of {_v}\\nadd 2 to y of {_v}\\nadd 3 to z of {_v}\\nsend \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"\\nset x of {_v} to 1\\nset y of {_v} to 2\\nset z of {_v} to 3\\nsend \"%x of {_v}%, %y of {_v}%, %z of {_v}%\"" -}, -{ - "id" : "ExprVectorFromXYZ", - "name" : "Vectors - Create from XYZ", - "patterns" : [ - "[new] vector [(from|at|to)] %number%,[ ]%number%(,[ ]| and )%number%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Creates a vector from an x, y and z value", - "examples" : "set {_v} to vector 0, 1, 0" -}, -{ - "id" : "ExprVectorOfLocation", - "name" : "Vectors - Create from location", - "patterns" : [ - "vector (of|from|to) %location%", -"%location%['s] vector", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Creates a vector from a location", - "examples" : "set {_v} to vector of {_loc}" -}, -{ - "id" : "ExprVectorFromYawAndPitch", - "name" : "Vectors - Create from pitch and yaw", - "patterns" : [ - "[new] vector from yaw %number% and pitch %number%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Creates a vector from a yaw and pitch value", - "examples" : "set {_v} to vector from yaw 45 and pitch 45" -}, -{ - "id" : "ExprVectorCrossProduct", - "name" : "Vectors - Cross product", - "patterns" : [ - "%vector% cross %vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets the cross product between two vectors", - "examples" : "send \"%vector 1, 0, 0 cross vector 0, 1, 0%\"" -}, -{ - "id" : "ExprVectorCylindrical", - "name" : "Vectors - Cylindrical shape", - "patterns" : [ - "[new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Forms a 'cylindrical shaped' vector using yaw to manipulate the current point", - "examples" : "loop 360 times:\\n set {_v} to cylindrical vector radius 1, yaw loop-value, height 2\\nset {_v} to cylindrical vector radius 1, yaw 90, height 2" -}, -{ - "id" : "ExprVectorDotProduct", - "name" : "Vectors - Dot product", - "patterns" : [ - "%vector% dot %vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets the dot product between two vectors", - "examples" : "set {_v} to {_v2} dot {_v3}" -}, -{ - "id" : "ExprVectorLength", - "name" : "Vectors - Length", - "patterns" : [ - "(vector|standard|normal) length of %vector%", -"%vector%['s] (vector|standard|normal) length", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets or sets the length of a vector", - "examples" : "send \"%standard length of vector 1, 2, 3%\"\\nset {_v} to vector 1, 2, 3\\nset standard length of {_v} to 2\\nsend \"%standard length of {_v}%\"" -}, -{ - "id" : "ExprLocationVectorOffset", - "name" : "Vectors - Location vector offset", - "patterns" : [ - "%location%[ ]~[~][ ]%vectors%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Offset a location by a vector", - "examples" : "set {_loc} to {_loc} ~ {_v}" -}, -{ - "id" : "ExprVectorNormalize", - "name" : "Vectors - Normalize", - "patterns" : [ - "normalize %vector%", -"%vector% normalized", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Normalizes a vector", - "examples" : "set {_v} to {_v} normalized" -}, -{ - "id" : "ExprVectorRandom", - "name" : "Vectors - Random", - "patterns" : [ - "random vector", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Creates a random vector", - "examples" : "set {_v} to random vector" -}, -{ - "id" : "ExprVectorSpherical", - "name" : "Vectors - Spherical shape", - "patterns" : [ - "[new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point", - "examples" : "loop 360 times:\\n set {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value\\nset {_v} to spherical vector radius 1, yaw 45, pitch 90" -}, -{ - "id" : "ExprVectorSquaredLength", - "name" : "Vectors - Squared length", - "patterns" : [ - "squared length of %vector%", -"%vector%['s] squared length", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets the squared length of a vector", - "examples" : "send \"%squared length of vector 1, 2, 3%\"" -}, -{ - "id" : "ExprVelocity", - "name" : "Vectors - Velocity", - "patterns" : [ - "[the] velocity of %entities%", -"%entities%'[s] velocity", - - "pattern_end" - ], - "since" : "2.2-dev31", - "description" : "Gets, sets, adds or removes velocity to/from/of an entity", - "examples" : "set player's velocity to {_v}" -}, -{ - "id" : "ExprVectorYawPitch", - "name" : "Vectors - Yaw and pitch", - "patterns" : [ - "vector (yaw|pitch) of %vector%", - - "pattern_end" - ], - "since" : "2.2-dev28", - "description" : "Gets or sets the yaw or pitch value of a vector", - "examples" : "set {_v} to vector -1, 1, 1\\nsend \"%vector yaw of {_v}%, %vector pitch of {_v}%\"\\nadd 45 to vector yaw of {_v}\\nsubtract 45 from vector pitch of {_v}\\nsend \"%vector yaw of {_v}%, %vector pitch of {_v}%\"\\nset vector yaw of {_v} to -45\\nset vector pitch of {_v} to 45\\nsend \"%vector yaw of {_v}%, %vector pitch of {_v}%\"" -}, -{ - "id" : "ExprVehicle", - "name" : "Vehicle", - "patterns" : [ - "[the] vehicle[s] of %entities%", -"%entities%'[s] vehicle[s]", - - "pattern_end" - ], - "since" : "2.0", - "description" : "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.\\nSee also: passenger", - "examples" : "vehicle of the player is a minecart" -}, -{ - "id" : "ExprVersion", - "name" : "Version", - "patterns" : [ - "([craft]bukkit|minecraft|skript)( |-)version", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The version of Bukkit, Minecraft or Skript respectively.", - "examples" : "message \"This server is running Minecraft %minecraft version% on Bukkit %bukkit version%\"\\nmessage \"This server is powered by Skript %skript version%\"" -}, -{ - "id" : "ExprWeather", - "name" : "Weather", - "patterns" : [ - "[the] weather [(in|of) %worlds%]", -"%worlds%'[s] weather", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The weather in the given or the current world.", - "examples" : "set weather to clear\\nweather in \"world\" is rainy" -}, -{ - "id" : "ExprWorld", - "name" : "World", - "patterns" : [ - "[the] world [of %locations/entities%]", -"%locations/entities%'[s] world", - - "pattern_end" - ], - "since" : "1.0", - "description" : "The world the event occurred in.", - "examples" : "world is \"world_nether\"\\nteleport the player to the world's spawn\\nset the weather in the player's world to rain" -}, -{ - "id" : "ExprSeed", - "name" : "World Seed", - "patterns" : [ - "[the] seed[s] (from|of) %worlds%", -"%worlds%'[s] seed[s]", - - "pattern_end" - ], - "since" : "2.2-dev35", - "description" : "The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration.", - "examples" : "broadcast \"Seed: %seed of player's world%\"" -}, -{ - "id" : "ExprWorlds", - "name" : "Worlds", - "patterns" : [ - "[(all [[of] the]|the)] worlds", - - "pattern_end" - ], - "since" : "1.0", - "description" : "All worlds of the server, useful for looping.", - "examples" : "loop all worlds:\\n broadcast \"You're in %loop-world%\" to loop-world" -}, -{ - "id" : "ExprXOf", - "name" : "X of Item", - "patterns" : [ - "%number% of %item stacks/entity type%", - - "pattern_end" - ], - "since" : "1.2", - "description" : "An expression to be able to use a certain amount of items where the amount can be any expression. Please note that is expression is not stable and might be replaced in the future.", - "examples" : "give level of player of pickaxes to the player" -}, -{ - "id" : "ExprYawPitch", - "name" : "Yaw / Pitch", - "patterns" : [ - "[the] (yaw|pitch) of %locations%", -"%locations%'[s] (yaw|pitch)", - - "pattern_end" - ], - "since" : "2.0", - "description" : "The yaw or pitch of a location. You likely won't need this expression ever if you don't know what this means.", - "examples" : "log \"%player%: %location of player%, %player's yaw%, %player's pitch%\" to \"playerlocs.log\"" -}, - - {"end" : true} - ], - - "functions" : [ - { - "id" : "abs", - "name" : "abs", - "patterns" : [ - "abs(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Returns the absolute value of the argument, i.e. makes the argument positive.", - "examples" : "abs(3) = 3\\nabs(-2) = 2" -}, -{ - "id" : "acos", - "name" : "acos", - "patterns" : [ - "acos(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The inverse of the cosine, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180.", - "examples" : "acos(0) = 90\\nacos(1) = 0\\nacos(0.5) = 30" -}, -{ - "id" : "asin", - "name" : "asin", - "patterns" : [ - "asin(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The inverse of the sine, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90.", - "examples" : "asin(0) = 0\\nasin(1) = 90\\nasin(0.5) = 30" -}, -{ - "id" : "atan", - "name" : "atan", - "patterns" : [ - "atan(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The inverse of the tangent, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90.", - "examples" : "atan(0) = 0\\natan(1) = 45\\natan(10000) = 89.9943" -}, -{ - "id" : "atan2", - "name" : "atan2", - "patterns" : [ - "atan2(x: number, y: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Similar to atan, but requires two coordinates and returns values from -180 to 180.\\nThe returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top).", - "examples" : "atan2(0, 1) = 0\\natan2(10, 0) = 90\\natan2(-10, 5) = -63.4349" -}, -{ - "id" : "calcExperience", - "name" : "calcExperience", - "patterns" : [ - "calcExperience(level: long)", - - "pattern_end" - ], - "since" : "2.2-dev32", - "description" : "Calculates experience needed to achieve given level in Minecraft.", - "examples" : "" -}, -{ - "id" : "ceil", - "name" : "ceil", - "patterns" : [ - "ceil(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Rounds a number up, i.e. returns the closest integer larger than or equal to the argument.", - "examples" : "ceil(2.34) = 3\\nceil(2) = 2\\nceil(2.99) = 3" -}, -{ - "id" : "ceiling", - "name" : "ceiling", - "patterns" : [ - "ceiling(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Alias of ceil.", - "examples" : "ceiling(2.34) = 3\\nceiling(2) = 2\\nceiling(2.99) = 3" -}, -{ - "id" : "cos", - "name" : "cos", - "patterns" : [ - "cos(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "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.", - "examples" : "cos(0) = 1\\ncos(90) = 0" -}, -{ - "id" : "date", - "name" : "date", - "patterns" : [ - "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]])", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond.\\nA 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).", - "examples" : "date(2014, 10, 1) # 0:00, 1st October 2014\\ndate(1990, 3, 5, 14, 30) # 14:30, 5th May 1990\\ndate(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST)" -}, -{ - "id" : "exp", - "name" : "exp", - "patterns" : [ - "exp(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The exponential function. You probably don't need this if you don't know what this is.", - "examples" : "exp(0) = 1\\nexp(1) = 2.7183" -}, -{ - "id" : "floor", - "name" : "floor", - "patterns" : [ - "floor(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument.", - "examples" : "floor(2.34) = 2\\nfloor(2) = 2\\nfloor(2.99) = 2" -}, -{ - "id" : "ln", - "name" : "ln", - "patterns" : [ - "ln(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The natural logarithm. You probably don't need this if you don't know what this is.\\nReturns NaN (not a number) if the argument is negative.", - "examples" : "ln(1) = 0\\nln(exp(5)) = 5\\nln(2) = 0.6931" -}, -{ - "id" : "location", - "name" : "location", - "patterns" : [ - "location(x: number, y: number, z: number, world: world = event-world, yaw: number = [[integer:0]], pitch: number = [[integer:0]])", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Creates a location from a world and 3 coordinates, with an optional yaw and pitch.", - "examples" : "location(0, 128, 0)\\nlocation(player's x-coordinate, player's y-coordinate + 5, player's z-coordinate, player's world, 0, 90)" -}, -{ - "id" : "log", - "name" : "log", - "patterns" : [ - "log(n: number, base: number = [[integer:10]])", - - "pattern_end" - ], - "since" : "2.2", - "description" : "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'.\\nAnother useful equation is base ^ log(a, base) = a for any numbers 'base' and 'a'.\\nPlease 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.\\nReturns NaN (not a number) if any of the arguments are negative.", - "examples" : "log(100) = 2 # 10^2 = 100\\nlog(16, 2) = 4 # 2^4 = 16" -}, -{ - "id" : "max", - "name" : "max", - "patterns" : [ - "max(ns: numbers)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Returns the maximum number from a list of numbers.", - "examples" : "max(1) = 1\\nmax(1, 2, 3, 4) = 4\\nmax({some list variable::*})" -}, -{ - "id" : "min", - "name" : "min", - "patterns" : [ - "min(ns: numbers)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Returns the minimum number from a list of numbers.", - "examples" : "min(1) = 1\\nmin(1, 2, 3, 4) = 1\\nmin({some list variable::*})" -}, -{ - "id" : "mod", - "name" : "mod", - "patterns" : [ - "mod(d: number, m: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "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.\\nThe returned value is always positive. Returns NaN (not a number) if the second argument is zero.", - "examples" : "mod(3, 2) = 1\\nmod(256436, 100) = 36\\nmod(-1, 10) = 9" -}, -{ - "id" : "product", - "name" : "product", - "patterns" : [ - "product(ns: numbers)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Calculates the product of a list of numbers.", - "examples" : "product(1) = 1\\nproduct(2, 3, 4) = 24\\nproduct({some list variable::*})\\nproduct(2, {_v::*}, and the player's y-coordinate)" -}, -{ - "id" : "round", - "name" : "round", - "patterns" : [ - "round(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Rounds a number, i.e. returns the closest integer to the argument.", - "examples" : "round(2.34) = 2\\nround(2) = 2\\nround(2.99) = 3\\nround(2.5) = 3" -}, -{ - "id" : "sin", - "name" : "sin", - "patterns" : [ - "sin(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "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.", - "examples" : "sin(90) = 1\\nsin(60) = 0.866" -}, -{ - "id" : "sqrt", - "name" : "sqrt", - "patterns" : [ - "sqrt(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "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).\\nReturns NaN (not a number) if the argument is negative.", - "examples" : "sqrt(4) = 2\\nsqrt(2) = 1.4142\\nsqrt(-1) = NaN" -}, -{ - "id" : "sum", - "name" : "sum", - "patterns" : [ - "sum(ns: numbers)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Sums a list of numbers.", - "examples" : "sum(1) = 1\\nsum(2, 3, 4) = 9\\nsum({some list variable::*})\\nsum(2, {_v::*}, and the player's y-coordinate)" -}, -{ - "id" : "tan", - "name" : "tan", - "patterns" : [ - "tan(n: number)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "The tangent function. This is basically sin(arg)/cos(arg). Uses degrees, not radians.", - "examples" : "tan(0) = 0\\ntan(45) = 1\\ntan(89.99) = 5729.5779" -}, -{ - "id" : "vector", - "name" : "vector", - "patterns" : [ - "vector(x: number, y: number, z: number)", - - "pattern_end" - ], - "since" : "2.2-dev23", - "description" : "Creates a new vector, which can be used with various expressions, effects and functions.", - "examples" : "vector(0, 0, 0)" -}, -{ - "id" : "world", - "name" : "world", - "patterns" : [ - "world(name: string)", - - "pattern_end" - ], - "since" : "2.2", - "description" : "Gets a world from its name.", - "examples" : "set {_nether} to world(\"%{_world}%_nether\")" -}, - - {"end" : true} - ] -} diff --git a/old/effects.html b/old/effects.html deleted file mode 100644 index 55f3b52eaff..00000000000 --- a/old/effects.html +++ /dev/null @@ -1,1989 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
      -

      Effects

      - - - -
      Ban
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4, 2.1.1 (ban reason)
      - -
      - Bans/unbans a player or IP. -Starting with Skript 2.1.1 and Bukkit 1.7.2 R0.4, one can also ban players with a reason. -
      - -
      - - Examples: - -
      - unban player -
      ban "127.0.0.1" -
      IP-ban the player because "he is an idiot" -
      - -
      -
      - - -
      Broadcast
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Broadcasts a message to the server. -
      - -
      - - Examples: - -
      - broadcast "Welcome %player% to the server!" -
      broadcast "Woah! It's a message!" -
      - -
      -
      - - -
      Cancel Command Cooldown
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (cancel|ignore) [the] [current] [command] cooldown
      • -
      • un(cancel|ignore) [the] [current] [command] cooldown
      • - -
      -
      Since:2.2-dev34
      - -
      - Only usable in command events. Makes it so the current command usage isn't counted towards the cooldown. -
      - -
      - - Examples: - -
      - command /nick : -
      executable by: players -
      cooldown: 10 seconds -
      trigger: -
      if length of arg-1 is more than 16: -
      # Makes it so that invalid arguments don't make you wait for the cooldown again -
      cancel the cooldown -
      send "Your nickname may be at most 16 characters." -
      stop -
      set the player's display name to arg-1 -
      - -
      -
      - - -
      Cancel Event
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • cancel [the] event
      • -
      • uncancel [the] event
      • - -
      -
      Since:1.0
      - -
      - Cancels the event (e.g. prevent blocks from being placed, or damage being taken). -
      - -
      - - Examples: - -
      - on damage: -
      victim is a player -
      victim has the permission "skript.god" -
      cancel the event -
      - -
      -
      - - -
      Change: Set/Add/Remove/Delete/Reset
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0 (set, add, remove, delete), 2.0 (remove all)
      - -
      - 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. -
      - -
      - - Examples: - -
      - # set: -
      Set the player's display name to "%name of player%" -
      set the block above the victim to lava -
      # add: -
      add 2 to the player's health # preferably use 'heal' for this -
      add argument to {blacklist::*} -
      give a diamond pickaxe of efficiency 5 to the player -
      increase the data value of the clicked block by 1 -
      # remove: -
      remove 2 pickaxes from the victim -
      subtract 2.5 from {points.%player%} -
      # remove all: -
      remove every iron tool from the player -
      remove all minecarts from {entitylist::*} -
      # delete: -
      delete the block below the player -
      clear drops -
      delete {variable} -
      # reset: -
      reset walk speed of player -
      reset chunk at the targeted block -
      - -
      -
      - - -
      Colour Items
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0, 2.2-dev26 (maps and potions)
      - -
      - 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. -
      - -
      - - Examples: - -
      - dye player's helmet blue -
      colour the player's tool red -
      - -
      -
      - - -
      Command
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Executes a command. This can be useful to use other plugins in triggers. -
      - -
      - - Examples: - -
      - make player execute command "/suicide" -
      execute console command "/say Hello everyone!" -
      - -
      -
      - - -
      Continue
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • continue [loop]
      • - -
      -
      Since:2.2-dev37
      - -
      - Skips the value currently being looped, moving on to the next value if it exists. -
      - -
      - - Examples: - -
      - loop all players: - if loop-value does not have permission "moderator": - continue # filter out non moderators - broadcast "%loop-player% is a moderator!" # only moderators get broadcast -
      - -
      -
      - - -
      Damage/Heal/Repair
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Damage/Heal/Repair an entity, or item stack. -
      - -
      - - Examples: - -
      - damage player by 5 hearts -
      heal the player -
      repair tool of player -
      - -
      -
      - - -
      Delay
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - 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! -
      - -
      - - Examples: - -
      - wait 2 minutes -
      halt for 5 minecraft hours -
      wait a tick -
      - -
      -
      - - -
      Drop
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Drops one or more items. -
      - -
      - - Examples: - -
      - on death of creeper: -
      drop 1 TNT -
      - -
      -
      - - -
      Enchant/Disenchant
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Enchant or disenchant an existing item -
      - -
      - - Examples: - -
      - enchant the player's tool with sharpness 5 -
      disenchant the player's tool -
      - -
      -
      - - -
      Equip
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Equips a player with some given armor. This will replace any armor that the player is wearing. -
      - -
      - - Examples: - -
      - equip player with diamond helmet -
      equip player with all diamond armor -
      - -
      -
      - - -
      Exit
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (exit|stop) [trigger]
      • -
      • (exit|stop) [(1|a|the|this)] (section|loop|conditional)
      • -
      • (exit|stop) <\d+> (section|loop|conditional)s
      • -
      • (exit|stop) all (section|loop|conditional)s
      • - -
      -
      Since:unknown (before 2.1)
      - -
      - Exits a given amount of loops and conditionals, or the entire trigger. -
      - -
      - - Examples: - -
      - if player has any ore: -
      stop -
      message "%player% has no ores!" -
      loop blocks above the player: -
      loop-block is not air: -
      exit 2 sections -
      set loop-block to water -
      - -
      -
      - - -
      Explosion
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Creates an explosion of a given force. The Minecraft Wiki has an article on explosions which lists the explosion forces of TNT, creepers, etc. -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. -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. -
      - -
      - - Examples: - -
      - create an explosion of force 10 at the player -
      create an explosion of force 0 at the victim -
      - -
      -
      - - -
      Feed
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev34
      - -
      - Feeds the specified players. -
      - -
      - - Examples: - -
      - feed all players -
      feed the player by 5 beefs -
      - -
      -
      - - -
      Force Respawn
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev21
      - -
      - 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. -
      - -
      - - Examples: - -
      - on death of player: -
      force event-player to respawn -
      - -
      -
      - - -
      Ignite/Extinguish
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Lights entities on fire or extinguishes them. -
      - -
      - - Examples: - -
      - ignite the player -
      extinguish the player -
      - -
      -
      - - -
      Kick
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • kick %players% [(by reason of|because [of]|on account of|due to) %text%]
      • - -
      -
      Since:1.0
      - -
      - Kicks a player from the server. -
      - -
      - - Examples: - -
      - on place of TNT, lava, or obsidian: -
      kick the player due to "You may not place %block%!" -
      cancel the event -
      - -
      -
      - - -
      Kill
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Kills an entity. -Note: This effect does not set the entitie's health to 0 (which causes issues), but damages the entity by 100 times its maximum health. -
      - -
      - - Examples: - -
      - kill the player -
      kill all creepers in the player's world -
      kill all endermen, witches and bats -
      - -
      -
      - - -
      Lightning
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Strike lightning at a given location. Can use 'ligning effect' to create a lightning that does not harm entities or start fires. -
      - -
      - - Examples: - -
      - strike lightning at the player -
      strike lightning effect at the victim -
      - -
      -
      - - -
      Log
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Writes text into a .log file. Skript will write these files to /plugins/Skript/logs. -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. -
      - -
      - - Examples: - -
      - on place of TNT: -
      log "%player% placed TNT in %world% at %location of block%" to "tnt/placement.log" -
      - -
      -
      - - -
      Loop Version
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • use[s] (old|new|2.1.2|2.2) loops
      • - -
      -
      Since:unknown (2.2)
      - -
      - Changes loops to emulate given Skript version's behaviour. -
      - -
      - - Examples: - -
      - use old loops -
      use new loops -
      - -
      -
      - - -
      Make Fly
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • force %players% to [(start|stop)] fly[ing]
      • -
      • make %players% (start|stop) flying
      • -
      • make %players% fly
      • - -
      -
      Since:2.2-dev34
      - -
      - Forces a player to start/stop flying. -Be aware that this also changes the flight mode of the player. -
      - -
      - - Examples: - -
      - make player fly -
      force all players to stop flying -
      - -
      -
      - - -
      Make Say
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev37b
      - -
      - 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. -
      - -
      - - Examples: - -
      - make the player say "Hello." -
      force all players to send the message "I love this server" -
      - -
      -
      - - -
      Message
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0, 2.2-dev26 (advanced features)
      - -
      - Sends a message to the given player. -
      - -
      - - Examples: - -
      - message "A wild %player% appeared!" -
      message "This message is a distraction. Mwahaha!" -
      send "Your kill streak is %{kill streak.%player%}%." to player -
      if the targeted entity exists: -
      message "You're currently looking at a %type of the targeted entity%!" -
      - -
      -
      - - -
      Open/Close Inventory
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [(open|show) (((crafting [table]|workbench)|chest|anvil) (view|window|inventory)]|%inventory%) (to|for) %players%
      • -
      • close [the] inventory [view] (to|of|for) %players%
      • -
      • close %players%'[s] inventory [view]
      • - -
      -
      Since:2.0, 2.1.1 (closing), 2.2-Fixes-V10 (anvil)
      - -
      - 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. -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. -
      - -
      - - Examples: - -
      - show the victim's inventory to the player -
      open the player's inventory for the player -
      - -
      -
      - - -
      Play Effect
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.1
      - -
      - Plays a visual effect at a given location or on a given entity. -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. -
      - -
      - - Examples: - -
      - play wolf hearts on the clicked wolf -
      show mob spawner flames at the targeted block to the player -
      - -
      -
      - - -
      Play Sound
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev28
      - -
      - Plays a sound at given location for everyone or just for given players. Playing sounds from resource packs is supported. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Player Visibility
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev37c
      - -
      - Change visibility of a player for the given players. -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. - -Note: if a player was hidden and relogs, this player will be visible again. -
      - -
      - - Examples: - -
      - on join: -
      if {vanished::%player's uuid%} is true: -
      hide the player from all players -
      -
      reveal hidden players of {_player} -
      - -
      -
      - - -
      Poison/Cure
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.3.2
      - -
      - Poison or cure a creature. -
      - -
      - - Examples: - -
      - poison the player -
      poison the victim for 20 seconds -
      cure the player from poison -
      - -
      -
      - - -
      Potion Effects
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0, 2.2-dev27 (ambient and particle-less potion effects)
      - -
      - Apply or remove potion effects to/from entities. -
      - -
      - - Examples: - -
      - apply swiftness 2 to the player -
      remove haste from the victim -
      on join: -
      apply potion of strength of tier {strength.%player%} to the player for 999 days -
      - -
      -
      - - -
      Push
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.6
      - -
      - Push entities around. -
      - -
      - - Examples: - -
      - push the player upwards -
      push the victim downwards at speed 0.5 -
      - -
      -
      - - -
      PvP
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.3.4
      - -
      - Set the PvP state for a given world. -
      - -
      - - Examples: - -
      - enable PvP #(current world only) -
      disable PvP in all worlds -
      - -
      -
      - - -
      Replace
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0, 2.2-dev24 (replace in muliple strings and replace items in inventory)
      - -
      - 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. -Starting with 2.2-dev24, you can replace items in a inventory too. -
      - -
      - - Examples: - -
      - replace "" in {textvar} with "%item%" -
      replace every "&" with "§" in line 1 -
      # The following acts as a simple chat censor, but it will e.g. censor mass, hassle, assassin, etc. as well: -
      on chat: -
      replace all "fuck", "bitch" and "ass" with "****" in the message -
      -
      replace all stone and dirt in player's inventory and player's top inventory with diamond -
      - -
      -
      - - -
      Return
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2
      - -
      - Makes a function return a value -
      - -
      - - Examples: - -
      - function double(i: number) :: number: -
      return 2 * {_i} -
      - -
      -
      - - -
      Send Block Change
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev37
      - -
      - Makes a player see a block as something it really isn't -
      - -
      - - Examples: - -
      - make player see block at player as dirt -
      - -
      -
      - - -
      Shear
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Shears or 'un-shears' a sheep. Please note that no wool is dropped, this only sets the 'sheared' state of the sheep. -
      - -
      - - Examples: - -
      - on rightclick on a sheep holding a sword: -
      shear the clicked sheep -
      - -
      -
      - - -
      Shoot
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - Shoots a projectile (or any other entity) from a given entity. -
      - -
      - - Examples: - -
      - shoot an arrow -
      make the player shoot a creeper at speed 10 -
      shoot a pig from the creeper -
      - -
      -
      - - -
      Spawn
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Spawn a creature. -
      - -
      - - Examples: - -
      - spawn 3 creepers at the targeted block -
      spawn a ghast 5 meters above the player -
      - -
      -
      - - -
      Teleport
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Teleport an entity to a specific location. -
      - -
      - - Examples: - -
      - teleport the player to {homes.%player%} -
      teleport the attacker to the victim -
      - -
      -
      - - -
      Toggle
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (close|turn off|de[-]activate) %blocks%
      • -
      • (toggle|switch) [[the] state of] %blocks%
      • -
      • (open|turn on|activate) %blocks%
      • - -
      -
      Since:1.4
      - -
      - Toggle the state of a block. -
      - -
      - - Examples: - -
      - # use arrows to toggle switches, doors, etc. -
      on projectile hit: -
      projectile is arrow -
      toggle the block at the arrow -
      - -
      -
      - - -
      Tree
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Creates a tree. -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. -
      - -
      - - Examples: - -
      - grow a tall redwood tree above the clicked block -
      - -
      -
      - - -
      Vectors - Rotate around XYZ
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • rotate %vectors% around (x|y|z)(-| )axis by %number% [degrees]
      • - -
      -
      Since:2.2-dev28
      - -
      - Rotates a vector around x, y, or z axis by some degrees -
      - -
      - - Examples: - -
      - rotate {_v} around x-axis by 90 -
      rotate {_v} around y-axis by 90 -
      rotate {_v} around z-axis by 90 -
      - -
      -
      - - -
      Vectors - Rotate around vector
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev28
      - -
      - Rotates a vector around another vector -
      - -
      - - Examples: - -
      - rotate {_v} around vector 1, 0, 0 by 90 -
      - -
      -
      - - -
      Vehicle
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (make|let|force) %entities% [to] (ride|mount) [(in|on)] %entities/entity types%
      • -
      • [(make|let|force) %entities% [to] (dismount|(dismount|leave) (from|of)] [(any|the[ir]|his|her)] vehicle[s])
      • -
      • [(eject|dismount) (any|the)] passenger[s] (of|from) %entities%
      • - -
      -
      Since:2.0
      - -
      - Makes an entity ride another entity, e.g. a minecart, a saddled pig, an arrow, etc. -
      - -
      - - Examples: - -
      - make the player ride a saddled pig -
      make the attacker ride the victim -
      - -
      -
      - - -
      op/deop
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Grant/revoke a user operator state. -
      - -
      - - Examples: - -
      - op the player -
      deop all players -
      - -
      -
      - - -
      - - - diff --git a/old/events.html b/old/events.html deleted file mode 100644 index f7a709acbc8..00000000000 --- a/old/events.html +++ /dev/null @@ -1,4289 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
      -

      Triggers

      - - - -
      At Time
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.3.4
      - -
      - An event that occurs at a given minecraft time in every world or only in specific worlds. -
      - -
      - - Examples: - -
      - at 18:00 -
      at 7am in "world" -
      - -
      -
      - - -
      On AoE Cloud Effect
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (area|AoE) [cloud] effect
      • - -
      -
      Since:2.2-dev21
      - -
      - Called when area effect cloud applies it's potion effect. This happens every 5 ticks by default. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Bed Enter
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • bed enter[ing]
      • -
      • [player] enter[ing] [a] bed
      • - -
      -
      Since:1.0
      - -
      - Called when a player starts sleeping. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Bed Leave
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • bed leav(e|ing)
      • -
      • [player] leav(e|ing) [a] bed
      • - -
      -
      Since:1.0
      - -
      - Called when a player leaves a bed. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Block Damage
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • block damag(ing|e)
      • - -
      -
      Since:1.0
      - -
      - Called when a player starts to break a block. You can usually just use the leftclick event for this. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Block Growth
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (plant|crop|block) grow[(th|ing)] [[of] %item types%]
      • - -
      -
      Since:2.2-Fixes-V10
      - -
      - Called when a crop grows. Alternative to new form of generic grow event. -
      - -
      - - Examples: - -
      - on crop growth -
      - -
      -
      - - -
      On Book Edit
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • book (edit|change|write)
      • - -
      -
      Since:2.2-dev31
      - -
      - Called when a player edits a book -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Book Sign
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • book sign[ing]
      • - -
      -
      Since:2.2-dev31
      - -
      - Called when a player signs a book -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Break / Mine
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] (break[ing]|min(e|ing)) [[of] %item types%]
      • - -
      -
      Since:1.0 (break), unknown (mine)
      - -
      - 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. -
      - -
      - - Examples: - -
      - on mine -
      on break of stone -
      on mine of any ore -
      - -
      -
      - - -
      On Bucket Empty
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • bucket empty[ing]
      • -
      • [player] empty[ing] [a] bucket
      • - -
      -
      Since:1.0
      - -
      - Called when a player empties a bucket. You can also use the place event with a check for water or lava. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Bucket fill
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • bucket fill[ing]
      • -
      • [player] fill[ing] [a] bucket
      • - -
      -
      Since:1.0
      - -
      - Called when a player fills a bucket. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Burn
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when a block is destroyed by fire. -
      - -
      - - Examples: - -
      - on burn -
      on burn of wood, fences, or chests -
      - -
      -
      - - -
      On Can Build Check
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] can build check
      • - -
      -
      Since:1.0 (basic), 2.0 ([un]cancellable)
      - -
      - 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. -Please note that the data value of the block to be placed is not available in this event, only its ID. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Chat
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • chat
      • - -
      -
      Since:1.4.1
      - -
      - Called whenever a player chats. Use chat format to change message format, use chat recipients to edit chat recipients. -
      - -
      - - Examples: - -
      - on chat: -
      if player has permission "owner": -
      set chat format to "[player]: [message]" -
      else if player has permission "admin": -
      set chat format to "[player]: [message]" -
      else: #default message format -
      set chat format to "[player]: [message]" -
      - -
      -
      - - -
      On Chunk Generate
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • chunk (generat|populat)(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called after a new chunk was generated. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Chunk Load
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • chunk load[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a chunk loads. The chunk might or might not contain mobs when it's loaded. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Chunk Unload
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • chunk unload[ing]
      • - -
      -
      Since:1.0
      - -
      - 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). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Click
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when a user clicks on a block, an entity or air with or without an item in their hand. -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. -
      - -
      - - Examples: - -
      - on click -
      on rightclick holding a fishing rod -
      on leftclick on a stone or obsidian -
      on rightclick on a creeper -
      on click with a sword -
      - -
      -
      - - -
      On Combust
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • combust[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when an entity is set on fire, e.g. by fire or lava, a fireball, or by standing in direct sunlight (zombies, skeletons). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Command
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • command [%text%]
      • - -
      -
      Since:2.0
      - -
      - Called when a player enters a command (not neccessarily a Skript command). -
      - -
      - - Examples: - -
      - on command -
      on command "/stop" -
      on command "pm Njol " -
      - -
      -
      - - -
      On Connect
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] connect[ing]
      • - -
      -
      Since:2.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - on connect: -
      player doesn't have permission "VIP" -
      number of players is larger than 20, kick the player due to "The last 5 slots are reserved for VIP players." -
      - -
      -
      - - -
      On Consume
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] ((eat|drink)[ing]|consum(e|ing)) [[of] %item types%]
      • - -
      -
      Since:2.0
      - -
      - Called when a player is done eating/drinking something, e.g. an apple, bread, meat, milk or a potion. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Craft
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:unknown (before 2.1)
      - -
      - Called when a player crafts an item. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Creeper Power
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • creeper power
      • - -
      -
      Since:1.0
      - -
      - Called when a creeper is struck by lighting and gets powered. Cancel the event to prevent the creeper from being powered. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Damage
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when an entity receives damage, e.g. by an attack from another entity, lava, fire, drowning, fall, suffocation, etc. -
      - -
      - - Examples: - -
      - on damage -
      on damage of a player -
      - -
      -
      - - -
      On Death
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when a living entity (including players) dies. -
      - -
      - - Examples: - -
      - on death -
      on death of player -
      on death of a wither or ender dragon: -
      broadcast "A %entity% has been slain in %world%!" -
      - -
      -
      - - -
      On Dispense
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:unknown (before 2.1)
      - -
      - Called when a dispenser dispenses an item. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Drop
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:unknown (before 2.1)
      - -
      - Called when a player drops an item from his inventory. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Enderman/Sheep/Silverfish
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • enderman place
      • -
      • enderman pickup
      • -
      • sheep eat
      • -
      • silverfish enter
      • -
      • silverfish exit
      • - -
      -
      Since:
      - -
      - Called when an enderman places or picks up a block, a sheep eats grass or a silverfish boops into/out of a block respectively. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Entity Dismount
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • dismount[ing]
      • - -
      -
      Since:2.2-dev13b
      - -
      - Called when an entity dismounts. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Entity Mount
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • mount[ing]
      • - -
      -
      Since:2.2-dev13b
      - -
      - Called when entity starts riding another. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Experience Spawn
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [e]xp[erience] [orb] spawn
      • -
      • spawn of [a[n]] [e]xp[erience] [orb]
      • - -
      -
      Since:2.0
      - -
      - 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. -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) -
      - -
      - - Examples: - -
      - on xp spawn: -
      world is "minigame_world" -
      cancel event -
      - -
      -
      - - -
      On Explode
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • explo(d(e|ing)|sion)
      • - -
      -
      Since:1.0
      - -
      - Called when an entity (a primed TNT or a creeper) explodes. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Explosion Prime
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • explosion prime
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Fade
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when a block 'fades away', e.g. ice or snow melts. -
      - -
      - - Examples: - -
      - on fade of snow or ice -
      - -
      -
      - - -
      On First Join
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • first (join|login)
      • - -
      -
      Since:1.3.7
      - -
      - Called when a player joins the server for the first time. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Fishing
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] fish[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a player fishes something. This is not of much use yet. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Flight Toggle
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] flight togg(e|ing)
      • -
      • [player] toggl(e|ing) flight
      • - -
      -
      Since:2.2-dev36
      - -
      - Called when a players stops/starts flying. -
      - -
      - - Examples: - -
      - on flight toggle: -
      if {game::%player%::playing} exists: -
      cancel event -
      - -
      -
      - - -
      On Flow
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] flow[ing]
      • -
      • block mov(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called when a blocks flows or teleports to another block. This not only applies to water and lava, but teleporting dragon eggs as well. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Form
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - 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). -
      - -
      - - Examples: - -
      - on form of snow -
      on form of a mushroom -
      - -
      -
      - - -
      On Fuel Burn
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • fuel burn[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a furnace burns an item from its fuel slot. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Gamemode Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • game[ ]mode change [to %gamemode%]
      • - -
      -
      Since:1.0
      - -
      - Called when a player's gamemode changes. -
      - -
      - - Examples: - -
      - on gamemode change -
      on gamemode change to adventure -
      - -
      -
      - - -
      On Gliding State Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (gliding state change|toggl(e|ing) gliding)
      • - -
      -
      Since:2.2-dev21
      - -
      - Called when an entity toggles glider on or off, or when server toggles gliding state of an entity forcibly. -
      - -
      - - Examples: - -
      - on toggling gliding: -
      cancel the event # bad idea, but you CAN do it! -
      - -
      -
      - - -
      On Grow
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0 (2.2-dev20 for plants)
      - -
      - Called when a tree, giant mushroom or plant grows to next stage. -
      - -
      - - Examples: - -
      - on grow -
      on grow of a tree -
      on grow of a huge jungle tree -
      - -
      -
      - - -
      On Heal
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • heal[ing]
      • - -
      -
      Since:1.0
      - -
      - 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). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Hunger Meter Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (food|hunger) (level|met(er|re)|bar) chang(e|ing)
      • - -
      -
      Since:1.4.4
      - -
      - Called when the hunger bar of a player changes, i.e. either increases by eating or decreases over time. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Ignition
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] ignit(e|ion)
      • - -
      -
      Since:1.0
      - -
      - Called when a block starts burning, i.e. a fire block is placed next to it and this block is flammable. -The burn event will be called when the block is about do be destroyed by the fire. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Inventory Click
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] inventory(-| )click[ing] [[at] %item types%]
      • - -
      -
      Since:2.2-Fixes-V10
      - -
      - Called when clicking on inventory slot. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Inventory Close
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • inventory clos(ing|e[d])
      • - -
      -
      Since:2.2-dev21
      - -
      - Called when player's currently viewed inventory is closed. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Inventory Open
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • inventory open[ed]
      • - -
      -
      Since:2.2-dev21
      - -
      - Called when an inventory is opened for player. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Item Break
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] tool break[ing]
      • -
      • [player] break[ing] [(a|the)] tool
      • - -
      -
      Since:2.1.1
      - -
      - Called when a player breaks his tool because its damage reached the maximum value. -This event cannot be cancelled. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Item Despawn
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (item[ ][stack]|[item] %item types%) despawn[ing]
      • -
      • [item[ ][stack]] despawn[ing] [[of] %item types%]
      • - -
      -
      Since:2.2-dev35
      - -
      - Called when an item is about to be despawned from the world, usually 5 minutes after it was dropped. -
      - -
      - - Examples: - -
      - on item despawn of diamond: -
      send "Not my precious!" -
      cancel event -
      - -
      -
      - - -
      On Item Merge
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (item[ ][stack]|[item] %item types%) merg(e|ing)
      • -
      • item[ ][stack] merg(e|ing) [[of] %item types%]
      • - -
      -
      Since:2.2-dev35
      - -
      - Called when dropped items merge into a single stack. -
      - -
      - - Examples: - -
      - on item merge of gold blocks: -
      cancel event -
      - -
      -
      - - -
      On Item Spawn
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:unknown (before 2.1)
      - -
      - 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). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Join
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] (login|logging in|join[ing])
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - on join: -
      message "Welcome on our awesome server!" -
      broadcast "%player% just joined the server!" -
      - -
      -
      - - -
      On Kick
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] (kick|being kicked)
      • - -
      -
      Since:1.0
      - -
      - Called when a player is kicked from the server. You can change the kick message or cancel the event entirely. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Language Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] (language|locale) chang(e|ing)
      • -
      • [player] chang(e|ing) (language|locale)
      • - -
      -
      Since:2.2-dev37
      - -
      - 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. -This event requires Minecraft 1.12+. -
      - -
      - - Examples: - -
      - on language change: -
      if player's language starts with "en": -
      send "Hello!" -
      - -
      -
      - - -
      On Leaves Decay
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • leaves decay[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a leaf block decays due to not being connected to a tree. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Level Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] level [change]
      • - -
      -
      Since:1.0
      - -
      - Called when a player's level changes, e.g. by gathering experience or by enchanting something. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Lightning Strike
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • lightning [strike]
      • - -
      -
      Since:1.0
      - -
      - Called when lightning strikes. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Move On
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - on walking on dirt or grass -
      on stepping on stone -
      - -
      -
      - - -
      On Physics
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] physics
      • - -
      -
      Since:1.4.6
      - -
      - 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. -
      - -
      - - Examples: - -
      - # prevents sand from falling -
      on block physics: -
      block is sand -
      cancel event -
      - -
      -
      - - -
      On Pick Up
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] (pick[ ]up|picking up) [[of] %item types%]
      • - -
      -
      Since:unknown (before 2.1)
      - -
      - Called when a player picks up an item. Please note that the item is still on the ground when this event is called. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Pig Zap
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • pig[ ]zap
      • - -
      -
      Since:1.0
      - -
      - Called when a pig is stroke by lightning and transformed into a zombie pigman. Cancel the event to prevent the transformation. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Piston Extend
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • piston extend[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a piston is about to extend. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Piston Retract
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • piston retract[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a piston is about to retract. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Place
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [block] (plac(e|ing)|build[ing]) [[of] %item types%]
      • - -
      -
      Since:1.0
      - -
      - Called when a player places a block. -
      - -
      - - Examples: - -
      - on place -
      on place of a furnace, workbench or chest -
      - -
      -
      - - -
      On Player World Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] world chang(ing|e[d])
      • - -
      -
      Since:2.2-dev28
      - -
      - Called when a player enters a world. Does not work with other entities! -
      - -
      - - Examples: - -
      - on player world change: -
      world is "city" -
      send "Welcome to the City!" -
      - -
      -
      - - -
      On Portal
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] portal
      • - -
      -
      Since:1.0
      - -
      - Called when a player uses a nether or end portal. Cancel the event to prevent the player from teleporting. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Portal Create
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • portal creat(e|ion)
      • - -
      -
      Since:1.0
      - -
      - 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. -Please note that it's not possible to use the player in this event. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Portal Enter
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • portal enter[ing]
      • -
      • entering [a] portal
      • - -
      -
      Since:1.0
      - -
      - Called when a player enters a nether portal and the swirly animation starts to play. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Prepare Craft
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] (preparing|beginning) craft[ing] [[of] %item types%]
      • - -
      -
      Since:2.2-Fixes-V10
      - -
      - Called just before displaying crafting result to player. Note that setting the result item might or might not work due to Bukkit bugs. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Pressure Plate / Trip
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [step[ping] on] [a] [pressure] plate
      • -
      • (trip|[step[ping] on] [a] tripwire)
      • - -
      -
      Since:1.0 (pressure plate), 1.4.4 (tripwire)
      - -
      - Called when a player steps on a pressure plate or tripwire respectively. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Projectile Hit
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • projectile hit
      • - -
      -
      Since:1.0
      - -
      - Called when a projectile hits an entity or a block. -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. -A damage event will even be fired if the damage is 0, e.g. when throwing snowballs at non-nether mobs. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Quit
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (quit[ting]|disconnect[ing]|log[ ]out|logging out)
      • - -
      -
      Since:1.0
      - -
      - Called when a player leaves the server. Starting with Skript 2.0 this also includes kicked players. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Redstone
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • redstone [current] [chang(e|ing)]
      • - -
      -
      Since:1.0
      - -
      - Called when the redstone current of a block changes. This event is of not much use yet. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Region Enter/Leave
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (enter[ing]|leav(e|ing)|exit[ing]) [of] ([a] region|[[the] region] %regions%)
      • -
      • region (enter[ing]|leav(e|ing)|exit[ing])
      • - -
      -
      Since:2.1
      - -
      - Called when a player enters or leaves a region. -This event requires a supported regions plugin to be installed. -
      - -
      - - Examples: - -
      - on region exit: -
      message "Leaving %region%." -
      - -
      -
      - - -
      On Respawn
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] respawn[ing]
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Resurrect Attempt
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [entity] resurrect[ion] [attempt]
      • - -
      -
      Since:2.2-dev28
      - -
      - Called when an entity dies, always. If they are not holding a totem, this is calcelled - you can, however, uncancel it. -
      - -
      - - Examples: - -
      - on resurrect attempt: -
      entity is player -
      entity has permission "admin.undying" -
      uncancel the event -
      - -
      -
      - - -
      On Script Load/Unload
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [script] (load|init|enable)
      • -
      • [script] (unload|stop|disable)
      • - -
      -
      Since:2.0
      - -
      - Called directly after the trigger is loaded, or directly before the whole script is unloaded. -
      - -
      - - Examples: - -
      - on load: -
      set {running.%script%} to true -
      on unload: -
      set {running.%script%} to false -
      - -
      -
      - - -
      On Server Start/Stop
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (server|skript) (start|load|enable)
      • -
      • (server|skript) (stop|unload|disable)
      • - -
      -
      Since:2.0
      - -
      - Called when the server starts or stops (actually, when Skript starts or stops, so a /reload will trigger these events as well). -
      - -
      - - Examples: - -
      - on Skript start -
      on server stop -
      - -
      -
      - - -
      On Sheep Regrow Wool
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • sheep [re]grow[ing] wool
      • - -
      -
      Since:2.2-dev21
      - -
      - Called when sheep regrows it's sheared wool back. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Shoot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [projectile] shoot
      • - -
      -
      Since:1.0
      - -
      - Called whenever a projectile is shot. Use the shooter expression to get who shot the projectile. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Sign Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • sign (chang[e]|edit)[ing]
      • -
      • [player] (chang[e]|edit)[ing] [a] sign
      • - -
      -
      Since:1.0
      - -
      - As signs are placed empty, this event is called when a player is done editing a sign. -
      - -
      - - Examples: - -
      - on sign change: -
      line 2 is empty -
      set line 1 to "%line 1%" -
      - -
      -
      - - -
      On Slime Split
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • slime split[ting]
      • - -
      -
      Since:2.2-dev26
      - -
      - Called when a slime splits. Usually this happens when a big slime dies. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Smelt
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [ore] smelt[ing]
      • -
      • smelt[ing] of ore
      • - -
      -
      Since:1.0
      - -
      - Called when a furnace smelts an item in its ore slot. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Sneak Toggle
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] toggl(e|ing) sneak
      • -
      • [player] sneak toggl(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called when a player starts or stops sneaking. Use is sneaking to get whether the player was sneaking before the event was called. -
      - -
      - - Examples: - -
      - # make players that stop sneaking jump -
      on sneak toggle: -
      player was sneaking -
      push the player upwards at speed 0.5 -
      - -
      -
      - - -
      On Spawn
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when an creature spawns. -
      - -
      - - Examples: - -
      - on spawn of a zombie -
      on spawn of an ender dragon: -
      broadcast "A dragon has been sighted in %world%!" -
      - -
      -
      - - -
      On Spawn Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [world] spawn change
      • - -
      -
      Since:1.0
      - -
      - Called when the spawn point of a world changes. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Spread
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • spread[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a new block forms as a result of a block that can spread, e.g. water or mushrooms. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Sprint Toggle
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] toggl(e|ing) sprint
      • -
      • [player] sprint toggl(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called when a player starts or stops sprinting. Use is sprinting to get whether the player was sprinting before the event was called. -
      - -
      - - Examples: - -
      - on sprint toggle: -
      player is not sprinting -
      send "Run!" -
      - -
      -
      - - -
      On Tame
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [entity] tam(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called when a player tames a wolf or ocelot. Can be cancelled to prevent the entity from being tamed. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Target
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [entity] target
      • -
      • [entity] un[-]target
      • - -
      -
      Since:1.0
      - -
      - Called when a mob starts/stops following/attacking another entity, usually a player. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Teleport
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player] teleport[ing]
      • - -
      -
      Since:1.0
      - -
      - Called whenever a player is teleported, either by a nether/end portal or other means (e.g. by plugins). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Throwing of an Egg
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • throw[ing] [of] [an] egg
      • -
      • [player] egg throw
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Tool Change
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [player['s]] (tool|item held|held item) chang(e|ing)
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Vehicle Create
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vehicle create
      • -
      • creat(e|ing|ion of) [a] vehicle
      • - -
      -
      Since:1.0
      - -
      - Called when a new vehicle is created, e.g. when a player places a boat or minecart. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Vehicle Damage
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vehicle damage
      • -
      • damag(e|ing) [a] vehicle
      • - -
      -
      Since:1.0
      - -
      - Called when a vehicle gets damage. Too much damage will destroy the vehicle. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Vehicle Destroy
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vehicle destroy
      • -
      • destr(oy[ing]|uction of) [a] vehicle
      • - -
      -
      Since:1.0
      - -
      - Called when a vehicle is destroyed. Any passenger will be ejected and the vehicle might drop some item(s). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Vehicle Enter
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vehicle enter
      • -
      • enter[ing] [a] vehicle
      • - -
      -
      Since:1.0
      - -
      - Called when an entity enters a vehicle, either deliberately (players) or by falling into them (mobs). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Vehicle Exit
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • vehicle exit
      • -
      • exit[ing] [a] vehicle
      • - -
      -
      Since:1.0
      - -
      - Called when an entity exits a vehicle. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Weather Change
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Called when a world's weather changes. -
      - -
      - - Examples: - -
      - on weather change -
      on weather change to sunny -
      - -
      -
      - - -
      On World Init
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • world init[zation)]
      • - -
      -
      Since:1.0
      - -
      - 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. -World management plugins might change the behaviour of this event though. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On World Load
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • world load[ing]
      • - -
      -
      Since:1.0
      - -
      - 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). -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On World Save
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • world sav(e|ing)
      • - -
      -
      Since:1.0
      - -
      - Called when a world is saved to disk. Usually all worlds are saved simultaneously, but world management plugins could change this. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On World Unload
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • world unload[ing]
      • - -
      -
      Since:1.0
      - -
      - Called when a world is unloaded. This event might never be called if you don't have a world management plugin. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      On Zombie Break Door
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • zombie break[ing] [a] [wood[en]] door
      • - -
      -
      Since:1.0
      - -
      - Called when a zombie is done breaking a wooden door. Can be cancelled to prevent the zombie from breaking the door. -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      Periodical
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - An event that is called periodically. -
      - -
      - - Examples: - -
      - every 2 seconds -
      every minecraft hour -
      every ticks #can cause lag (depends on the code in this trigger) -
      every minecraft days -
      - -
      -
      - - -
      Periodical
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - An event that is called periodically. -
      - -
      - - Examples: - -
      - every 2 seconds in "world" -
      every minecraft hour in "flatworld" -
      every ticks in "world" #can cause lag (depends on the code in this trigger) -
      every minecraft days in "plots" -
      - -
      -
      - - -
      - - - diff --git a/old/expressions.html b/old/expressions.html deleted file mode 100644 index 456c210af9f..00000000000 --- a/old/expressions.html +++ /dev/null @@ -1,7609 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
      -

      Expressions

      - - - -
      All Groups
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • all groups
      • - -
      -
      Since:2.2-dev35
      - -
      - All the groups a player can have. This expression requires Vault and a compatible permissions plugin to be installed. -
      - -
      - - Examples: - -
      - command /group : -
      trigger: -
      if argument is "list": -
      send "%all groups%" -
      - -
      -
      - - -
      All Permissions
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev33
      - -
      - Returns all permissions of the defined player(s). Note that the modifications to resulting list do not actually change permissions. -
      - -
      - - Examples: - -
      - set {_permissions::*} to all permissions of the player -
      - -
      -
      - - -
      Alphabetical Sort
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • alphabetically sorted %texts%
      • - -
      -
      Since:2.2-dev18b
      - -
      - Sorts given strings in alphabetical order. -
      - -
      - - Examples: - -
      - set {_list::*} to alphabetically sorted {_list::* -
      - -
      -
      - - -
      Altitude
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.3
      - -
      - Effectively an alias of 'y-coordinate of …', it represents the height of some object above bedrock. -
      - -
      - - Examples: - -
      - on damage: -
      altitude of the attacker is higher that the altitude of the victim -
      set damage to damage * 1.2 -
      - -
      -
      - - -
      Amount
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (amount|number|size) of %objects%
      • - -
      -
      Since:1.0
      - -
      - The amount of something. -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. -
      - -
      - - Examples: - -
      - message "There are %number of all players% players online!" -
      - -
      -
      - - -
      Amount of Items
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - Counts how many of a particular item type are in a given inventory. -
      - -
      - - Examples: - -
      - message "You have %number of ores in the player's inventory% ores in your inventory." -
      - -
      -
      - - -
      Argument
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] last arg[ument][s]
      • -
      • [the] arg[ument][s](-| )<(\d+)>
      • -
      • [the] <(\d*1)st|(\d*2)nd|(\d*3)rd|(\d*[4-90])th> arg[ument][s]
      • -
      • [the] arg[ument][s]
      • -
      • [the] %*type%( |-)arg[ument][( |-)<\d+>]
      • -
      • [the] arg[ument]( |-)%*type%[( |-)<\d+>]
      • - -
      -
      Since:1.0
      - -
      - Only usable in command events. Holds the value of the nth 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!". -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'. -
      - -
      - - Examples: - -
      - give the item-argument to the player-argument -
      damage the player-argument by the number-argument -
      give a diamond pickaxe to the argument -
      add argument 1 to argument 2 -
      heal the last argument -
      - -
      -
      - - -
      Arithmetic
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.2
      - -
      - Arithmetic expressions, e.g. 1+2, (2 - health of player)/3, etc. -
      - -
      - - Examples: - -
      - set the player's health to 10 - the player's health -
      loop (argument + 2)/5 times: -
      message "Two useless numbers: %loop-num*2 - 5%, %2^loop-num - 1%" -
      message "You have %health of player * 2% half hearts of HP!" -
      - -
      -
      - - -
      Armour Slot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)] of %living entities%
      • -
      • %living entities%'[s] (boot[s]|shoe[s]|leg[ging][s]|chestplate[s]|helm[et][s]) [(item|slot)]
      • - -
      -
      Since:1.0
      - -
      - A part of a player's armour, i.e. the boots, leggings, chestplate or helmet. -
      - -
      - - Examples: - -
      - set chestplate of the player to a diamond chestplate -
      helmet of player is neither a helmet nor air # player is wearing a block, e.g. from another plugin -
      - -
      -
      - - -
      Attacked
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (attacked|damaged|victim) [<(.+)>]
      • - -
      -
      Since:1.3
      - -
      - The victim of a damage event, e.g. when a player attacks a zombie this expression represents the zombie. -
      - -
      - - Examples: - -
      - on damage: -
      victim is a creeper -
      damage the attacked by 1 heart -
      - -
      -
      - - -
      Attacker
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (attacker|damager)
      • - -
      -
      Since:1.3
      - -
      - The attacker of a damage event, e.g. when a player attacks a zombie this expression represents the player. -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. -
      - -
      - - Examples: - -
      - on damage: -
      attacker is a player -
      health of attacker is less than or equal to 2 -
      damage victim by 1 heart -
      - -
      -
      - - -
      Bed
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] bed[s] [location[s]] of %players%
      • -
      • %players%'[s] bed[s] [location[s]]
      • - -
      -
      Since:2.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - bed of player exists: -
      teleport player the the player's bed -
      else: -
      teleport the player to the world's spawn point -
      - -
      -
      - - -
      Biome
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4.4
      - -
      - 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. -
      - -
      - - Examples: - -
      - # damage player in deserts constantly -
      every real minute: -
      loop all players: -
      biome at loop-player is desert -
      damage the loop-player by 1 -
      - -
      -
      - - -
      Block
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [event-]block
      • - -
      -
      Since:1.0
      - -
      - The block involved in the event, e.g. the clicked block or the placed block. -Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'. -
      - -
      - - Examples: - -
      - block is ore -
      set block below to air -
      spawn a creeper above the block -
      loop blocks in radius 4: -
      loop-block is obsidian -
      set loop-block to water -
      block is a chest: -
      clear the inventory of the block -
      - -
      -
      - - -
      Block
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - The block involved in the event, e.g. the clicked block or the placed block. -Can optionally include a direction as well, e.g. 'block above' or 'block in front of the player'. -
      - -
      - - Examples: - -
      - block is ore -
      set block below to air -
      spawn a creeper above the block -
      loop blocks in radius 4: -
      loop-block is obsidian -
      set loop-block to water -
      block is a chest: -
      clear the inventory of the block -
      - -
      -
      - - -
      Block Sphere
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [(all [[of] the]|the)] blocks in radius %number% [(of|around) %location%]
      • -
      • [(all [[of] the]|the)] blocks around %location% in radius %number%
      • - -
      -
      Since:1.0
      - -
      - All blocks in a sphere around a center, mostly useful for looping. -
      - -
      - - Examples: - -
      - loop blocks in radius 5 around the player: -
      - -
      -
      - - -
      Blocks
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - Blocks relative to other blocks or between other blocks. Can be used to get blocks relative to other blocks or for looping. -
      - -
      - - Examples: - -
      - loop blocks above the player: -
      loop blocks between the block below the player and the targeted block: -
      set the blocks below the player, the victim and the targeted block to air -
      - -
      -
      - - -
      Blocks in Region
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [(all|the)] blocks (in|of) [[the] region[s]] %regions%
      • - -
      -
      Since:2.1
      - -
      - All blocks in a region. -This expression requires a supported regions plugin to be installed. -
      - -
      - - Examples: - -
      - loop all blocks in the region {arena.%{faction.%player%}%}: -
      clear the loop-block -
      - -
      -
      - - -
      Book Author
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [book] (author|writer|publisher) of %item stack%
      • -
      • %item stack%'[s] [book] (author|writer|publisher)
      • - -
      -
      Since:2.2-dev31
      - -
      - The author of a book -
      - -
      - - Examples: - -
      - on book sign: -
      message "Book Title: %author of event-item%" -
      - -
      -
      - - -
      Book Pages
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev31
      - -
      - The pages of a book -
      - -
      - - Examples: - -
      - on book sign: -
      message "Book Pages: %pages of event-item%" -
      message "Book Page 1: %page 1 of event-item%" -
      - -
      -
      - - -
      Book Title
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev31
      - -
      - The title of a book -
      - -
      - - Examples: - -
      - on book sign: -
      message "Book Title: %title of event-item%" -
      - -
      -
      - - -
      Burn/Cook Time
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] burn[ing] time
      • -
      • [the] (burn|cook)[ing] time of %blocks%
      • -
      • %blocks%'[s] (burn|cook)[ing] time
      • - -
      -
      Since:2.2-dev37
      - -
      - The time a furnace takes to burn an item in a fuel burn event. -Can also be used to change the burn/cook time of a placed furnace. -
      - -
      - - Examples: - -
      - on fuel burn: -
      if fuel slot is coal: -
      set burning time to 1 tick -
      - -
      -
      - - -
      Chat Format
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (message|chat) format[ting]
      • - -
      -
      Since:2.2-dev31
      - -
      - 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]. -
      - -
      - - Examples: - -
      - set the chat format to "[player]: [message]" -
      - -
      -
      - - -
      Chat Recipients
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [chat][( |-)]recipients
      • - -
      -
      Since:2.2-Fixes-v7, 2.2-dev35 (clearing recipients)
      - -
      - Recipients of chat events where this is called. -
      - -
      - - Examples: - -
      - chat recipients -
      - -
      -
      - - -
      Chunk
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - The chunk a block, location or entity is in -
      - -
      - - Examples: - -
      - add the chunk at the player to {protected chunks::*} -
      - -
      -
      - - -
      Clicked Block/Entity/Inventory/Slot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] ( clicked (block|%*item type/entity type%)|clicked slot|clicked inventory|click (type|action)|inventory action)
      • - -
      -
      Since:1.0, 2.2-dev35 (more clickable things)
      - -
      - The clicked block, entity, inventory slot, inventory, type or action. -
      - -
      - - Examples: - -
      - message "You clicked on a %type of clicked entity%!" -
      clicked block is a chest: -
      show the inventory of the clicked block to the player -
      - -
      -
      - - -
      Colour of
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.2
      - -
      - The colour of an item, can also be used to colour chat messages with "<%colour of ...%>this text is coloured!". -
      - -
      - - Examples: - -
      - on click on wool: -
      message "This wool block is <%colour of block%>%colour of block%!" -
      set the colour of the block to black -
      - -
      -
      - - -
      Coloured / Uncoloured
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (colo[u]r-|colo[u]red )%texts%
      • -
      • (un|non)[-](colo[u]r-|colo[u]red )%texts%
      • - -
      -
      Since:2.0
      - -
      - Parses <colour>s (including chat styles) in a message or removes any colours & chat styles from the message. -
      - -
      - - Examples: - -
      - on chat: -
      set message to coloured message -
      command /fade : -
      trigger: -
      set display name of the player-argument to uncoloured display name of the player-argument -
      - -
      -
      - - -
      Command
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (full|complete|whole) command
      • -
      • [the] command [label]
      • -
      • [the] arguments
      • - -
      -
      Since:2.0
      - -
      - The command that caused an 'on command' event (excluding the leading slash and all arguments) -
      - -
      - - Examples: - -
      - # prevent any commands except for the /exit command during some game -
      on command: -
      {game.%player%.is playing} is true -
      command is not "exit" -
      message "You're not allowed to use commands during the game" -
      cancel the event -
      - -
      -
      - - -
      Command Sender
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [command['s]] (sender|executor)
      • - -
      -
      Since:2.0
      - -
      - The player or the console who sent a command. Mostly useful in commands and command events. -
      - -
      - - Examples: - -
      - make the command sender execute "/say hi!" -
      on command: -
      log "%executor% used command /%command% %arguments%" to "commands.log" -
      - -
      -
      - - -
      Compass Target
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] compass target of %players%
      • -
      • %players%'[s] compass target
      • - -
      -
      Since:2.0
      - -
      - The location a player's compass is pointing at. -
      - -
      - - Examples: - -
      - # make all player's compasses target a player stored in {compass target.%player%} -
      every 5 seconds: -
      loop all players: -
      set the loop-player's compass target to location of {compass target.%loop-player%} -
      - -
      -
      - - -
      Console
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (console|server)
      • - -
      -
      Since:1.3.1
      - -
      - Represents the server's console which can receive messages and execute commands -
      - -
      - - Examples: - -
      - execute console command "/stop" -
      send "message to console" to the console -
      - -
      -
      - - -
      Cooldown Time/Remaining Time/Elapsed Time/Last Usage Date/Cooldown Bypass Permission
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (remaining [time]|elapsed [time]|cooldown [time] [length]|last usage [date]|cooldown bypass perm[ission]) [of] [the] [(cooldown|wait)] [((of|for)[the] [current] command)]
      • - -
      -
      Since:2.2-dev33
      - -
      - Only usable in command events. Represents the cooldown time, the remaining time, or the elapsed time, or the last usage date, or the cooldown bypass permission. -
      - -
      - - Examples: - -
      - command /home: -
      cooldown: 10 seconds -
      cooldown message: You last teleported home %elapsed time% ago, you may teleport home again in %remaining time% -
      trigger: -
      teleport player to {home::%player%} -
      - -
      -
      - - -
      Coordinate
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s] of %locations%
      • -
      • %locations%'[s] (x|y|z)(-| )(coord[inate]|pos[ition]|loc[ation])[s]
      • - -
      -
      Since:1.4.3
      - -
      - Represents a given coordinate of a location. -
      - -
      - - Examples: - -
      - player's y-coordinate is smaller than 40: -
      message "Watch out for lava!" -
      - -
      -
      - - -
      Creature/Entity/Player/Projectile/Villager/Powered Creeper/etc.
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [event-]<.+>
      • - -
      -
      Since:1.0
      - -
      - 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). -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'. -
      - -
      - - Examples: - -
      - give a diamond sword of sharpness 3 to the player -
      kill the creeper -
      kill all powered creepers in the wolf's world -
      projectile is an arrow -
      - -
      -
      - - -
      Cursor Slot
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev17
      - -
      - The item which player has on their cursor. This slot is always empty if player has no inventories open. -
      - -
      - - Examples: - -
      - cursor slot of player is dirt -
      set cursor slot of player to 64 diamonds -
      - -
      -
      - - -
      Custom Chest Inventory
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [a [new]] chest inventory (named|with name) %text% [with %number% row[s]]
      • -
      • [a [new]] chest inventory with %number% row[s] [(named|with name) %text%]
      • - -
      -
      Since:2.2-dev34
      - -
      - Returns a chest inventory with the given amount of rows and the name. Use the open inventoryeffect to open it. -
      - -
      - - Examples: - -
      - open chest inventory with 1 rows named "test" -
      set {_inventory} to chest inventory with 1 row -
      - -
      -
      - - -
      Damage
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] damage
      • - -
      -
      Since:1.3.5
      - -
      - 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). -
      - -
      - - Examples: - -
      - increase the damage by 2 -
      - -
      -
      - - -
      Damage Cause
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] damage (cause|type)
      • - -
      -
      Since:2.0
      - -
      - The damage cause of a damage event. Please click on the link for more information. -
      - -
      - - Examples: - -
      - damage cause is lava, fire or burning -
      - -
      -
      - - -
      Data Value
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.2
      - -
      - The data value of an item. -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. -
      - -
      - - Examples: - -
      - add 1 to the data value of the clicked block -
      - -
      -
      - - -
      Date Ago/Later
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev33
      - -
      - A date the specified timespan before/after another date. -
      - -
      - - Examples: - -
      - set {_yesterday} to 1 day ago -
      - -
      -
      - - -
      Default Value
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - A shorthand expression for giving things a default value. If the first thing isn't set, the second thing will be returned. -
      - -
      - - Examples: - -
      - broadcast {score::%player's uuid%} otherwise "%player% has no score!" -
      - -
      -
      - - -
      Difference
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - The difference between two values, e.g. numbers, dates or times. -
      - -
      - - Examples: - -
      - difference between {command.%player%.lastuse} and now is smaller than a minute: -
      message "You have to wait a minute before using this command again!" -
      stop -
      - -
      -
      - - -
      Direction
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [%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%]
      • -
      • [%number% [[(block|met(er|re))[s]]] in [the] (direction|horizontal direction|facing|horizontal facing) of %entity/block% (of|from)]
      • -
      • [%number% [[(block|met(er|re))[s]]] in %entity/block%'[s] (direction|horizontal direction|facing|horizontal facing) (of|from)]
      • -
      • [%number% [(block|met(er|re))[s]]] (in[ ]front [of]|forward[s]|behind|backwards|[to the] (right|left) [of])
      • -
      • [%number% [(block|met(er|re))[s]]] horizontal[ly] (in[ ]front [of]|forward[s]|behind|backwards|to the (right|left) [of])
      • - -
      -
      Since:1.0 (basic), 2.0 (extended)
      - -
      - A helper expression for the direction type. -
      - -
      - - Examples: - -
      - thrust the player upwards -
      set the block behind the player to water -
      loop blocks above the player: -
      set {_rand} to a random integer between 1 and 10 -
      set the block {_rand} meters south east of the loop-block to stone -
      block in horizontal facing of the clicked entity from the player is air -
      spawn a creeper 1.5 meters horizontally behind the player -
      spawn a TNT 5 meters above and 2 meters horizontally behind the player -
      thrust the last spawned TNT in the horizontal direction of the player with speed 0.2 -
      push the player upwards and horizontally forward at speed 0.5 -
      push the clicked entity in in the direction of the player at speed -0.5 -
      open the inventory of the block 2 blocks below the player to the player -
      teleport the clicked entity behind the player -
      grow a regular tree 2 meters horizontally behind the player -
      - -
      -
      - - -
      Distance
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - The distance between two points. -
      - -
      - - Examples: - -
      - distance between the player and {%player%.home} is smaller than 20: -
      message "You're very close to your home!" -
      - -
      -
      - - -
      Drops
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] drops
      • - -
      -
      Since:1.0
      - -
      - Only works in 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. -
      - -
      - - Examples: - -
      - clear drops -
      remove 4 planks from the drops -
      - -
      -
      - - -
      Element of
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • ([the] first|[the] last|[a] random|%number%(st|nd|rd|th)) element [out] of %objects%
      • - -
      -
      Since:2.0
      - -
      - The first, last or a random element of a set, e.g. a list variable. -See also: random -
      - -
      - - Examples: - -
      - give a random element out of {free items::*} to the player -
      - -
      -
      - - -
      Enchantment Level
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - The level of a particular enchantment on an item -
      - -
      - - Examples: - -
      - player' tool is a sword of sharpness: -
      message "You have a sword of sharpness %level of sharpness of the player's tool% equipped" -
      - -
      -
      - - -
      Ender Chest
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] ender[ ]chest[s] of %players%
      • -
      • %players%'[s] ender[ ]chest[s]
      • - -
      -
      Since:2.0
      - -
      - The ender chest of a player -
      - -
      - - Examples: - -
      - open the player's ender chest to the player -
      - -
      -
      - - -
      Entities
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.2.1
      - -
      - all entities in all world, 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'. -
      - -
      - - Examples: - -
      - kill all creepers in the player's world -
      send "Psst!" to all players witin 100 meters of the player -
      give a diamond to all ops -
      heal all tamed wolves in radius 2000 around {town center} -
      - -
      -
      - - -
      Exhaustion
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev35
      - -
      - The exhaustion of a player. This is mainly used to determine the rate of hunger depletion. -
      - -
      - - Examples: - -
      - set exhaustion of all players to 1 -
      - -
      -
      - - -
      Experience
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [(spawned|dropped)] [e]xp[erience] [orb[s]]
      • - -
      -
      Since:2.1
      - -
      - How much experience was spawned in an experience spawn event. Can be changed. -
      - -
      - - Examples: - -
      - on experience spawn: -
      add 5 to the spawned experience -
      - -
      -
      - - -
      Facing
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.4
      - -
      - 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') -
      - -
      - - Examples: - -
      - # makes a bridge -
      loop blocks from the block below the player in the horizontal facing of the player: -
      set block to cobblestone -
      - -
      -
      - - -
      Filter
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %objects% (where|that match) \[<.+>\]
      • - -
      -
      Since:2.2-dev36
      - -
      - 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. -
      - -
      - - Examples: - -
      - send "congrats on being staff!" to all players where [player input has permission "staff"] -
      - -
      -
      - - -
      Filter Input
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • input
      • -
      • %*type% input
      • - -
      -
      Since:2.2-dev36
      - -
      - 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. -
      - -
      - - Examples: - -
      - send "congrats on being staff!" to all players where [input has permission "staff"] -
      - -
      -
      - - -
      Final Damage
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] final damage
      • - -
      -
      Since:2.2-dev19
      - -
      - How much damage is done in a damage event, considering all types of damage reduction. Can NOT be changed. -
      - -
      - - Examples: - -
      - send "%final damage%" to victim -
      - -
      -
      - - -
      Flight Mode
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] fl(y[ing]|ight) (mode|state) of %players%
      • -
      • %players%'[s] fl(y[ing]|ight) (mode|state)
      • - -
      -
      Since:2.2-dev34
      - -
      - Whether the player(s) are allowed to fly. Use Make Fly effect to force player(s) to fly. -
      - -
      - - Examples: - -
      - set flight mode of player to true -
      send "%flying state of all players%" -
      - -
      -
      - - -
      Food Level
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (food|hunger)[[ ](level|met(er|re)|bar)] [of %player%]
      • -
      • %player%'[s] (food|hunger)[[ ](level|met(er|re)|bar)]
      • - -
      -
      Since:1.0
      - -
      - The food level of a player from 0 to 10. Has several aliases: food/hunger level/meter/bar. -
      - -
      - - Examples: - -
      - set the player's food level to 10 -
      - -
      -
      - - -
      Formatted time
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %dates% formatted [human-readable] [(with|as) %text%]
      • - -
      -
      Since:2.2-dev31
      - -
      - Converts date to human-readable text format. By default, yyyy-MM-dd HH:mm:ss z will be used. For reference, see this Wikipedia article. -
      - -
      - - Examples: - -
      - now formatted human-readable -
      - -
      -
      - - -
      Former/Future State
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (former|past|old) [state] [of] %~object%
      • -
      • %~object% before [the event]
      • -
      • [the] (future|to-be|new) [state] [of] %~object%
      • -
      • %~object%(-to-be| after[(wards| the event)])
      • - -
      -
      Since:1.1
      - -
      - 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. -Note: The past, future and present states of an expression are sometimes called 'time states' of an expression. -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. -
      - -
      - - Examples: - -
      - on teleport: -
      former world was "world_nether" # or 'world was' -
      world will be "world" # or 'world after the event is' -
      on tool change: -
      past tool is an axe -
      the tool after the event will be air -
      on weather change: -
      set {weather.%world%.old} to past weather -
      set {weather.%world%.current} to the new weather -
      - -
      -
      - - -
      Furnace Slot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • (fuel|result) [slot]
      • -
      • (ore|fuel|result)[s] [slot[s]] of %blocks%
      • -
      • %blocks%'[s] (ore|fuel|result)[s] [slot[s]]
      • - -
      -
      Since:1.0
      - -
      - A slot of a furnace, i.e. either the ore, fuel or result slot. -Remember to use 'block' and not 'furnace', as 'furnace' is not an existing expression. -
      - -
      - - Examples: - -
      - set the fuel slot of the clicked block to a lava bucket -
      set the block's ore slot to 64 iron ore -
      give the result of the block to the player -
      clear the result slot of the block -
      - -
      -
      - - -
      Game Mode
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - The gamemode of a player. -
      - -
      - - Examples: - -
      - player's gamemode is survival -
      set the player's gamemode to creative -
      - -
      -
      - - -
      Gliding State
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (gliding|glider) [state] of %entities%
      • -
      • %entities%'[s] (gliding|glider) [state]
      • - -
      -
      Since:2.2-dev21
      - -
      - Sets of gets gliding state of player. It allows you to set gliding state of entity even if they do not have Elytra equipped. -
      - -
      - - Examples: - -
      - set gliding of player to off -
      - -
      -
      - - -
      Glowing
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev18
      - -
      - Indicates if targeted entity is glowing (new 1.9 effect) or not. Glowing entities can be seen through walls. -
      - -
      - - Examples: - -
      - set glowing of player on -
      - -
      -
      - - -
      Gravity
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev21
      - -
      - If entity is affected by gravity or not, i.e. if it has Minecraft 1.10+ NoGravity flag. -
      - -
      - - Examples: - -
      - set gravity of player off -
      - -
      -
      - - -
      Group
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev35
      - -
      - The primary group or all groups of a player. This expression requires Vault and a compatible permissions plugin to be installed. -
      - -
      - - Examples: - -
      - on join: -
      broadcast "%group of player%" # this is the player's primary group -
      broadcast "%groups of player%" # this is all of the player's groups -
      - -
      -
      - - -
      Hash
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • %texts% hash[ed] with (MD5|SHA-256)
      • - -
      -
      Since:2.0, 2.2-dev32 (SHA-256 algorithm)
      - -
      - Hashes the given text using the MD5 or SHA-256 algorithms. Each algorithm is suitable for different use cases.

      -MD5 is provided mostly for backwards compatibility, as it is outdated and not secure. -SHA-256 is more secure, and can used to hash somewhat confidental data like IP addresses and even passwords. -It is not that secure out of the box, so please consider using salt when dealing with passwords! -When hashing data, you must specify algorithms that will be used for security reasons! -

      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. -

      - -
      - - Examples: - -
      - command /setpass : -
      trigger: -
      set {password.%player%} to text-argument hashed with SHA-256 -
      command /login : -
      trigger: -
      {password.%player%} is text-argument hashed with SHA-256: -
      message "Login successful." -
      else: -
      message "Wrong password!" -
      - -
      -
      - - -
      Head location
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.0
      - -
      - The location of an entity's head, mostly useful for players and e.g. looping blocks in the player's line of sight. -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. -
      - -
      - - Examples: - -
      - set the block at the player's head to air -
      set the block in front of the player's eyes to glass -
      loop blocks in front of the player's head: -
      - -
      -
      - - -
      Health
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - The health of a creature, e.g. a player, mob, villager, etc. from 0 to the creature's max health, e.g. 10 for players. -
      - -
      - - Examples: - -
      - message "You have %health% HP left." -
      - -
      -
      - - -
      Hidden Players
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [(all [[of] the]|the)] hidden players (of|for) %players%
      • -
      • [(all [[of] the]|the)] players hidden (from|for|by) %players%
      • - -
      -
      Since:2.2-dev37c
      - -
      - The players hidden from a player that hidden using the player visibility effect. -
      - -
      - - Examples: - -
      - message "You are currently hiding: %hidden players of the player%" -
      - -
      -
      - - -
      Highest Solid Block
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] highest [(solid|non-air)] block[s] at %locations%
      • - -
      -
      Since:2.2-dev34
      - -
      - Returns the highest solid block at the x and z coordinates of the world of given location -
      - -
      - - Examples: - -
      - highest block at location of arg-player -
      - -
      -
      - - -
      Hotbar Slot
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [([currently] selected|current)] hotbar slot of %players%
      • -
      • %players%'[s] [([currently] selected|current)] hotbar slot
      • - -
      -
      Since:2.2-dev36
      - -
      - The slot number of the currently selected hotbar slot. -
      - -
      - - Examples: - -
      - message "%player's current hotbar slot%" -
      set player's selected hotbar slot to slot 4 of player -
      - -
      -
      - - -
      Humidity
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] humidit(y|ies) of %blocks%
      • -
      • %blocks%'[s] humidit(y|ies)
      • - -
      -
      Since:2.2-dev35
      - -
      - Humidity of given blocks -
      - -
      - - Examples: - -
      - -
      - -
      -
      - - -
      IP
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • IP[s][( |-)address[es]] of %players%
      • -
      • %players%'[s] IP[s][( |-)address[es]]
      • - -
      -
      Since:1.4, 2.2-dev26 (when used in connect event)
      - -
      - The IP address of a player. -
      - -
      - - Examples: - -
      - IP-ban the player # is equal to the next line -
      ban the IP-address of the player -
      broadcast "Banned the IP %IP of player%" -
      - -
      -
      - - -
      Id
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:1.0
      - -
      - The id of a specific item. You usually don't need this expression as you can likely do everything with aliases. -
      - -
      - - Examples: - -
      - message "the ID of %type of the clicked block% is %id of the clicked block%." -
      - -
      -
      - - -
      Index Of
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] [(first|last)] index of %text% in %text%
      • - -
      -
      Since:2.1
      - -
      - 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. -
      - -
      - - Examples: - -
      - set {_@} to the first index of "@" in the text argument -
      if {_s} contains "abc": -
      set {_s} to the first (index of "abc" in {_s} + 3) characters of {_s} # removes everything after the first "abc" from {_s} -
      - -
      -
      - - -
      Indices of List
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [(all [[of] the]|the)] indices of %objects%
      • -
      • %objects%'s indices
      • - -
      -
      Since:2.2-dev37
      - -
      - Gets indices of a list variable. -
      - -
      - - Examples: - -
      - set {l::*} to "some", "cool" and "values" -broadcast "%all indices of {l::*}%" # Result is 1, 2 and 3 -
      - -
      -
      - - -
      Inventory
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] inventor(y|ies) of %inventoryholders%
      • -
      • %inventoryholders%'[s] inventor(y|ies)
      • - -
      -
      Since:1.0
      - -
      - 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. -
      - -
      - - Examples: - -
      - add a plank to the player's inventory -
      clear the player's inventory -
      remove 5 wool from the inventory of the clicked block -
      - -
      -
      - - -
      Inventory Action
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] inventory action
      • - -
      -
      Since:2.2-dev16
      - -
      - The inventory action of an inventory event. Please click on the link for more information. -
      - -
      - - Examples: - -
      - inventory action is pickup all -
      - -
      -
      - - -
      Inventory Holder/Viewers/Rows
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] (holder[s]|viewers|[amount of] rows) of %inventories%
      • -
      • %inventories%'[s] (holder[s]|viewers|[amount of] rows)
      • - -
      -
      Since:2.2-dev34
      - -
      - Gets the rows/size/viewers/holder of an inventory. -
      - -
      - - Examples: - -
      - event-inventory's amount of rows -
      holder of player's top inventory -
      {_inventory}'s viewers -
      - -
      -
      - - -
      Inventory Slot
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev24
      - -
      - Represents a slot in a inventory. It can be used to change the item in a inventory too. -
      - -
      - - Examples: - -
      - if slot 0 of player is air: -
      set slot 0 of player to 2 stones -
      remove 1 stone from slot 0 of player -
      add 2 stones to slot 0 of player -
      clear slot 1 of player -
      - -
      -
      - - -
      Item
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] item
      • - -
      -
      Since:unknown (before 2.1)
      - -
      - The item involved in an event, e.g. in a drop, dispense, pickup or craft event. -
      - -
      - - Examples: - -
      - on dispense: -
      item is a clock -
      set the time to 6:00 -
      - -
      -
      - - -
      Item Amount
      -
      - - - - - - - - - - - - -
      Pattern: -
        -
      • [the] item[[ ]stack] (amount|size|number) of %item stacks%
      • -
      • %item stacks%'[s] item[[ ]stack] (amount|size|number)
      • - -
      -
      Since:2.2-dev24
      - -
      - The amount of an item stack. -
      - -
      - - Examples: - -
      - send "You have got %item amount of player's tool% %player's tool% in your hand !" to player -
      - -
      -
      - - -
      Item Enchantments
      -
      - - - - - - - - - - - - -
      Pattern: - -
      Since:2.2-dev36
      - -
      - All the enchantments an entities%
    • -
    • %entities%'[s] item
    • - -
    - - - - - Since: - 2.2-dev35, 2.2-dev36 (improved) - - - - -
    - 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. -
    - -
    - - Examples: - -
    - -
    - -
    - - - -
    Items
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all [[of] the]|the|every)] item(s|[ ]types)
    • -
    • [(all [[of] the]|the)] items of type[s] %item types%
    • -
    • [(all [[of] the]|the|every)] block(s|[ ]types)
    • -
    • [(all [[of] the]|the)] blocks of type[s] %item types%
    • - -
    -
    Since:unknown (before 2.1)
    - -
    - Items or blocks of a specific type, useful for looping. -
    - -
    - - Examples: - -
    - loop items of type ore and log: -
    block contains loop-item -
    message "Theres at least one %loop-item% in this block" -
    drop all blocks at the player # drops one of every block at the player -
    - -
    -
    - - -
    Items In
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all [[of] the]|the)] items ([with]in|of|contained in|out of) [(inventor(y|ies)]) %inventories%
    • - -
    -
    Since:2.0
    - -
    - All items in an inventory. Useful for looping or storing in a list variable. -Please note that the positions of the items in the inventory are not saved, only their order is preserved. -
    - -
    - - Examples: - -
    - loop all items in the player's inventory: -
    loop-item is enchanted -
    remove loop-item from the player -
    set {inventory.%player%} to items in the player's inventory -
    - -
    -
    - - -
    Join & Split
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • (concat[enate]|join) %objects% [(with|using|by) [[the] delimiter] %text%]
    • -
    • split %text% (at|using|by) [[the] delimiter] %text%
    • -
    • %text% split (at|using|by) [[the] delimiter] %text%
    • - -
    -
    Since:2.1
    - -
    - Joins several texts with a common delimiter (e.g. ", "), or splits a text into multiple texts at a given delimiter. -
    - -
    - - Examples: - -
    - message "Online players: %join all players with " | "%" # %all players% would use the default "x, y, and z" -
    set {_s::} to the string argument split at "," -
    - -
    -
    - - -
    Language
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [([currently] selected|current)] [game] (language|locale) [setting] of %players%
    • -
    • %players%'[s] [([currently] selected|current)] [game] (language|locale) [setting]
    • - -
    -
    Since:2.2-dev37
    - -
    - Currently selected game language of a player. The value of the language is not defined properly. -The vanilla Minecraft client will use lowercase language / country pairs separated by an underscore, but custom resource packs may use any format they wish. -
    - -
    - - Examples: - -
    - message player's current language -
    - -
    -
    - - -
    Last Damage Cause
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-Fixes-V10
    - -
    - Cause of last damage done to an entity -
    - -
    - - Examples: - -
    - set last damage cause of event-entity to fire tick -
    - -
    -
    - - -
    Last Spawned Entity
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [last[ly]] (spawned|shot) %*entity type%
    • -
    • [the] [last[ly]] dropped (item)
    • - -
    -
    Since:1.3 (spawned entity), 2.0 (shot entity), 2.2-dev26 (dropped item)
    - -
    - 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 a item you can however access all them together. -
    - -
    - - Examples: - -
    - spawn a priest -
    set {%spawned priest%.healer} to true -
    shoot an arrow from the last spawned entity -
    ignite the shot projectile -
    drop a diamond sword -
    push last dropped item upwards -
    - -
    -
    - - -
    Length
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] length of %texts%
    • -
    • %texts%'[s] length
    • - -
    -
    Since:2.1
    - -
    - The length of a text, in number of characters. -
    - -
    - - Examples: - -
    - set {_l} to length of the string argument -
    - -
    -
    - - -
    Level
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:unknown (before 2.1)
    - -
    - The level of a player. -
    - -
    - - Examples: - -
    - reduce the victim's level by 1 -
    set the player's level to 0 -
    - -
    -
    - - -
    Level Progress
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] level progress of %players%
    • -
    • %players%'[s] level progress
    • - -
    -
    Since:2.0
    - -
    - The progress a player has made until the next level. Remember that this value is between 0 and 1, not 0 and 100! -Changing this value can cause a 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%. -
    - -
    - - Examples: - -
    - # use the exp bar as mana -
    on rightclick with a blaze rod: -
    player's level progress is larger than 0.2 -
    shoot a fireball from the player -
    reduce the player's level progress by 0.2 -
    every 2 seconds: -
    loop all players: -
    level progress of loop-player is smaller than 0.9: -
    increase level progress of the loop-player by 0.1 -
    else: -
    set level progress of the loop-player to 0.99 -
    on xp spawn: -
    cancel event -
    - -
    -
    - - -
    Light Level
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.3.4
    - -
    - Gets the light level at a certain location which ranges from 0 to 15. -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. -
    - -
    - - Examples: - -
    - # set vampire players standing in bright sunlight on fire -
    every 5 seconds: -
    loop all players: -
    {vampire.%loop-player%} is true -
    sunlight level at the loop-player is greater than 10 -
    ignite the loop-player for 5 seconds -
    - -
    -
    - - -
    Location
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [event-](location|position)
    • - -
    -
    Since:2.0
    - -
    - 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). -
    - -
    - - Examples: - -
    - drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples' -
    set {_loc} to the location 1 meter above the player -
    - -
    -
    - - -
    Location
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - 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). -
    - -
    - - Examples: - -
    - drop 5 apples at the event-location # exactly the same as writing 'drop 5 apples' -
    set {_loc} to the location 1 meter above the player -
    - -
    -
    - - -
    Location
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:
    - -
    - 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). -Please note that the location of an entity is at it's feet, use head location to get the location of the head. -
    - -
    - - Examples: - -
    - set {home.%player%} to the location of the player -
    message "You home was set to %player's location% in %player's world%." -
    - -
    -
    - - -
    Location At
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] (location|position) [at] [\(][x[ ][=[ ]]]%number%, [y[ ][=[ ]]]%number%, [and] [z[ ][=[ ]]]%number%[\)] [[(in|of) [[the] world]] %world%]
    • - -
    -
    Since:2.0
    - -
    - Allows to create a location from three coordinates and a world. -
    - -
    - - Examples: - -
    - set {_loc} to the location at arg-1, arg-2, arg-3 of the world arg-4 -
    distance between the player and the location (0, 0, 0) is less than 200 -
    - -
    -
    - - -
    Loop value
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] loop-<.+>
    • - -
    -
    Since:1.0
    - -
    - The currently looped value. -
    - -
    - - Examples: - -
    - # countdown: -
    loop 10 times: -
    message "%11 - loop-number%" -
    wait a second -
    # generate a 10x10 floor made of randomly coloured wool below the player: -
    loop blocks from the block below the player to the block 10 east of the block below the player: -
    loop blocks from the loop-block to the block 10 north of the loop-block: -
    set loop-block-2 to any wool -
    - -
    -
    - - -
    Lore
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.1
    - -
    - An item's lore. -
    - -
    - - Examples: - -
    - set the 1st line of the item's lore to "Excalibur 2.0" -
    - -
    -
    - - -
    Max Health
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - The maximum health of an entity, e.g. 10 for a player -
    - -
    - - Examples: - -
    - on join: -
    set the maximum health of the player to 100 -
    spawn a giant -
    set the last spawned entity's max health to 1000 -
    - -
    -
    - - -
    Maximum Stack Size
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.1
    - -
    - The maximum stack size of the specified material, e.g. 64 for torches, 16 for buckets, and 1 for swords. -
    - -
    - - Examples: - -
    - send "You can only pick up %max stack size of player's tool% of %type of (player's tool)%" to player -
    - -
    -
    - - -
    Me
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • me
    • -
    • my[self]
    • - -
    -
    Since:2.1.1
    - -
    - A 'me' expression that can be used in effect commands only. -
    - -
    - - Examples: - -
    - !heal me -
    !kick myself -
    !give a diamond axe to me -
    - -
    -
    - - -
    Message
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [chat( |-)]message
    • -
    • [the] (join|log[ ]in)( |-)message
    • -
    • [the] (quit|leave|log[ ]out|kick)( |-)message
    • -
    • [the] death( |-)message
    • - -
    -
    Since:1.4.6 (chat message), 1.4.9 (join & quit messages), 2.0 (death message)
    - -
    - 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. -
    - -
    - - Examples: - -
    - on chat: -
    player has permission "admin" -
    set message to "%message%" -
    -
    on first join: -
    set join message to "Welcome %player% to our awesome server!" -
    on join: -
    player has played before -
    set join message to "Welcome back, %player%!" -
    -
    on quit: -
    set quit message to "%player% left this awesome server!" -
    -
    on death: -
    set the death message to "%player% died!" -
    - -
    -
    - - -
    Metadata
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev36
    - -
    - Metadata is a way to store temporary data on entities, blocks and more thatdisappears after a server restart. -
    - -
    - - Examples: - -
    - set metadata value "healer" of player to true -
    broadcast "%metadata value ""healer"" of player%" -
    clear metadata value "healer" of player -
    - -
    -
    - - -
    Money
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - How much virtual money a player has (can be changed). This expression requires Vault and a compatible economy plugin to be installed. -
    - -
    - - Examples: - -
    - message "You have %player's money%" # the currency name will be added automatically -
    remove 20$ from the player's balance # replace '$' by whatever currency you use -
    add 200 to the player's account # or omit the currency alltogether -
    - -
    -
    - - -
    Moved blocks
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] moved blocks
    • - -
    -
    Since:2.2-dev27
    - -
    - Blocks which are moved in piston event. Cannot be used outside of piston events. -
    - -
    - - Examples: - -
    - the moved blocks -
    - -
    -
    - - -
    Name / Display Name
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] (player|tab)[ ]list name[s] of %players%
    • -
    • %players%'[s] (player|tab)[ ]list name[s]
    • - -
    -
    Since:1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)
    - -
    - 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. -The differences between the different names are: -
      -
    • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
    • -
    • 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).
    • -
    • 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.
    • -
    -
    - -
    - - Examples: - -
    - on join: -
    player has permission "name.red" -
    set the player's display name to "[admin]%name of player%" -
    set the player's tablist name to "%name of player%" -
    set the name of the player's tool to "Legendary Sword of Awesomeness" -
    - -
    -
    - - -
    Name / Display Name
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)
    - -
    - 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. -The differences between the different names are: -
      -
    • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
    • -
    • 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).
    • -
    • 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.
    • -
    -
    - -
    - - Examples: - -
    - on join: -
    player has permission "name.red" -
    set the player's display name to "[admin]%name of player%" -
    set the player's tablist name to "%name of player%" -
    set the name of the player's tool to "Legendary Sword of Awesomeness" -
    - -
    -
    - - -
    Name / Display Name
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.4.6 (players' name & display name), unknown (player list name), 2.0 (item name), 2.2-dev20 (inventory name)
    - -
    - 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. -The differences between the different names are: -
      -
    • name: Minecraft account name of a player (unmodifiable), or the custom name of an item or mob (modifiable).
    • -
    • 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).
    • -
    • 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.
    • -
    -
    - -
    - - Examples: - -
    - on join: -
    player has permission "name.red" -
    set the player's display name to "[admin]%name of player%" -
    set the player's tablist name to "%name of player%" -
    set the name of the player's tool to "Legendary Sword of Awesomeness" -
    - -
    -
    - - -
    Named Item/Inventory
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0, 2.2-dev34 (inventories)
    - -
    - 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 name of <item/inventory> to <text>. -
    - -
    - - Examples: - -
    - give a diamond sword of sharpness 100 named "Excalibur" to the player -
    set tool of player to the player's tool named "Wand" -
    set the name of the player's tool to "Wand" -
    open hopper inventory named "Magic Hopper" to player -
    - -
    -
    - - -
    Now
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • now
    • - -
    -
    Since:1.4
    - -
    - The current system time of the server. Use time to get the Minecraft time of a world. -
    - -
    - - Examples: - -
    - broadcast "Current server time: %now%" -
    - -
    -
    - - -
    Numbers
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all [[of] the]|the)] (numbers|integers) (between|from) %number% (and|to) %number%
    • -
    • %number% times
    • - -
    -
    Since:1.4.6
    - -
    - All numbers between two given numbers, useful for looping. -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. -An integer loop from 1 to a number x can also be written as 'loop x times'. -
    - -
    - - Examples: - -
    - loop 5 times: # loops 1, 2, 3, 4, 5 -
    loop numbers from 2.5 to 5.5: # loops 2.5, 3.5, 4.5, 5.5 -
    loop integers from 2.9 to 5.1: # same as '3 to 5', i.e. loops 3, 4, 5 -
    - -
    -
    - - -
    Offline players
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all [[of] the]|the)] offline[ ]players
    • - -
    -
    Since:2.2-dev35
    - -
    - All player that have ever joined the server. This includes players currently online. -
    - -
    - - Examples: - -
    - send "Size of all players who have joined the server: %size of all offline players%" -
    - -
    -
    - - -
    Opened Inventory
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] (current|open|top) inventory [of %players%]
    • -
    • %players%'[s] (current|open|top) inventory
    • - -
    -
    Since:2.2-dev24, 2.2-dev35 (Just 'current inventory' works in player events)
    - -
    - Return the currently opened inventory of a player. -If no inventory is open, it returns the own player's crafting inventory. -
    - -
    - - Examples: - -
    - set slot 1 of player's current inventory to diamond sword -
    - -
    -
    - - -
    Parse
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • %text% parsed as (%*type%|"<.*>")
    • - -
    -
    Since:2.0
    - -
    - Parses text as a given type, or as a given pattern. -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. -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. -Some notes about parsing with a pattern: -- 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. -- You have to save the expression's value in a list variable, e.g. set {parsed::*} to message parsed as "...". -- 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}. -
    - -
    - - Examples: - -
    - set {var} to line 1 parsed as number -
    on chat: -
    set {var::*} to message parsed as "buying %items% for %money%" -
    if parse error is set: -
    message "%parse error%" -
    else if {var::*} is set: -
    cancel event -
    remove {var::2} from the player's balance -
    give {var::1::*} to the player -
    - -
    -
    - - -
    Parse Error
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [last] [parse] error
    • - -
    -
    Since:2.0
    - -
    - 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. -
    - -
    - - Examples: - -
    - set {var} to line 1 parsed as integer -
    if {var} is not set: -
    parse error is set: -
    message "Line 1 is invalid: %last parse error%" -
    else: -
    message "Please put an integer on line 1!" -
    - -
    -
    - - -
    Passenger
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0, 2.2-dev26 (Multiple passengers for 1.11.2+)
    - -
    - The passenger of a vehicle, or the rider of a mob. -See also: vehicle -For 1.11.2 and above, it returns a list of passengers and you can use all changers in it. -
    - -
    - - Examples: - -
    - #for 1.11 and lower -
    passenger of the minecart is a creeper or a cow -
    the saddled pig's passenger is a player -
    #for 1.11.2+ -
    passengers of the minecart contains a creeper or a cow -
    the boat's passenger contains a pig -
    add a cow and a zombie to passengers of last spawned boat -
    set passengers of player's vehicle to a pig and a horse -
    remove all pigs from player's vehicle -
    clear passengers of boat -
    - -
    -
    - - -
    Ping
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev36
    - -
    - 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. -
    - -
    - - Examples: - -
    - command /ping : -
    trigger: -
    send "%arg-1%'s ping is %arg-1's ping%" -
    - -
    -
    - - -
    Player Weather
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev34
    - -
    - The weather for a player. -
    - -
    - - Examples: - -
    - set weather of arg-player to rainy -
    reset player's weather -
    if arg-player's weather is rainy -
    - -
    -
    - - -
    Potion (item)
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [((regular|normal)|(strong|upgraded|level 2)|(extended|long)) ][((splash|exploding)|lingering) ]potion of %potion%
    • -
    • [((regular|normal)|(strong|upgraded|level 2)|(extended|long)) ][((splash|exploding)|lingering) ]%potion% potion
    • -
    • (water bottle|bottle of water)
    • -
    • potion
    • - -
    -
    Since:unknown (2.2)
    - -
    - Potion in item form, with advanced parameters. -
    - -
    - - Examples: - -
    - strong splash potion of instant damage -
    - -
    -
    - - -
    Prefix/Suffix
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [chat] (prefix|suffix) of %players%
    • -
    • %players%'[s] [chat] (prefix|suffix)
    • - -
    -
    Since:2.0
    - -
    - The prefix or suffix as defined in the server's chat plugin. -
    - -
    - - Examples: - -
    - on chat: -
    cancel event -
    broadcast "%player's prefix%%player's display name%%player's suffix%: %message%" to the player's world -
    set the player's prefix to "[Admin] " -
    - -
    -
    - - -
    Random
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.4.9
    - -
    - Gets a random item out of a set, e.g. a random player out of all players online. -
    - -
    - - Examples: - -
    - give a diamond to a random player out of all players -
    give a random item out of all items to the player -
    - -
    -
    - - -
    Random Number
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [a] random (integer|number) (from|between) %number% (to|and) %number%
    • - -
    -
    Since:1.4
    - -
    - 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. -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. -
    - -
    - - Examples: - -
    - set the player's health to a random number between 5 and 10 -
    send "You rolled a %random integer from 1 to 6%!" to the player -
    - -
    -
    - - -
    Raw Name
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • (raw|minecraft|vanilla) name of %item types%
    • - -
    -
    Since:unknown (2.2)
    - -
    - Raw Minecraft material name for given item. Note that this is not guaranteed to give same results on all servers. -
    - -
    - - Examples: - -
    - raw name of tool of player -
    - -
    -
    - - -
    Region
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [event-]region
    • - -
    -
    Since:2.1
    - -
    - The region involved in an event. -This expression requires a supported regions plugin to be installed. -
    - -
    - - Examples: - -
    - on region enter: -
    region is {forbidden region} -
    cancel the event -
    - -
    -
    - - -
    Region Members & Owners
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all|the)] (members|owner[s]) of [[the] region[s]] %regions%
    • -
    • [[the] region[s]] %regions%'[s] (members|owner[s])
    • - -
    -
    Since:2.1
    - -
    - A list of members or owners of a region. -This expression requires a supported regions plugin to be installed. -
    - -
    - - Examples: - -
    - on entering of a region: -
    message "You're entering %region% whose owners are %owners of region%". -
    - -
    -
    - - -
    Regions At
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.1
    - -
    - All regions at a particular location. -This expression requires a supported regions plugin to be installed. -
    - -
    - - Examples: - -
    - On click on a sign: -
    line 1 of the clicked block is "[region info]" -
    set {_regions::*} to regions at the clicked block -
    if {_regions::*} is empty: -
    message "No regions exist at this sign." -
    else: -
    message "Regions containing this sign: %{_regions::*}%." -
    - -
    -
    - - -
    Remaining Air
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:unknown (before 2.1)
    - -
    - How much time a player has left underwater before starting to drown. -
    - -
    - - Examples: - -
    - player's remaining air is less than 3 seconds: -
    send "hurry, get to the surface!" to the player -
    - -
    -
    - - -
    Respawn location
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] respawn location
    • - -
    -
    Since:2.2-dev35
    - -
    - The location that a player should respawn at. This is used within the respawn event. -
    - -
    - - Examples: - -
    - on respawn: -
    set respawn location to {example::spawn} -
    - -
    -
    - - -
    Rounding
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(a|the)] round[ed] down %number%
    • -
    • [(a|the)] round[ed] %number%
    • -
    • [(a|the)] round[ed] up %number%
    • - -
    -
    Since:2.0
    - -
    - Rounds numbers normally, up (ceiling) or down (floor) respectively -
    - -
    - - Examples: - -
    - set {var} to rounded health of player -
    set line 1 of the block to round(1.5 * player's level) -
    set {_x} to floor({_y}) - ceil({_x}) -
    add rounded down argument to the player's health -
    - -
    -
    - - -
    Saturation
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-Fixes-v10, 2.2-dev35 (fully modifiable)
    - -
    - The saturation of a player. If used in a player event, it can be omitted and will default to event-player. -
    - -
    - - Examples: - -
    - set saturation of player to 20 -
    - -
    -
    - - -
    Script Name
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] script[['s] name]
    • - -
    -
    Since:2.0
    - -
    - Holds the current script's name (the file name without '.sk'). -
    - -
    - - Examples: - -
    - on script load: -
    set {running.%script%} to true -
    on script unload: -
    set {running.%script%} to false -
    - -
    -
    - - -
    Shooter
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.3.7
    - -
    - The shooter of a projectile. -
    - -
    - - Examples: - -
    - shooter is a skeleton -
    - -
    -
    - - -
    Shuffled List
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev32
    - -
    - Shuffles given list randomly. This is done by replacing indices by random numbers in resulting list. -
    - -
    - - Examples: - -
    - set {_list::*} to shuffled {_list::*} -
    - -
    -
    - - -
    Sign Text
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] line %number% [of %block%]
    • -
    • [the] (1st|first|2nd|second|3rd|third|4th|fourth) line [of %block%]
    • - -
    -
    Since:1.3
    - -
    - 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). -
    - -
    - - Examples: - -
    - on rightclick on sign: -
    line 2 of the clicked block is "[Heal]": -
    heal the player -
    set line 3 to "%player%" -
    - -
    -
    - - -
    Skull
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - Gets a skull item representing a player or an entity. -
    - -
    - - Examples: - -
    - give the victim's skull to the attacker -
    set the block at the entity to the entity's skull -
    - -
    -
    - - -
    Slot Index
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] (index|indices) of %slots%
    • -
    • %slots%'[s] (index|indices)
    • - -
    -
    Since:2.2-dev35
    - -
    - 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. -
    - -
    - - Examples: - -
    - -
    - -
    -
    - - -
    Sorted List
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev19
    - -
    - Sorts given list in natural order. All objects in list must be comparable; usually if you think you can compare it, it can be compared. -
    - -
    - - Examples: - -
    - set {_list::*} to sorted {_list::*} -
    - -
    -
    - - -
    Spawn
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] spawn[s] [(point|location)[s]] [of %worlds%]
    • -
    • %worlds%'[s] spawn[s] [(point|location)[s]]
    • - -
    -
    Since:1.4.2
    - -
    - The spawnpoint of a world. -
    - -
    - - Examples: - -
    - teleport all players to spawn -
    set the spawn point of "world" to the player's location -
    - -
    -
    - - -
    Special Number
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • (NaN|[(-|minus)](infinity|∞)) value
    • -
    • value of (NaN|[(-|minus)](infinity|∞))
    • - -
    -
    Since:2.2-dev32d
    - -
    - Special number values, namely NaN, Infinity and -Infinity -
    - -
    - - Examples: - -
    - if {_number} is NaN value: -
    - -
    -
    - - -
    Spectator Target
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] spectator target of %players%
    • -
    • %players%'[s] spectator target
    • - -
    -
    Since:2.2-dev37
    - -
    - The entity a player is currently spectating. This can be set and cleared whenthe given player is in spectator mode. -
    - -
    - - Examples: - -
    - set spectator target of player to last spawned creeper -
    - -
    -
    - - -
    Speed
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] (walk[ing]|fl(y[ing]|ight))[( |-])speed of %players%
    • -
    • %players%'[s] (walk[ing]|fl(y[ing]|ight))[( |-])speed
    • - -
    -
    Since:unknown (before 2.1)
    - -
    - 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. -Please note that changing a player's speed will change his FOV just like potions do. -
    - -
    - - Examples: - -
    - set the player's walk speed to 1 -
    increase the argument's fly speed by 0.1 -
    - -
    -
    - - -
    Subtext
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] [(part|sub[ ](text|string)) of %texts% (between|from) (ind(ex|ices)|character[s])] %number% [(and|to) (index|character)] %number%
    • -
    • [the] (first|last) [%number%] character[s] of %texts%
    • -
    • [the] %number% (first|last) characters of %texts%
    • - -
    -
    Since:2.1
    - -
    - 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). -
    - -
    - - Examples: - -
    - set {_s} to the first 5 characters of the text argument -
    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 -
    - -
    -
    - - -
    TPS (ticks per second)
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • tps from [the] last ([1] minute|1[ ]m[inute])
    • -
    • tps from [the] last 5[ ]m[inutes]
    • -
    • tps from [the] last 15[ ]m[inutes]
    • -
    • [the] tps
    • - -
    -
    Since:2.2-dev36
    - -
    - Returns the 3 most recent TPS readings, like the /tps command. This expression is only supported on some server software. -
    - -
    - - Examples: - -
    - broadcast "%tps%" -
    - -
    -
    - - -
    Tamer
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] tamer
    • - -
    -
    Since:2.2-dev25
    - -
    - The tamer of an entity. Can only be used in entity tame events. You can use 'event-entity' to refer tamed entity itself. -
    - -
    - - Examples: - -
    - -
    - -
    -
    - - -
    Target
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:unknown (before 2.1)
    - -
    - 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). -
    - -
    - - Examples: - -
    - on entity target: -
    entity's target is a player -
    send "You're being followed by an %entity%!" to target of entity -
    - -
    -
    - - -
    Targeted Block
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] target[ed] block[s] [of %players%]
    • -
    • %players%'[s] target[ed] block[s]
    • -
    • [the] actual[ly] target[ed] block[s] [of %players%]
    • -
    • %players%'[s] actual[ly] target[ed] block[s]
    • - -
    -
    Since:1.0
    - -
    - The block at the crosshair. This regards all blocks that are not air as fully opaque, e.g. torches will be like a solid stone block for this expression. -
    - -
    - - Examples: - -
    - # A command to set the block a player looks at to a specific type: -
    command /setblock : -
    trigger: -
    set targeted block to argument -
    - -
    -
    - - -
    Teleport Cause
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] teleport (cause|reason|type)
    • - -
    -
    Since:2.2-dev35
    - -
    - The teleport cause within a player teleport event. -
    - -
    - - Examples: - -
    - teleport cause is nether portal, end portal or end gateway -
    - -
    -
    - - -
    Temperature
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] temperature[s] of %blocks%
    • -
    • %blocks%'[s] temperature[s]
    • - -
    -
    Since:2.2-dev35
    - -
    - Temperature at given block. -
    - -
    - - Examples: - -
    - -
    - -
    -
    - - -
    Ternary
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev36
    - -
    - A shorthand expression for returning something based on a condition. -
    - -
    - - Examples: - -
    - set {points} to 500 if {admin::%player's uuid%} is set else 100 -
    - -
    -
    - - -
    Time
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] time[s] [([with]in|of) %worlds%]
    • -
    • %worlds%'[s] time[s]
    • - -
    -
    Since:1.0
    - -
    - The time of a world. -
    - -
    - - Examples: - -
    - time in world is between 18:00 and 6:00: -
    broadcast "It's night-time, watch out for monsters!" -
    - -
    -
    - - -
    Tool
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.0
    - -
    - The item a player is holding. -
    - -
    - - Examples: - -
    - player is holding a pickaxe -
    # is the same as -
    player's tool is a pickaxe -
    player's off hand tool is shield #Only for Minecraft 1.9 -
    - -
    -
    - - -
    Type of
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.4
    - -
    - The type of a block/item or entity. The type of an item is only it's id and data value, i.e. it ignores the amount, enchantments etc., and the type of an entity is e.g. 'wolf' or 'player'. -
    - -
    - - Examples: - -
    - on rightclick on an entity: -
    message "This is a %type of clicked entity%!" -
    - -
    -
    - - -
    UUID
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.1.2, 2.2 (offline players' UUIDs), 2.2-dev24 (other entities' UUIDs)
    - -
    - The UUID of a player, entity or world. -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. -Please note that this expression does not work for offline players if you are under 1.8! -
    - -
    - - Examples: - -
    - # prevents people from joining the server if they use the name of a player -
    # who has played on this server at least once since this script has been added -
    on login: -
    {uuids.%name of player%} exists: -
    {uuids.%name of player%} is not UUID of player -
    kick player due to "Someone with your name has played on this server before" -
    else: -
    set {uuids.%name of player%} to UUID of player -
    - -
    -
    - - -
    Unbreakable Items
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev13b
    - -
    - Creates unbreakable copies of given items. -
    - -
    - - Examples: - -
    - unbreakable iron sword #Creates unbreakable iron sword -
    - -
    -
    - - -
    Unix Timestamp
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] unix timestamp of %dates%
    • -
    • %dates%'[s] unix timestamp
    • - -
    -
    Since:2.2-dev31
    - -
    - Converts given date to Unix timestamp. This is roughly how many seconds have elapsed since 1 January 1970. -
    - -
    - - Examples: - -
    - unix timestamp of now -
    - -
    -
    - - -
    Upper/lower Case Text
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • %text% in (upper|lower) case
    • -
    • capitalized %text%
    • - -
    -
    Since:2.2-dev16
    - -
    - Copy of given text in upper or lower case. -
    - -
    - - Examples: - -
    - "oops!" in upper case # OOPS! -
    - -
    -
    - - -
    Vectors - Angle between
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Gets the angle between two vectors -
    - -
    - - Examples: - -
    - send "%angle between vector 1, 0, 0 and vector 0, 1, 1%" -
    - -
    -
    - - -
    Vectors - Arithmetic
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Arithmetic expressions for vectors -
    - -
    - - Examples: - -
    - set {_v} to vector 1, 2, 3 // 5 -
    set {_v} to {_v} ++ {_v} -
    set {_v} to {_v} ++ 5 -
    set {_v} to {_v} -- {_v} -
    set {_v} to {_v} -- 5 -
    set {_v} to {_v} ** {_v} -
    set {_v} to {_v} ** 5 -
    set {_v} to {_v} // {_v} -
    set {_v} to {_v} // 5 -
    - -
    -
    - - -
    Vectors - Between locations
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Creates a vector between two locations -
    - -
    - - Examples: - -
    - set {_v} to vector between {_loc1} and {_loc2} -
    - -
    -
    - - -
    Vectors - Coordinate
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Gets or sets the x, y or z coordinate of a vector -
    - -
    - - Examples: - -
    - set {_v} to vector 1, 2, 3 -
    send "%x of {_v}%, %y of {_v}%, %z of {_v}%" -
    add 1 to x of {_v} -
    add 2 to y of {_v} -
    add 3 to z of {_v} -
    send "%x of {_v}%, %y of {_v}%, %z of {_v}%" -
    set x of {_v} to 1 -
    set y of {_v} to 2 -
    set z of {_v} to 3 -
    send "%x of {_v}%, %y of {_v}%, %z of {_v}%" -
    - -
    -
    - - -
    Vectors - Create from XYZ
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Creates a vector from an x, y and z value -
    - -
    - - Examples: - -
    - set {_v} to vector 0, 1, 0 -
    - -
    -
    - - -
    Vectors - Create from location
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Creates a vector from a location -
    - -
    - - Examples: - -
    - set {_v} to vector of {_loc} -
    - -
    -
    - - -
    Vectors - Create from pitch and yaw
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Creates a vector from a yaw and pitch value -
    - -
    - - Examples: - -
    - set {_v} to vector from yaw 45 and pitch 45 -
    - -
    -
    - - -
    Vectors - Cross product
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Gets the cross product between two vectors -
    - -
    - - Examples: - -
    - send "%vector 1, 0, 0 cross vector 0, 1, 0%" -
    - -
    -
    - - -
    Vectors - Cylindrical shape
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [new] cylindrical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [height] %number%
    • - -
    -
    Since:2.2-dev28
    - -
    - Forms a 'cylindrical shaped' vector using yaw to manipulate the current point -
    - -
    - - Examples: - -
    - loop 360 times: -
    set {_v} to cylindrical vector radius 1, yaw loop-value, height 2 -
    set {_v} to cylindrical vector radius 1, yaw 90, height 2 -
    - -
    -
    - - -
    Vectors - Dot product
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Gets the dot product between two vectors -
    - -
    - - Examples: - -
    - set {_v} to {_v2} dot {_v3} -
    - -
    -
    - - -
    Vectors - Length
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • (vector|standard|normal) length of %vector%
    • -
    • %vector%['s] (vector|standard|normal) length
    • - -
    -
    Since:2.2-dev28
    - -
    - Gets or sets the length of a vector -
    - -
    - - Examples: - -
    - send "%standard length of vector 1, 2, 3%" -
    set {_v} to vector 1, 2, 3 -
    set standard length of {_v} to 2 -
    send "%standard length of {_v}%" -
    - -
    -
    - - -
    Vectors - Location vector offset
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Offset a location by a vector -
    - -
    - - Examples: - -
    - set {_loc} to {_loc} ~ {_v} -
    - -
    -
    - - -
    Vectors - Normalize
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev28
    - -
    - Normalizes a vector -
    - -
    - - Examples: - -
    - set {_v} to {_v} normalized -
    - -
    -
    - - -
    Vectors - Random
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • random vector
    • - -
    -
    Since:2.2-dev28
    - -
    - Creates a random vector -
    - -
    - - Examples: - -
    - set {_v} to random vector -
    - -
    -
    - - -
    Vectors - Spherical shape
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [new] spherical vector [(from|with)] [radius] %number%, [yaw] %number%(,| and) [pitch] %number%
    • - -
    -
    Since:2.2-dev28
    - -
    - Forms a 'spherical shaped' vector using yaw and pitch to manipulate the current point -
    - -
    - - Examples: - -
    - loop 360 times: -
    set {_v} to spherical vector radius 1, yaw loop-value, pitch loop-value -
    set {_v} to spherical vector radius 1, yaw 45, pitch 90 -
    - -
    -
    - - -
    Vectors - Squared length
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • squared length of %vector%
    • -
    • %vector%['s] squared length
    • - -
    -
    Since:2.2-dev28
    - -
    - Gets the squared length of a vector -
    - -
    - - Examples: - -
    - send "%squared length of vector 1, 2, 3%" -
    - -
    -
    - - -
    Vectors - Velocity
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.2-dev31
    - -
    - Gets, sets, adds or removes velocity to/from/of an entity -
    - -
    - - Examples: - -
    - set player's velocity to {_v} -
    - -
    -
    - - -
    Vectors - Yaw and pitch
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • vector (yaw|pitch) of %vector%
    • - -
    -
    Since:2.2-dev28
    - -
    - Gets or sets the yaw or pitch value of a vector -
    - -
    - - Examples: - -
    - set {_v} to vector -1, 1, 1 -
    send "%vector yaw of {_v}%, %vector pitch of {_v}%" -
    add 45 to vector yaw of {_v} -
    subtract 45 from vector pitch of {_v} -
    send "%vector yaw of {_v}%, %vector pitch of {_v}%" -
    set vector yaw of {_v} to -45 -
    set vector pitch of {_v} to 45 -
    send "%vector yaw of {_v}%, %vector pitch of {_v}%" -
    - -
    -
    - - -
    Vehicle
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - 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. -See also: passenger -
    - -
    - - Examples: - -
    - vehicle of the player is a minecart -
    - -
    -
    - - -
    Version
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • ([craft]bukkit|minecraft|skript)( |-)version
    • - -
    -
    Since:2.0
    - -
    - The version of Bukkit, Minecraft or Skript respectively. -
    - -
    - - Examples: - -
    - message "This server is running Minecraft %minecraft version% on Bukkit %bukkit version%" -
    message "This server is powered by Skript %skript version%" -
    - -
    -
    - - -
    Weather
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] weather [(in|of) %worlds%]
    • -
    • %worlds%'[s] weather
    • - -
    -
    Since:1.0
    - -
    - The weather in the given or the current world. -
    - -
    - - Examples: - -
    - set weather to clear -
    weather in "world" is rainy -
    - -
    -
    - - -
    World
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.0
    - -
    - The world the event occurred in. -
    - -
    - - Examples: - -
    - world is "world_nether" -
    teleport the player to the world's spawn -
    set the weather in the player's world to rain -
    - -
    -
    - - -
    World Seed
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [the] seed[s] (from|of) %worlds%
    • -
    • %worlds%'[s] seed[s]
    • - -
    -
    Since:2.2-dev35
    - -
    - The seed of given world. Note that it will be returned as Minecraft internally treats seeds, not as you specified it in world configuration. -
    - -
    - - Examples: - -
    - broadcast "Seed: %seed of player's world%" -
    - -
    -
    - - -
    Worlds
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • [(all [[of] the]|the)] worlds
    • - -
    -
    Since:1.0
    - -
    - All worlds of the server, useful for looping. -
    - -
    - - Examples: - -
    - loop all worlds: -
    broadcast "You're in %loop-world%" to loop-world -
    - -
    -
    - - -
    X of Item
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:1.2
    - -
    - An expression to be able to use a certain amount of items where the amount can be any expression. Please note that is expression is not stable and might be replaced in the future. -
    - -
    - - Examples: - -
    - give level of player of pickaxes to the player -
    - -
    -
    - - -
    Yaw / Pitch
    -
    - - - - - - - - - - - - -
    Pattern: - -
    Since:2.0
    - -
    - The yaw or pitch of a location. You likely won't need this expression ever if you don't know what this means. -
    - -
    - - Examples: - -
    - log "%player%: %location of player%, %player's yaw%, %player's pitch%" to "playerlocs.log" -
    - -
    -
    - - - - - - diff --git a/old/functions.html b/old/functions.html deleted file mode 100644 index 754a2b6cd21..00000000000 --- a/old/functions.html +++ /dev/null @@ -1,1079 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
    -

    Functions

    - -

    - These functions are defined by Skript. You may also create your own functions! - Tutorial for doing so is planned, but right now you need to seek it elsewhere. -

    - - - -
    abs
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • abs(n: number)
    • - -
    -
    Since:2.2
    - -
    - Returns the absolute value of the argument, i.e. makes the argument positive. -
    - -
    - - Examples: - -
    - abs(3) = 3 -
    abs(-2) = 2 -
    - -
    -
    - - -
    acos
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • acos(n: number)
    • - -
    -
    Since:2.2
    - -
    - The inverse of the cosine, also called arccos. Returns result in degrees, not radians. Only returns values from 0 to 180. -
    - -
    - - Examples: - -
    - acos(0) = 90 -
    acos(1) = 0 -
    acos(0.5) = 30 -
    - -
    -
    - - -
    asin
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • asin(n: number)
    • - -
    -
    Since:2.2
    - -
    - The inverse of the sine, also called arcsin. Returns result in degrees, not radians. Only returns values from -90 to 90. -
    - -
    - - Examples: - -
    - asin(0) = 0 -
    asin(1) = 90 -
    asin(0.5) = 30 -
    - -
    -
    - - -
    atan
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • atan(n: number)
    • - -
    -
    Since:2.2
    - -
    - The inverse of the tangent, also called arctan. Returns result in degrees, not radians. Only returns values from -90 to 90. -
    - -
    - - Examples: - -
    - atan(0) = 0 -
    atan(1) = 45 -
    atan(10000) = 89.9943 -
    - -
    -
    - - -
    atan2
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • atan2(x: number, y: number)
    • - -
    -
    Since:2.2
    - -
    - Similar to atan, but requires two coordinates and returns values from -180 to 180. -The returned angle is measured counterclockwise in a standard mathematical coordinate system (x to the right, y to the top). -
    - -
    - - Examples: - -
    - atan2(0, 1) = 0 -
    atan2(10, 0) = 90 -
    atan2(-10, 5) = -63.4349 -
    - -
    -
    - - -
    calcExperience
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • calcExperience(level: long)
    • - -
    -
    Since:2.2-dev32
    - -
    - Calculates experience needed to achieve given level in Minecraft. -
    - -
    - - Examples: - -
    - -
    - -
    -
    - - -
    ceil
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • ceil(n: number)
    • - -
    -
    Since:2.2
    - -
    - Rounds a number up, i.e. returns the closest integer larger than or equal to the argument. -
    - -
    - - Examples: - -
    - ceil(2.34) = 3 -
    ceil(2) = 2 -
    ceil(2.99) = 3 -
    - -
    -
    - - -
    ceiling
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • ceiling(n: number)
    • - -
    -
    Since:2.2
    - -
    - Alias of ceil. -
    - -
    - - Examples: - -
    - ceiling(2.34) = 3 -
    ceiling(2) = 2 -
    ceiling(2.99) = 3 -
    - -
    -
    - - -
    cos
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • cos(n: number)
    • - -
    -
    Since:2.2
    - -
    - 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. -
    - -
    - - Examples: - -
    - cos(0) = 1 -
    cos(90) = 0 -
    - -
    -
    - - -
    date
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • 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]])
    • - -
    -
    Since:2.2
    - -
    - Creates a date from a year, month, and day, and optionally also from hour, minute, second and millisecond. -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). -
    - -
    - - Examples: - -
    - date(2014, 10, 1) # 0:00, 1st October 2014 -
    date(1990, 3, 5, 14, 30) # 14:30, 5th May 1990 -
    date(1999, 12, 31, 23, 59, 59, 999, -3*60, 0) # almost year 2000 in parts of Brazil (-3 hours offset, no DST) -
    - -
    -
    - - -
    exp
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • exp(n: number)
    • - -
    -
    Since:2.2
    - -
    - The exponential function. You probably don't need this if you don't know what this is. -
    - -
    - - Examples: - -
    - exp(0) = 1 -
    exp(1) = 2.7183 -
    - -
    -
    - - -
    floor
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • floor(n: number)
    • - -
    -
    Since:2.2
    - -
    - Rounds a number down, i.e. returns the closest integer smaller than or equal to the argument. -
    - -
    - - Examples: - -
    - floor(2.34) = 2 -
    floor(2) = 2 -
    floor(2.99) = 2 -
    - -
    -
    - - -
    ln
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • ln(n: number)
    • - -
    -
    Since:2.2
    - -
    - The natural logarithm. You probably don't need this if you don't know what this is. -Returns NaN (not a number) if the argument is negative. -
    - -
    - - Examples: - -
    - ln(1) = 0 -
    ln(exp(5)) = 5 -
    ln(2) = 0.6931 -
    - -
    -
    - - -
    location
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • location(x: number, y: number, z: number, world: world = event-world, yaw: number = [[integer:0]], pitch: number = [[integer:0]])
    • - -
    -
    Since:2.2
    - -
    - Creates a location from a world and 3 coordinates, with an optional yaw and pitch. -
    - -
    - - Examples: - -
    - location(0, 128, 0) -
    location(player's x-coordinate, player's y-coordinate + 5, player's z-coordinate, player's world, 0, 90) -
    - -
    -
    - - -
    log
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • log(n: number, base: number = [[integer:10]])
    • - -
    -
    Since:2.2
    - -
    - 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'. -Another useful equation is base ^ log(a, base) = a for any numbers 'base' and 'a'. -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. -Returns NaN (not a number) if any of the arguments are negative. -
    - -
    - - Examples: - -
    - log(100) = 2 # 10^2 = 100 -
    log(16, 2) = 4 # 2^4 = 16 -
    - -
    -
    - - -
    max
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • max(ns: numbers)
    • - -
    -
    Since:2.2
    - -
    - Returns the maximum number from a list of numbers. -
    - -
    - - Examples: - -
    - max(1) = 1 -
    max(1, 2, 3, 4) = 4 -
    max({some list variable::*}) -
    - -
    -
    - - -
    min
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • min(ns: numbers)
    • - -
    -
    Since:2.2
    - -
    - Returns the minimum number from a list of numbers. -
    - -
    - - Examples: - -
    - min(1) = 1 -
    min(1, 2, 3, 4) = 1 -
    min({some list variable::*}) -
    - -
    -
    - - -
    mod
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • mod(d: number, m: number)
    • - -
    -
    Since:2.2
    - -
    - 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. -The returned value is always positive. Returns NaN (not a number) if the second argument is zero. -
    - -
    - - Examples: - -
    - mod(3, 2) = 1 -
    mod(256436, 100) = 36 -
    mod(-1, 10) = 9 -
    - -
    -
    - - -
    product
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • product(ns: numbers)
    • - -
    -
    Since:2.2
    - -
    - Calculates the product of a list of numbers. -
    - -
    - - Examples: - -
    - product(1) = 1 -
    product(2, 3, 4) = 24 -
    product({some list variable::*}) -
    product(2, {_v::*}, and the player's y-coordinate) -
    - -
    -
    - - -
    round
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • round(n: number)
    • - -
    -
    Since:2.2
    - -
    - Rounds a number, i.e. returns the closest integer to the argument. -
    - -
    - - Examples: - -
    - round(2.34) = 2 -
    round(2) = 2 -
    round(2.99) = 3 -
    round(2.5) = 3 -
    - -
    -
    - - -
    sin
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • sin(n: number)
    • - -
    -
    Since:2.2
    - -
    - 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. -
    - -
    - - Examples: - -
    - sin(90) = 1 -
    sin(60) = 0.866 -
    - -
    -
    - - -
    sqrt
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • sqrt(n: number)
    • - -
    -
    Since:2.2
    - -
    - 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). -Returns NaN (not a number) if the argument is negative. -
    - -
    - - Examples: - -
    - sqrt(4) = 2 -
    sqrt(2) = 1.4142 -
    sqrt(-1) = NaN -
    - -
    -
    - - -
    sum
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • sum(ns: numbers)
    • - -
    -
    Since:2.2
    - -
    - Sums a list of numbers. -
    - -
    - - Examples: - -
    - sum(1) = 1 -
    sum(2, 3, 4) = 9 -
    sum({some list variable::*}) -
    sum(2, {_v::*}, and the player's y-coordinate) -
    - -
    -
    - - -
    tan
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • tan(n: number)
    • - -
    -
    Since:2.2
    - -
    - The tangent function. This is basically sin(arg)/cos(arg). Uses degrees, not radians. -
    - -
    - - Examples: - -
    - tan(0) = 0 -
    tan(45) = 1 -
    tan(89.99) = 5729.5779 -
    - -
    -
    - - -
    vector
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • vector(x: number, y: number, z: number)
    • - -
    -
    Since:2.2-dev23
    - -
    - Creates a new vector, which can be used with various expressions, effects and functions. -
    - -
    - - Examples: - -
    - vector(0, 0, 0) -
    - -
    -
    - - -
    world
    -
    - - - - - - - - - - - - -
    Pattern: -
      -
    • world(name: string)
    • - -
    -
    Since:2.2
    - -
    - Gets a world from its name. -
    - -
    - - Examples: - -
    - set {_nether} to world("%{_world}%_nether") -
    - -
    -
    - - -
    - - - diff --git a/old/index.html b/old/index.html deleted file mode 100644 index 244c2f16d84..00000000000 --- a/old/index.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
    -

    Skript Documentation

    - -

    - Skript is a (surprise, surprise) a scripting plugin for Bukkit platform. It - is easy to use for simple tasks, but yet you can create really complex things - with it. The syntax of Skript is close to English, but it is still not magic. - While for simple tasks you might succeed with experimentation, for anything - more complex you will need some guidance. -

    - -

    - This is Skript documentation. You will find all supported features of Skript - plugin here. You might also find some useful examples, in case you need more - than what was shipped with Skript distribution. We do not currently have - tutorial here, but you can find good ones using (whatever) search engine you prefer. -

    - -

    - Found something incorrect in this documentation? Please report - it to issue tracker. -

    -

    - Looking for docs authors! - Currently, the only documentation is generated automatically. It would be - nice to have some tutorials etc. here. For example, currently we don't have - a tutorial on how to use loops here; makes it harder for newcomers to learn. - Check this issue for - details and discussion about topic. -

    - -
    - - - diff --git a/old/text.html b/old/text.html deleted file mode 100644 index 4bf73e80b13..00000000000 --- a/old/text.html +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - Skript Documentation - 2.2-dev37c - - - - - - -
    -

    Using Text in Scripts

    - -Skript allows you to write pieces of text (programmers usually call them strings) -in the scripts. This is done by putting the text inside double quotes, as follows: -
    -"this is text" -
    -Simple, isn't it? If an effect, expression, condition, trigger or function -accepts something of type text or string, you can use this format to write it -right there! -

    Formatting Text

    -But isn't just text a bit boring? Worry not, as Minecraft has support for colors, -styles and other formatting options in chat. Most of the options also work with -item and entity names. - -

    Colors

    -Minecraft has 16 pre-set color codes to be used in text. Skript supports them -in two different ways: -
      -
    • Color name tags, for example <red>
    • -
    • (Old) Minecraft color codes, like §c; using & works, too
    • -
    -

    -Here's a table of all colors, including both Skript names and color codes: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CodeNameAlternative Names
    §0black
    §1bluedark blue
    §2greendark green
    §3cyanaqua, dark cyan, dark aqua, dark turquoise, dark turquois
    §4reddark red
    §5purpledark purple
    §6orangeorange, gold, dark yellow
    §7greylight grey, gray, light gray, silver
    §8greylight grey, gray, light gray, silver
    §9light bluelight blue, indigo
    §alight greenlime, lime green
    §blight cyanlight aqua, turquoise, turquois, light blue
    §clight redpink
    §dmagentalight purple
    §eyellowlight yellow
    §fwhite
    -For information not related to Skript, see -Minecraft -Wiki page concerning colors. - -Note that depending on Skript configuration, color codes may do more than just -change color of text after them. By default, for backwards compatibility, they -clear following styles: magic, bold, strikethrough, underlined, italic. Other -styles are not affected, and this feature can be toggled of in config.sk. - -

    Other Styles

    -Minecraft also has various other styles available. The following are available -everywhere, including item and entity names: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CodeNameAlternative Names
    §kmagicobfuscated
    §lboldb
    §mstrikethroughstrike, s
    §nunderlinedunderline, u
    §oitalicitalics, i
    §rresetr
    -If it wasn't clear from the table, §r clears all other formatting and colors. -You'll probably use it quite often when sending chat messages from scripts. -

    -Skript also supports certain newer features, which are only available in chat. -Those do not have formatting codes, so you must use tags for them. - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameAlternative NamesDescription
    linkopen url, urlOpens a link when player clicks on text
    run commandcommand, cmdMakes player execute a chat command when they click on text
    suggest commandAdds a command to chat prompt of player when clicked
    tooltipshow textShows a tooltip when player hovers over text with their mouse
    - -All of these styles require a parameter, in format -<name:parameter> -For link, parameter must be either http or https url if you want clients to -recognize it. For others, it can be any text you'd like -(you can make player run invalid commands if you wish). - -

    Text and Variables

    -Variable names are text, but obviously formatting that text does no good. -However, everything else you can do for text, you can do for variable names. -A guide about this is coming... some day. -

    -Guide written by bensku. - -

    - - - diff --git a/text.html b/text.html index 646fe947629..3a669055242 100644 --- a/text.html +++ b/text.html @@ -1 +1,2 @@ - Skript Documentation - 2.6-beta1

    Text in Scripts

    Skript allows you to write pieces of text (programmers usually call them strings) in the scripts. This is done by putting the text inside double quotes, as follows:
    "this is text"
    Simple, isn't it? If an effect, expression, condition, trigger or function accepts something of type text or string, you can use this format to write it right there!

    Formatting Text

    But isn't just text a bit boring? Worry not, as Minecraft has support for colors, styles and other formatting options in chat. Most of the options also work with item and entity names.

    Colors

    Minecraft has 16 pre-set color codes to be used in text. Skript supports them in two different ways:
    • Color name tags, for example <red>
    • (Old) Minecraft color codes, like §c; using & works, too

    Here's a table of all colors, including both Skript names and color codes:
    Code Name Alternative Names
    §0 black
    §1 blue dark blue
    §2 green dark green
    §3 cyan aqua, dark cyan, dark aqua, dark turquoise, dark turquois
    §4 red dark red
    §5 purple dark purple
    §6 orange orange, gold, dark yellow
    §7 grey light grey, gray, light gray, silver
    §8 grey light grey, gray, light gray, silver
    §9 light blue light blue, indigo
    §a light green lime, lime green
    §b light cyan light aqua, turquoise, turquois, light blue
    §c light red pink
    §d magenta light purple
    §e yellow light yellow
    §f white

    In Minecraft 1.16, support was added for 6-digit hexadecimal colors to specify custom colors other than the 16 default color codes. A new tag can be used to format with these colors. The tag looks like this: <#hex code>.
    Here's what the tag would look like when used in a script: send "<#123456>Hey %player%!" to player

    For information not related to Skript, see Minecraft Wiki page concerning colors. Note that depending on Skript configuration, color codes may do more than just change color of text after them. By default, for backwards compatibility, they clear following styles: magic, bold, strikethrough, underlined, italic. Other styles are not affected, and this feature can be toggled of in config.sk.

    Other Styles

    Minecraft also has various other styles available. The following are available everywhere, including item and entity names:
    Code Name Alternative Names
    §k magic obfuscated
    §l bold b
    §m strikethrough strike, s
    §n underlined underline, u
    §o italic italics, i
    §r reset r
    If it wasn't clear from the table, §r clears all other formatting and colors. You'll probably use it quite often when sending chat messages from scripts.

    Skript also supports certain newer features, which are only available in chat. Those do not have formatting codes, so you must use tags for them.
    Name Alternative Names Description
    link open url, url Opens a link when player clicks on text
    run command command, cmd Makes player execute a chat command when they click on text
    suggest command Adds a command to chat prompt of player when clicked
    tooltip show text Shows a tooltip when player hovers over text with their mouse
    font f Change the font of the text 1.16+
    All of these styles require a parameter, in format <name:parameter> For link, parameter must be either http or https url if you want clients to recognize it. For others, it can be any text you'd like (you can make player run invalid commands if you wish).

    Text and Variables

    Variable names are text, but obviously formatting that text does no good. However, everything else you can do for text, you can do for variable names. A guide about this is coming... some day.

    Guide written by bensku.

    \ No newline at end of file + Skript Documentation - 2.6-beta3

    Text in Scripts

    Text (String)

    Skript allows you to write pieces of text (programmers usually call them strings) in the scripts. This is done by putting the text inside double quotes, as follows:

    "this is text"

    Simple, isn't it? If an effect, expression, condition, trigger or function accepts something of type text or string, you can use this format to write it right there!

    Formatting Text

    But isn't just text a bit boring? Worry not, as Minecraft has support for colors, styles and other formatting options in chat. Most of the options also work with item and entity names.

    Colors

    Minecraft has 16 pre-set color codes to be used in text. Skript supports them in two different ways:

    Color name tags, for example <red> + Minecraft color codes, like §c; using & works, too

    Here's a table of all colors, including both Skript names and color codes:

    Color Code Name Alternative Names
    §0 black
    §1 blue dark blue
    §2 green dark green
    §3 cyan aqua, dark cyan, dark aqua, dark turquoise, dark turquois
    §4 red dark red
    §5 purple dark purple
    §6 orange orange, gold, dark yellow
    §7 grey light grey, gray, light gray, silver
    §8 grey light grey, gray, light gray, silver
    §9 light blue light blue, indigo
    §a light green lime, lime green
    §b light cyan light aqua, turquoise, turquois, light blue
    §c light red pink
    §d magenta light purple
    §e yellow light yellow
    §f white

    In Minecraft 1.16, support was added for 6-digit hexadecimal colors to specify custom colors other than the 16 default color codes. A new tag can be used to format with these colors. The tag looks like this:

    <##hex code>

    Here's what the tag would look like when used in a script:

    send "<##123456>Hey %player%!" to player

    For information not related to Skript, see Minecraft Wiki page concerning colors. Note that depending on Skript configuration, color codes may do more than just change color of text after them. By default, for backwards compatibility, they clear following styles: magic, bold, strikethrough, underlined, italic. Other styles are not affected, and this feature can be toggled of in config.sk.

    Other Styles

    Minecraft also has various other styles available. The following are available everywhere, including item and entity names:

    Code Name Alternative Names
    §k magic test obfuscated
    §l bold b
    §m strikethrough strike, s
    §n underlined underline, u
    §o italic italics, i
    §r reset r

    If it wasn't clear from the table, §r clears all other formatting and colors. You'll probably use it quite often when sending chat messages from scripts.

    Skript also supports certain newer features, which are only available in chat. Those do not have formatting codes, so you must use tags for them.

    Name Alternative Names Description
    link open url, url Opens a link when player clicks on text
    run command command, cmd Makes player execute a chat command when they click on text
    suggest command sgt Adds a command to chat prompt of player when clicked
    tooltip show text, ttp Shows a tooltip when player hovers over text with their mouse
    insertion insert, ins Will append a text at player's current cursor in chat input only while holding SHIFT.

    All of these styles require a parameter, in format

    <name:parameter>

    For link, parameter must be either http or https url if you want clients to recognize it. For others, it can be any text you'd like (you can make player run invalid commands if you wish).

    Text and Variables

    Variable names are text, but obviously formatting that text does no good. However, everything else you can do for text, you can do for variable names. A guide about this is coming... some day.

    Guide written by bensku.

    \ No newline at end of file diff --git a/tutorials.html b/tutorials.html new file mode 100644 index 00000000000..1ecaf935b16 --- /dev/null +++ b/tutorials.html @@ -0,0 +1 @@ + Skript Documentation - 2.6-beta3

    Tutorials

    Note:

    Skript Tutorials are coming soon.

    1. Loops
    2. Commands
    3. Functions
    4. Variables
    5. Visual effects

    \ No newline at end of file