View difference between Paste ID: nQ45V9fw and n6eUL7m4
SHOW: | | - or go back to the newest paste.
1
-- This script has been converted to FE by iPxter
2
3
4
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
5
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
6
do
7
	print("FE Compatibility code by Mokiros | Translated to FE by iPxter")
8
	script.Parent = Player.Character
9
10
	--RemoteEvent for communicating
11
	local Event = Instance.new("RemoteEvent")
12
	Event.Name = "UserInput_Event"
13
14
	--Fake event to make stuff like Mouse.KeyDown work
15
	local function fakeEvent()
16
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
17
		t.connect = t.Connect
18
		return t
19
	end
20
21
	--Creating fake input objects with fake variables
22
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
23
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
24
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
25
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
26
	end}
27
	--Merged 2 functions into one by checking amount of arguments
28
	CAS.UnbindAction = CAS.BindAction
29
30
	--This function will trigger the events that have been :Connect()'ed
31
	local function te(self,ev,...)
32
		local t = m[ev]
33
		if t and t._fakeEvent and t.Function then
34
			t.Function(...)
35
		end
36
	end
37
	m.TrigEvent = te
38
	UIS.TrigEvent = te
39
40
	Event.OnServerEvent:Connect(function(plr,io)
41
	    if plr~=Player then return end
42
		if io.isMouse then
43
			m.Target = io.Target
44
			m.Hit = io.Hit
45
		else
46
			local b = io.UserInputState == Enum.UserInputState.Begin
47
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
			end
50
			for _,t in pairs(CAS.Actions) do
51
				for _,k in pairs(t.Keys) do
52
					if k==io.KeyCode then
53
						t.Function(t.Name,io.UserInputState,io)
54
					end
55
				end
56
			end
57
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
	    end
60
	end)
61
	Event.Parent = NLS([==[
62
	local Player = owner
63
	local Event = script:WaitForChild("UserInput_Event")
64
65
	local UIS = game:GetService("UserInputService")
66
	local input = function(io,a)
67
		if a then return end
68
		--Since InputObject is a client-side instance, we create and pass table instead
69
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
70
	end
71
	UIS.InputBegan:Connect(input)
72
	UIS.InputEnded:Connect(input)
73
74
	local Mouse = Player:GetMouse()
75
	local h,t
76
	--Give the server mouse data 30 times every second, but only if the values changed
77
	--If player is not moving their mouse, client won't fire events
78
	while wait(1/30) do
79
		if h~=Mouse.Hit or t~=Mouse.Target then
80
			h,t=Mouse.Hit,Mouse.Target
81
			Event:FireServer({isMouse=true,Target=t,Hit=h})
82
		end
83
	end]==],Player.Character)
84
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
85
end
86
function giant(p, size)	
87
	local pchar = p.Character
88
	if pchar then
89
		local function scale(chr,scl)
90
		
91
			for _,v in pairs(pchar:GetChildren()) do
92
				if v:IsA("Hat") then
93
					v:Clone()
94
					v.Parent = game.Lighting
95
				end
96
			end
97
				
98
		    local Head = chr['Head']
99
		    local Torso = chr['Torso']
100
		    local LA = chr['Left Arm']
101
		    local RA = chr['Right Arm']
102
		    local LL = chr['Left Leg']
103
		    local RL = chr['Right Leg']
104
		    local HRP = chr['HumanoidRootPart']
105
		
106
		    wait(0.1)
107
		   
108
		    Head.formFactor = 3
109
		    Torso.formFactor = 3
110
		    LA.formFactor = 3
111
		    RA.formFactor = 3
112
		    LL.formFactor = 3
113
		    RL.formFactor = 3
114
		    HRP.formFactor = 3
115
		    
116
		    Head.Size = Vector3.new(scl * 2, scl, scl)
117
		    Torso.Size = Vector3.new(scl * 2, scl * 2, scl)
118
		    LA.Size = Vector3.new(scl, scl * 2, scl)
119
		    RA.Size = Vector3.new(scl, scl * 2, scl)
120
		    LL.Size = Vector3.new(scl, scl * 2, scl)
