VPX Functions
Lights

Light Runs

4min
created by scottywic this script block helps you quickly and easily do neat light runs on your tables requirements rgb lights function by jpsalas all your lights in a collection called "alights" bonus to make these effects look even better have your gi and spotlights coded to post their status as shown in lines 66 72 below in the code block this will allow the script to turn off your gis and spots while the lights run and then flip them back on when it's complete light run options category options chaos randoms directions up, down, left, right, diagdl, diagdr, diagul, diagur swipes middleih, middleiv, middleoh, middleov, stripe1h, hatch1h, hatch1v, hatch2h, hatch2v, stripe1v, stripe2h, stripe2v spins circlein, circleout, clockleft, clockright, screwl, screwr curves arcbld, arcblu, arcbrd, arcbru, arctld, arctlu, arctrd, arctru, fanld, fanlu, fanrd, fanru, radarl, radarr, wiperl, wiperr example lightrun red,arcbld,1 ' this would run an arc of lights from bottom to left to down (bld) in the color red 1 time syntax lightrun color,direction,times to run total code block '/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ \\/ ' utility light runs '\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\\ 	dim arcbld\ arcbld=1 	dim arcblu\ arcblu=2 	dim arcbrd\ arcbrd=3 	dim arcbru\ arcbru=4 	dim arctld\ arctld=5 	dim arctlu\ arctlu=6 	dim arctrd\ arctrd=7 	dim arctru\ arctru=8 	dim circlein\ circlein=9 	dim circleout\ circleout=10 	dim clockleft\ clockleft=11 	dim clockright\ clockright=12 	dim diagdl\ diagdl=13 	dim diagdr\ diagdr=14 	dim diagul\ diagul=15 	dim diagur\ diagur=16 	dim down\ down=17 	dim fanld\ fanld=18 	dim fanlu\ fanlu=19 	dim fanrd\ fanrd=20 	dim fanru\ fanru=21 	dim hatch1h\ hatch1h=22 	dim hatch1v\ hatch1v=23 	dim hatch2h\ hatch2h=24 	dim hatch2v\ hatch2v=25 	dim left\ left=26 	dim middleih\ middleih=27 	dim middleiv\ middleiv=28 	dim middleoh\ middleoh=29 	dim middleov\ middleov=30 	dim radarl\ radarl=31 	dim radarr\ radarr=32 	dim randoms\ randoms=33 	dim right\ right=34 	dim screwl\ screwl=35 	dim screwr\ screwr=36 	dim stripe1h\ stripe1h=37 	dim stripe1v\ stripe1v=38 	dim stripe2h\ stripe2h=39 	dim stripe2v\ stripe2v=40 	dim up\ up=41 	dim wiperl\ wiperl=42 	dim wiperr\ wiperr=43 	' light runs 	'(chaos)randoms 	'(directions)up|down|left|right|diagdl|diagdr|diagul|diagur 	'(swipes)middleih|middleiv|middleoh|middleov|stripe1h|hatch1h|hatch1v|hatch2h|hatch2v|stripe1v|stripe2h|stripe2v 	'(spins)circlein|circleout|clockleft|clockright|screwl|screwr 	'(curves)arcbld|arcblu|arcbrd|arcbru|arctld|arctlu|arctrd|arctru|fanld|fanlu|fanrd|fanru|radarl|radarr|wiperl|wiperr 	'(example)lightrun red,arcbld,1 (syntax)lightrun color,direction,times to run 	sub lightrun(colorduring,direction,timenum) 	 on error resume next 	 dim timefornext 	 ' color setting 	 dim a 	 for each a in alights 	 setlightcolor a, colorduring, 1 	 next 	 if spotstatus = 1 then 	 spotsoff 	 end if 	 	 if gistatus = 1 then 	 gioff 	 end if 	 select case direction 	 case arcbld 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarcbottomleftdownon, 90,timenum,0 	 lrseq play seqarcbottomleftdownoff, 90,timenum,0 	 case arcblu 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarcbottomleftupon, 90,timenum,0 	 lrseq play seqarcbottomleftupoff, 90,timenum,0 	 case arcbrd 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarcbottomrightdownon, 90,timenum,0 	 lrseq play seqarcbottomrightdownoff, 90,timenum,0 	 case arcbru 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarcbottomrightupon, 90,timenum,0 	 lrseq play seqarcbottomrightupoff, 90,timenum,0 	 case arctld 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarctopleftdownon, 90,timenum,0 	 lrseq play seqarctopleftdownoff, 90,timenum,0 	 case arctlu 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarctopleftupon, 90,timenum,0 	 lrseq play seqarctopleftupoff, 90,timenum,0 	 case arctrd 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarctoprightdownon, 90,timenum,0 	 lrseq play seqarctoprightdownoff, 90,timenum,0 	 case arctru 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqarctoprightupon, 90,timenum,0 	 lrseq play seqarctoprightupoff, 90,timenum,0 	 case circlein 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play seqcircleinon,50,timenum,0 	 lrseq play seqcircleinoff,50,timenum,0 	 case circleout 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play seqcircleouton,50,timenum,0 	 lrseq play seqcircleoutoff,50,timenum,0 	 case clockleft 	 lrseq updateinterval = 2 	 timefornext = timenum 800 	 lrseq play seqclocklefton, 45,timenum,0 	 lrseq play seqclockleftoff, 45,timenum,0 	 case clockright 	 lrseq updateinterval = 2 	 timefornext = timenum 800 	 lrseq play seqclockrighton,45,timenum,0 	 lrseq play seqclockrightoff,45,timenum,0 	 case diagdl 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqdiagdownlefton, 25,timenum,0 	 lrseq play seqdiagdownleftoff, 25,timenum,0 	 case diagdr 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqdiagdownrighton, 25,timenum,0 	 lrseq play seqdiagdownrightoff, 25,timenum,0 	 case diagul 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqdiaguplefton, 25,timenum,0 	 lrseq play seqdiagupleftoff, 25,timenum,0 	 case diagur 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqdiaguprighton, 25,timenum,0 	 lrseq play seqdiaguprightoff, 25,timenum,0 	 case down 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play seqdownon, 15,timenum,0 	 lrseq play seqdownoff, 15,timenum,0 	 case fanld 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqfanleftdownon, 30,timenum,0 	 lrseq play seqfanleftdownoff, 30,timenum,0 	 case fanlu 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqfanleftupon, 30,timenum,0 	 lrseq play seqfanleftupoff, 30,timenum,0 	 case fanrd 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqfanrightdownon, 30,timenum,0 	 lrseq play seqfanrightdownoff, 30,timenum,0 	 case fanru 	 lrseq updateinterval = 3 	 timefornext = timenum 800 	 lrseq play seqfanrightupon, 30,timenum,0 	 lrseq play seqfanrightupoff, 30,timenum,0 	 case hatch1h 	 lrseq updateinterval = 9 	 timefornext = timenum 800 	 lrseq play seqhatch1horizon, 25,timenum,0 	 lrseq play seqhatch1horizoff, 25,timenum,0 	 case hatch1v 	 lrseq updateinterval = 9 	 timefornext = timenum 800 	 lrseq play seqhatch1verton, 75,timenum,0 	 lrseq play seqhatch1vertoff, 75,timenum,0 	 case hatch2h 	 lrseq updateinterval = 9 	 timefornext = timenum 800 	 lrseq play seqhatch2horizon, 25,timenum,0 	 lrseq play seqhatch2horizoff, 25,timenum,0 	 case hatch2v 	 lrseq updateinterval = 9 	 timefornext = timenum 800 	 lrseq play seqhatch2verton, 75,timenum,0 	 lrseq play seqhatch2vertoff, 75,timenum,0 	 case left 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play seqlefton, 50,timenum,0 	 lrseq play seqleftoff, 50,timenum,0 	 case middleih 	 lrseq updateinterval = 12 	 timefornext = timenum 700 	 lrseq play seqmiddleinhorizon, 50,timenum,0 	 lrseq play seqmiddleinhorizoff, 50,timenum,0 	 case middleiv 	 lrseq updateinterval = 12 	 timefornext = timenum 700 	 lrseq play seqmiddleinverton, 50,timenum,0 	 lrseq play seqmiddleinvertoff, 50,timenum,0 	 case middleoh 	 lrseq updateinterval = 12 	 timefornext = timenum 700 	 lrseq play seqmiddleouthorizon, 50,timenum,0 	 lrseq play seqmiddleouthorizoff, 50,timenum,0 	 case middleov 	 lrseq updateinterval = 12 	 timefornext = timenum 700 	 lrseq play seqmiddleoutverton, 50,timenum,0 	 lrseq play seqmiddleoutvertoff, 50,timenum,0 	 case radarl 	 lrseq updateinterval = 4 	 timefornext = timenum 700 	 lrseq play seqradarlefton, 45,timenum,0 	 lrseq play seqradarleftoff, 45,timenum,0 	 case radarr 	 lrseq updateinterval = 4 	 timefornext = timenum 700 	 lrseq play seqradarrighton, 45,timenum,0 	 lrseq play seqradarrightoff, 45,timenum,0 	 case randoms 	 lrseq updateinterval = 5 	 timefornext = timenum 1000 	 lrseq play seqrandom,40,,timefornext 	 case right 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play seqrighton, 50,timenum,0 	 lrseq play seqrightoff, 50,timenum,0 	 case screwl 	 lrseq updateinterval = 2 	 timefornext = timenum 500 	 lrseq play seqscrewlefton, 25,timenum,0 	 lrseq play seqscrewleftoff, 25,timenum,0 	 case screwr 	 lrseq updateinterval = 2 	 timefornext = timenum 500 	 lrseq play seqscrewrighton, 25,timenum,0 	 lrseq play seqscrewrightoff, 25,timenum,0 	 case stripe1h 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqstripe1horizon, 25,timenum,0 	 lrseq play seqstripe1horizoff, 25,timenum,0 	 case stripe1v 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqstripe1verton, 50,timenum,0 	 lrseq play seqstripe1vertoff, 50,timenum,0 	 case stripe2h 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqstripe2horizon, 25,timenum,0 	 lrseq play seqstripe2horizoff, 25,timenum,0 	 case stripe2v 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqstripe2verton, 25,timenum,0 	 lrseq play seqstripe2vertoff, 25,timenum,0 	 case up 	 lrseq updateinterval = 5 	 timefornext = timenum 800 	 lrseq play sequpon, 15,timenum,0 	 lrseq play sequpoff, 15,timenum,0 	 case wiperl 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqwiperlefton, 45,timenum,0 	 lrseq play seqwiperleftoff, 45,timenum,0 	 case wiperr 	 lrseq updateinterval = 5 	 timefornext = timenum 900 	 lrseq play seqwiperrighton, 45,timenum,0 	 lrseq play seqwiperrightoff, 45,timenum,0 	 end select 	 runninglights = 1 	 vpmtimer addtimer timefornext, "nolongerrun '" 	end sub 	sub nolongerrun 	 if spotstatus = 0 then 	 spotson 	 end if 	 	 if gistatus = 0 then 	 gion 	 end if 	 runninglights = 0 	 lrseq stopplay 	 if bmultiballmode = 0 then 	 relighttable 	 end if 	end sub