Lightning uses what I would call "Linear Linking" where there is a starting point and a desired target point such as:
function Lightning(pos,pos2,radius,numParts,model) radius = radius or 0.2 numParts = numParts or 10 model = model or workspace local lv = CFrame.new(pos,pos2).lookVector local dist = (pos-pos2).magnitude local dbp = dist/numParts local last = pos for i = 1,numParts do local p = Instance.new("Part",model) p.FormFactor = "Symmetric" p.Size = Vector3.new(1,1,1) p.CanCollide = false p.Anchored = true p.BrickColor = BrickColor.new("Bright red") local x = math.random(-100,100)/100*dbp/2 local y = math.random(-100,100)/100*dbp/2 local p2 = CFrame.new(pos+lv*(i*dbp),pos2+lv)*CFrame.new(x,y,0) local dist2 = (p2.p-last).magnitude local mid = (p2.p+last)/2 local m = Instance.new("BlockMesh",p) m.Scale = Vector3.new(radius,radius,dist2) p.CFrame = CFrame.new(mid,p2.p) last = p2.p game:GetService("Debris"):AddItem(p,math.random(40,100)/1000) end end
However, I am trying to loop this to create a chain of some sort- my goal is to make this bolt "orbit" or "emit" around/from a player- however, defining the positions beforehand only makes it shoot in one general direction. Please help!