121
		    RL.Size = Vector3.new(scl, scl * 2, scl)
122
		    HRP.Size = Vector3.new(scl * 2, scl * 2, scl)
123
		    
124
		    local Motor1 = Instance.new('Motor6D', Torso)
125
		    Motor1.Part0 = Torso
126
		    Motor1.Part1 = Head
127
	    	Motor1.C0 = CFrame.new(0, 1 * scl, 0) * CFrame.Angles(-1.6, 0, 3.1)
128
	    	Motor1.C1 = CFrame.new(0, -0.5 * scl, 0) * CFrame.Angles(-1.6, 0, 3.1)
129
	    	Motor1.Name = "Neck"
130
				    
131
	    	local Motor2 = Instance.new('Motor6D', Torso)
132
	    	Motor2.Part0 = Torso
133
	    	Motor2.Part1 = LA
134
	    	Motor2.C0 = CFrame.new(-1 * scl, 0.5 * scl, 0) * CFrame.Angles(0, -1.6, 0)
135
	    	Motor2.C1 = CFrame.new(0.5 * scl, 0.5 * scl, 0) * CFrame.Angles(0, -1.6, 0)
136
	    	Motor2.Name = "Left Shoulder"
137
	    	
138
	    	local Motor3 = Instance.new('Motor6D', Torso)
139
	   		Motor3.Part0 = Torso
140
	    	Motor3.Part1 = RA
141-
local player = game.Players.LocalPlayer 
141+
	    	Motor3.C0 = CFrame.new(1 * scl, 0.5 * scl, 0) * CFrame.Angles(0, 1.6, 0)
142
	    	Motor3.C1 = CFrame.new(-0.5 * scl, 0.5 * scl, 0) * CFrame.Angles(0, 1.6, 0)
143
	    	Motor3.Name = "Right Shoulder"
144
	    	
145
	    	local Motor4 = Instance.new('Motor6D', Torso)
146
	    	Motor4.Part0 = Torso
147
	    	Motor4.Part1 = LL
148
	    	Motor4.C0 = CFrame.new(-1 * scl, -1 * scl, 0) * CFrame.Angles(0, -1.6, 0)
149
	    	Motor4.C1 = CFrame.new(-0.5 * scl, 1 * scl, 0) * CFrame.Angles(0, -1.6, 0)
150
	    	Motor4.Name = "Left Hip"
151
	    	
152
	    	local Motor5 = Instance.new('Motor6D', Torso)
153
	    	Motor5.Part0 = Torso
154
	    	Motor5.Part1 = RL
155
	    	Motor5.C0 = CFrame.new(1 * scl, -1 * scl, 0) * CFrame.Angles(0, 1.6, 0)
156
	    	Motor5.C1 = CFrame.new(0.5 * scl, 1 * scl, 0) * CFrame.Angles(0, 1.6, 0)
157
	    	Motor5.Name = "Right Hip"
158
	    	
159
	    	local Motor6 = Instance.new('Motor6D', HRP)
160
	    	Motor6.Part0 = HRP
161
	    	Motor6.Part1 = Torso
162
	    	Motor6.C0 = CFrame.new(0, 0, 0) * CFrame.Angles(-1.6, 0, -3.1)
163
	    	Motor6.C1 = CFrame.new(0, 0, 0) * CFrame.Angles(-1.6, 0, -3.1)
164
	    	    
165
		end
166
		
167
		scale(pchar, size)
168
		pchar.Humanoid.WalkSpeed = 15 * size
169
	
170
		for _,v in pairs(game.Lighting:GetChildren()) do
171
			if v:IsA("Hat") then
172
				v.Parent = pchar
173
			end
174
		end
175
	end
176
end
177
178
local plr = owner
179
giant(plr,1)
180
181
182
local csize = 1
183
184
local sgui = owner
185
local base = Instance.new("Frame", sgui)
186
base.BackgroundTransparency = 1
187
base.Size = UDim2.new(0, 110, 0, 200)
188
base.Position = UDim2.new(1, -120, 1, -180)
189
local indicator = Instance.new("TextLabel", base)
190
indicator.Size = UDim2.new(1, 0, 0, 25)
191
indicator.TextColor3 = Color3.new(1, 1, 1)
192
indicator.BackgroundTransparency = 0
193
indicator.FontSize = Enum.FontSize.Size18
194
indicator.Font = Enum.Font.SourceSans
195
indicator.Text = "Current Size: 3"
196
local PlusOne = Instance.new("TextButton", base)
197
PlusOne.BackgroundColor3 = Color3.new(214/255, 214/255, 214/255)
198
PlusOne.Position = UDim2.new(0, 0, 0, 40)
199
PlusOne.Size = UDim2.new(1, 0, 0.5, -50)
200
PlusOne.BorderSizePixel = 2
201
PlusOne.Font = Enum.Font.SourceSansBold
202
PlusOne.FontSize = Enum.FontSize.Size24
203
PlusOne.Text = "+.1 Size"
204
local MinusOne = Instance.new("TextButton", base)
205
MinusOne.BackgroundColor3 = Color3.new(214/255, 214/255, 214/255)
206
MinusOne.Position = UDim2.new(0, 0, 0.5, 10)
207
MinusOne.Size = UDim2.new(1, 0, 0.5, -50)
208
MinusOne.Text = "-.1 Size"
209
MinusOne.BorderSizePixel = 2
210
MinusOne.Font = Enum.Font.SourceSansBold
211
MinusOne.FontSize = Enum.FontSize.Size24
212
213
PlusOne.MouseButton1Down:connect(function()
214
	csize = csize + .1
215
	giant(plr, csize)
216
	indicator.Text = "Current Size: "..tostring(csize)
217
end)
218
219
MinusOne.MouseButton1Down:connect(function()
220
	csize = csize - .1
221
	giant(plr, csize)
222
	indicator.Text = "Current Size: "..tostring(csize)
223
end)
224
I = "mogoon"
225
game.Players[I].Character.Head.Transparency = 1 
226
local p = Instance.new("Part") 
227
p.Parent = game.Players[I].Character.Torso 
228
p.Position = Vector3.new(0, 50, 0) 
229
p.BrickColor = BrickColor.new("Really black") 
230
p.TopSurface = 0 
231
p.BottomSurface = 0
232
p.Size = Vector3.new(1, 1, 2) 
233
p.CanCollide = False 
234
local w = Instance.new("Weld") 
235
w.Parent = game.Players[I].Character 
236
w.Part1 = game.Players[I].Character.Head 
237
w.Part0 = p 
238
w.C0 = CFrame.new(0,0,1.5) * CFrame.fromEulerAnglesXYZ(0,0,0) 
239
local A = Instance.new("SpecialMesh") 
240
A.MeshType = "Brick" 
241
A.Parent = p 
242
A.Scale = Vector3.new(1.5, 0.8, 1) 
243
local p = Instance.new("Part") 
244
p.Parent = game.Players[I].Character.Torso 
245
p.Position = Vector3.new(0, 50, 0) 
246
p.BrickColor = BrickColor.new("Really black") 
247
p.TopSurface = 0 
248
p.BottomSurface = 0 
249
p.Size = Vector3.new(1, 1, 1.5) 
250
p.CanCollide = False 
251
local w = Instance.new("Weld") 
252
w.Parent = game.Players[I].Character 
253
w.Part1 = game.Players[I].Character.Head 
254
w.Part0 = p 
255
w.C0 = CFrame.new(0,-1.1,0) * CFrame.fromEulerAnglesXYZ(math.pi/4, 0,0) 
256
local A = Instance.new("SpecialMesh") 
257
A.MeshType = "Brick" 
258
A.Parent = p 
259
A.Scale = Vector3.new(1.5, 1, 1) 
260
local p = Instance.new("Part") 
261
p.Parent = game.Players[I].Character.Torso 
262
p.Position = Vector3.new(0, 50, 0) 
263
p.BrickColor = BrickColor.new("Really black") 
264
p.TopSurface = 0 
265
p.BottomSurface = 0 
266
p.Size = Vector3.new(1, 1, 1.5) 
267
p.CanCollide = False 
268
local w = Instance.new("Weld") 
269
w.Parent = game.Players[I].Character 
270
w.Part1 = game.Players[I].Character.Head 
271
w.Part0 = p 
272
w.C0 = CFrame.new(0.4,-1.4,-1.3) * CFrame.fromEulerAnglesXYZ(math.pi/4, 0,0) 
273
local A = Instance.new("SpecialMesh") 
274
A.MeshType = "Brick" 
275
A.Parent = p 
276
A.Scale = Vector3.new(0.5, 0.5, 0.5) 
277
local p = Instance.new("Part") 
278
p.Parent = game.Players[I].Character.Torso 
279
p.Position = Vector3.new(0, 50, 0) 
280
p.BrickColor = BrickColor.new("Really black") 
281
p.TopSurface = 0 
282
p.BottomSurface = 0 
283
p.Size = Vector3.new(1, 1, 1.5) 
284
p.CanCollide = False 
285
local w = Instance.new("Weld") 
286
w.Parent = game.Players[I].Character 
287
w.Part1 = game.Players[I].Character.Head 
288
w.Part0 = p 
289
w.C0 = CFrame.new(-0.4,-1.4,-1.3) * CFrame.fromEulerAnglesXYZ(math.pi/4, 0,0) 
290
local A = Instance.new("SpecialMesh") 
291
A.MeshType = "Brick" 
292
A.Parent = p 
293
A.Scale = Vector3.new(0.5, 0.5, 0.5) 
294
local p = Instance.new("Part") 
295
p.Parent = game.Players[I].Character.Torso 
296
p.Position = Vector3.new(0, 50, 0) 
297
p.BrickColor = BrickColor.new("Really black") 
298
p.TopSurface = 0 
299
p.BottomSurface = 0 
300
p.Size = Vector3.new(1, 1, 1.5) 
301
p.CanCollide = False 
302
local w = Instance.new("Weld") 
303
w.Parent = game.Players[I].Character 
304
w.Part1 = game.Players[I].Character.Head 
305
w.Part0 = p 
306
w.C0 = CFrame.new(0,0.2,-0.1) * CFrame.fromEulerAnglesXYZ(math.pi/-3,0,0) 
307
local A = Instance.new("SpecialMesh") 
308
A.MeshType = "Brick" 
309
A.Parent = p 
310
A.Scale = Vector3.new(1.5, 1.5, 1.5) 
311
for c = 1, #game.Players[I].Character:GetChildren()do 
312
char = game.Players[I].Character:GetChildren() 
313
if char[c]:IsA("Part") then 
314
char[c].Transparency = 1 
315
elseif char[c]:IsA("Hat") then 
316
char[c].Handle:Remove() 
317
end 
318
end 
319
if game.Players[I].Character.Head:FindFirstChild("face") then 
320
game.Players[I].Character.Head.face:Remove() 
321
end 
322
--[[------------------------------------------------------------------------]] 
323
Player = game.Players[I] 
324
local h = Instance.new("HopperBin") 
325
h.Name = "Fly" 
326
h.Parent = Player.Backpack 
327
local s = Instance.new("Script") 
328
s.Parent = h 
329
s.Name = "Script" 
330
local bin = s.Parent 
331
length = 3 
332
away = 2 
333
gap = 0 
334
segs = 40 
335
distance = length/3 
336
speed = 1 
337
Wave = 0 
338
local Tail = {} 
339
local part0 = Instance.new("Part") 
340
part0.BrickColor = BrickColor.new("Really black") 
341
part0.TopSurface = 0 
342
part0.BottomSurface = 0 
343
part0.Locked = true 
344
part0.FormFactor = "Symmetric" 
345
part0.Size = Vector3.new(2,2,2) 
346
part0.Anchored = true 
347
part0.Shape = 1 
348
part0.CanCollide = true 
349
part0.Parent = nil 
350
part0.Name = "Part0" 
351
local A = Instance.new("SpecialMesh") 
352
A.MeshType = "Brick" 
353
A.Parent = part0 
354
A.Name = "Mesh" 
355
A.Scale = Vector3.new(1.1, 1.1, 1.1) 
356
for p = 1,segs do 
357
Tail[p] = part0:Clone() 
358
Tail[p].Parent = nil 
359
Tail[p].Name = "Part"..p 
360
Tail[p].CFrame = CFrame.new(math.random(-100, 100), math.random(-100, 100), math.random(-100, 100)) 
361
Tail[p].Mesh.Scale = Vector3.new(1.1 - (p/1000), 1.1 - (p/1000), 1.1 - (p/1000)) 
362
end 
363
function onButton1Down(mouse) 
364
local player = owner 
365
if player == nil then return end 
366
me1 = bin.Parent.Parent 
367
me = bin.Parent.Parent.Character 
368
for p = 1,segs do 
369
Tail[p].Parent = me 
370
end 
371
main = part0 
372
part1 = Tail[1] 
373
follow = true 
374
while follow do 
375
Wave = Wave + 0.02 
376
distance = length/3 
377
mousehit = mouse.Hit.p 
378
if (main.Position - mousehit).magnitude >speed then 
379
main_mousehit = (main.Position - mousehit).unit*speed 
380
else 
381
main_mousehit = (main.Position - mousehit).unit*1 
382
end 
383
start1 = main.Position-main_mousehit 
384
main.CFrame = CFrame.new(start1.x, start1.y, start1.z) 
385
p1pos = part1.Position 
386
start1_p1pos = (start1 - p1pos).unit 
387
spreadp1 = start1_p1pos*(distance+away) 
388
part1.CFrame = CFrame.new(start1-spreadp1, start1) 
389
me.Torso.CFrame=Tail[1].CFrame*CFrame.new(0,-0.5,-4)*CFrame.fromEulerAnglesXYZ(-math.pi/5,0,0) 
390
me.Torso.Anchored = true 
391
Wave = Wave + 0.02 
392
pc = me.Torso.CFrame 
393
starti = me.Torso.Position-(pc.lookVector*distance) 
394
pipos = Tail[1].Position 
395
starti_pipos = (starti - pipos).unit 
396
spreadpi = starti_pipos*(distance+gap) 
397
Tail[1].CFrame = CFrame.new(starti-spreadpi, starti) + (part0.CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6)/4 
398
--[[ 
399
for i = 1,39 do 
400
wait() 
401
print("p2c = Tail["..i.."].CFrame\ 
402
start3 = Tail["..i.."].Position-(p2c.lookVector*distance)\ 
403
p3pos = Tail["..(i+1).."].Position\ 
404
start3_p3pos = (start3 - p3pos).unit\ 
405
spreadp3 = start3_p3pos*(distance+gap)\ 
406
Tail["..(i+1).."].CFrame = CFrame.new(start3-spreadp3, start3 - Vector3.new(0,math.sin(Wave*6+"..((i-1)/100)..")/4,0) ) + Vector3.new(0,math.sin(Wave*6+"..((i)/100)..")/4,0)\ 
407
" ) 
408
end 
409
]] 
410
p2c = Tail[1].CFrame start3 = Tail[1].Position-(p2c.lookVector*distance) p3pos = Tail[2].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[2].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[1].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0)/4 ) + (Tail[2].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.01)/4 
411
p2c = Tail[2].CFrame start3 = Tail[2].Position-(p2c.lookVector*distance) p3pos = Tail[3].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[3].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[2].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.01)/4 ) + (Tail[3].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.02)/4 
412
p2c = Tail[3].CFrame start3 = Tail[3].Position-(p2c.lookVector*distance) p3pos = Tail[4].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[4].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[3].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.02)/4 ) + (Tail[4].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.03)/4 
413
p2c = Tail[4].CFrame start3 = Tail[4].Position-(p2c.lookVector*distance) p3pos = Tail[5].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[5].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[4].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.03)/4 ) + (Tail[5].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.04)/4 
414
p2c = Tail[5].CFrame start3 = Tail[5].Position-(p2c.lookVector*distance) p3pos = Tail[6].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[6].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[5].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.04)/4 ) + (Tail[6].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.05)/4 
415
p2c = Tail[6].CFrame start3 = Tail[6].Position-(p2c.lookVector*distance) p3pos = Tail[7].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[7].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[6].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.05)/4 ) + (Tail[7].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.06)/4 
416
p2c = Tail[7].CFrame start3 = Tail[7].Position-(p2c.lookVector*distance) p3pos = Tail[8].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[8].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[7].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.06)/4 ) + (Tail[8].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.07)/4 
417
p2c = Tail[8].CFrame start3 = Tail[8].Position-(p2c.lookVector*distance) p3pos = Tail[9].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[9].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[8].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.07)/4 ) + (Tail[9].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.08)/4 
418
p2c = Tail[9].CFrame start3 = Tail[9].Position-(p2c.lookVector*distance) p3pos = Tail[10].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[10].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[9].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.08)/4 ) + (Tail[10].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.09)/4 
419
p2c = Tail[10].CFrame start3 = Tail[10].Position-(p2c.lookVector*distance) p3pos = Tail[11].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[11].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[10].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.09)/4 ) + (Tail[11].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.1)/4 
420
p2c = Tail[11].CFrame start3 = Tail[11].Position-(p2c.lookVector*distance) p3pos = Tail[12].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[12].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[11].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.1)/4 ) + (Tail[12].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.11)/4 
421
p2c = Tail[12].CFrame start3 = Tail[12].Position-(p2c.lookVector*distance) p3pos = Tail[13].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[13].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[12].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.11)/4 ) + (Tail[13].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.12)/4 
422
p2c = Tail[13].CFrame start3 = Tail[13].Position-(p2c.lookVector*distance) p3pos = Tail[14].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[14].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[13].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.12)/4 ) + (Tail[14].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.13)/4 
423
p2c = Tail[14].CFrame start3 = Tail[14].Position-(p2c.lookVector*distance) p3pos = Tail[15].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[15].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[14].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.13)/4 ) + (Tail[15].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.14)/4 
424
p2c = Tail[15].CFrame start3 = Tail[15].Position-(p2c.lookVector*distance) p3pos = Tail[16].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[16].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[15].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.14)/4 ) + (Tail[16].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.15)/4 
425
p2c = Tail[16].CFrame start3 = Tail[16].Position-(p2c.lookVector*distance) p3pos = Tail[17].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[17].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[16].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.15)/4 ) + (Tail[17].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.16)/4 
426
p2c = Tail[17].CFrame start3 = Tail[17].Position-(p2c.lookVector*distance) p3pos = Tail[18].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[18].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[17].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.16)/4 ) + (Tail[18].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.17)/4 
427
p2c = Tail[18].CFrame start3 = Tail[18].Position-(p2c.lookVector*distance) p3pos = Tail[19].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[19].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[18].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.17)/4 ) + (Tail[19].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.18)/4 
428
p2c = Tail[19].CFrame start3 = Tail[19].Position-(p2c.lookVector*distance) p3pos = Tail[20].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[20].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[19].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.18)/4 ) + (Tail[20].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.19)/4 
429
p2c = Tail[20].CFrame start3 = Tail[20].Position-(p2c.lookVector*distance) p3pos = Tail[21].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[21].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[20].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.19)/4 ) + (Tail[21].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.2)/4 
430
p2c = Tail[21].CFrame start3 = Tail[21].Position-(p2c.lookVector*distance) p3pos = Tail[22].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[22].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[21].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.2)/4 ) + (Tail[22].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.21)/4 
431
p2c = Tail[22].CFrame start3 = Tail[22].Position-(p2c.lookVector*distance) p3pos = Tail[23].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[23].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[22].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.21)/4 ) + (Tail[23].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.22)/4 
432
p2c = Tail[23].CFrame start3 = Tail[23].Position-(p2c.lookVector*distance) p3pos = Tail[24].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[24].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[23].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.22)/4 ) + (Tail[24].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.23)/4 
433
p2c = Tail[24].CFrame start3 = Tail[24].Position-(p2c.lookVector*distance) p3pos = Tail[25].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[25].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[24].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.23)/4 ) + (Tail[25].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.24)/4 
434
p2c = Tail[25].CFrame start3 = Tail[25].Position-(p2c.lookVector*distance) p3pos = Tail[26].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[26].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[25].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.24)/4 ) + (Tail[26].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.25)/4 
435
p2c = Tail[26].CFrame start3 = Tail[26].Position-(p2c.lookVector*distance) p3pos = Tail[27].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[27].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[26].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.25)/4 ) + (Tail[27].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.26)/4 
436
p2c = Tail[27].CFrame start3 = Tail[27].Position-(p2c.lookVector*distance) p3pos = Tail[28].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[28].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[27].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.26)/4 ) + (Tail[28].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.27)/4 
437
p2c = Tail[28].CFrame start3 = Tail[28].Position-(p2c.lookVector*distance) p3pos = Tail[29].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[29].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[28].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.27)/4 ) + (Tail[29].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.28)/4 
438
p2c = Tail[29].CFrame start3 = Tail[29].Position-(p2c.lookVector*distance) p3pos = Tail[30].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[30].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[29].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.28)/4 ) + (Tail[30].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.29)/4 
439
p2c = Tail[30].CFrame start3 = Tail[30].Position-(p2c.lookVector*distance) p3pos = Tail[31].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[31].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[30].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.29)/4 ) + (Tail[31].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.3)/4 
440
p2c = Tail[31].CFrame start3 = Tail[31].Position-(p2c.lookVector*distance) p3pos = Tail[32].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[32].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[31].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.3)/4 ) + (Tail[32].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.31)/4 
441
p2c = Tail[32].CFrame start3 = Tail[32].Position-(p2c.lookVector*distance) p3pos = Tail[33].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[33].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[32].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.31)/4 ) + (Tail[33].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.32)/4 
442
p2c = Tail[33].CFrame start3 = Tail[33].Position-(p2c.lookVector*distance) p3pos = Tail[34].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[34].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[33].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.32)/4 ) + (Tail[34].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.33)/4 
443
p2c = Tail[34].CFrame start3 = Tail[34].Position-(p2c.lookVector*distance) p3pos = Tail[35].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[35].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[34].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.33)/4 ) + (Tail[35].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.34)/4 
444
p2c = Tail[35].CFrame start3 = Tail[35].Position-(p2c.lookVector*distance) p3pos = Tail[36].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[36].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[35].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.34)/4 ) + (Tail[36].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.35)/4 
445
p2c = Tail[36].CFrame start3 = Tail[36].Position-(p2c.lookVector*distance) p3pos = Tail[37].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[37].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[36].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.35)/4 ) + (Tail[37].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.36)/4 
446
p2c = Tail[37].CFrame start3 = Tail[37].Position-(p2c.lookVector*distance) p3pos = Tail[38].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[38].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[37].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.36)/4 ) + (Tail[38].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.37)/4 
447
p2c = Tail[38].CFrame start3 = Tail[38].Position-(p2c.lookVector*distance) p3pos = Tail[39].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[39].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[38].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.37)/4 ) + (Tail[39].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.38)/4 
448
p2c = Tail[39].CFrame start3 = Tail[39].Position-(p2c.lookVector*distance) p3pos = Tail[40].Position start3_p3pos = (start3 - p3pos).unit spreadp3 = start3_p3pos*(distance+gap) Tail[40].CFrame = CFrame.new(start3-spreadp3, start3 - (Tail[39].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.38)/4 ) + (Tail[40].CFrame * CFrame.Angles(math.rad(90),0,0)).lookVector * math.sin(Wave*6+0.39)/4 
449
wait() 
450
end 
451
end 
452
function onButton1Up(mouse) 
453
follow = false 
454
end 
455
function onSelected(mouse) 
456
mouse.Icon = "rbxasset://textures\\GunCursor.png" 
457
mouse.Button1Down:connect(function() onButton1Down(mouse) end) 
458
mouse.Button1Up:connect(function() onButton1Up(mouse) end) 
459
mouse.KeyDown:connect(onKeyDown) 
460
end 
461
bin.Selected:connect(onSelected)