Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Made by 1ndrew "Steamed Hams"
- function sandbox(var,func)
- local env = getfenv(func)
- local newenv = setmetatable({},{
- __index = function(self,k)
- if k=="script" then
- return var
- else
- return env[k]
- end
- end,
- })
- setfenv(func,newenv)
- return func
- end
- cors = {}
- mas = Instance.new("Model",game:GetService("Lighting"))
- Tool0 = Instance.new("Tool")
- Part1 = Instance.new("Part")
- CylinderMesh2 = Instance.new("CylinderMesh")
- Part3 = Instance.new("Part")
- CylinderMesh4 = Instance.new("CylinderMesh")
- Part5 = Instance.new("Part")
- CylinderMesh6 = Instance.new("CylinderMesh")
- Part7 = Instance.new("Part")
- CylinderMesh8 = Instance.new("CylinderMesh")
- Part9 = Instance.new("Part")
- CylinderMesh10 = Instance.new("CylinderMesh")
- Part11 = Instance.new("Part")
- CylinderMesh12 = Instance.new("CylinderMesh")
- Part13 = Instance.new("Part")
- SpecialMesh14 = Instance.new("SpecialMesh")
- Part15 = Instance.new("Part")
- CylinderMesh16 = Instance.new("CylinderMesh")
- Part17 = Instance.new("Part")
- Part18 = Instance.new("Part")
- PointLight19 = Instance.new("PointLight")
- BillboardGui20 = Instance.new("BillboardGui")
- ImageLabel21 = Instance.new("ImageLabel")
- CylinderMesh22 = Instance.new("CylinderMesh")
- Part23 = Instance.new("Part")
- Sound24 = Instance.new("Sound")
- Sound25 = Instance.new("Sound")
- Part26 = Instance.new("Part")
- CylinderMesh27 = Instance.new("CylinderMesh")
- Part28 = Instance.new("Part")
- SpecialMesh29 = Instance.new("SpecialMesh")
- Part30 = Instance.new("Part")
- SpecialMesh31 = Instance.new("SpecialMesh")
- Decal32 = Instance.new("Decal")
- Decal33 = Instance.new("Decal")
- Part34 = Instance.new("Part")
- SpecialMesh35 = Instance.new("SpecialMesh")
- Part36 = Instance.new("Part")
- SpecialMesh37 = Instance.new("SpecialMesh")
- Part38 = Instance.new("Part")
- CylinderMesh39 = Instance.new("CylinderMesh")
- Part40 = Instance.new("Part")
- CylinderMesh41 = Instance.new("CylinderMesh")
- Part42 = Instance.new("Part")
- CylinderMesh43 = Instance.new("CylinderMesh")
- Part44 = Instance.new("Part")
- SpecialMesh45 = Instance.new("SpecialMesh")
- Part46 = Instance.new("Part")
- CylinderMesh47 = Instance.new("CylinderMesh")
- Part48 = Instance.new("Part")
- SpecialMesh49 = Instance.new("SpecialMesh")
- Decal50 = Instance.new("Decal")
- Decal51 = Instance.new("Decal")
- Part52 = Instance.new("Part")
- SpecialMesh53 = Instance.new("SpecialMesh")
- Part54 = Instance.new("Part")
- SpecialMesh55 = Instance.new("SpecialMesh")
- Part56 = Instance.new("Part")
- CylinderMesh57 = Instance.new("CylinderMesh")
- Part58 = Instance.new("Part")
- CylinderMesh59 = Instance.new("CylinderMesh")
- Part60 = Instance.new("Part")
- SpecialMesh61 = Instance.new("SpecialMesh")
- Part62 = Instance.new("Part")
- CylinderMesh63 = Instance.new("CylinderMesh")
- Part64 = Instance.new("Part")
- CylinderMesh65 = Instance.new("CylinderMesh")
- Part66 = Instance.new("Part")
- SpecialMesh67 = Instance.new("SpecialMesh")
- Part68 = Instance.new("Part")
- SpecialMesh69 = Instance.new("SpecialMesh")
- Part70 = Instance.new("Part")
- CylinderMesh71 = Instance.new("CylinderMesh")
- Part72 = Instance.new("Part")
- SpecialMesh73 = Instance.new("SpecialMesh")
- Part74 = Instance.new("Part")
- CylinderMesh75 = Instance.new("CylinderMesh")
- Part76 = Instance.new("Part")
- CylinderMesh77 = Instance.new("CylinderMesh")
- Part78 = Instance.new("Part")
- CylinderMesh79 = Instance.new("CylinderMesh")
- Part80 = Instance.new("Part")
- CylinderMesh81 = Instance.new("CylinderMesh")
- Part82 = Instance.new("Part")
- CylinderMesh83 = Instance.new("CylinderMesh")
- Part84 = Instance.new("Part")
- CylinderMesh85 = Instance.new("CylinderMesh")
- Part86 = Instance.new("Part")
- CylinderMesh87 = Instance.new("CylinderMesh")
- Decal88 = Instance.new("Decal")
- Decal89 = Instance.new("Decal")
- Part90 = Instance.new("Part")
- SpecialMesh91 = Instance.new("SpecialMesh")
- Part92 = Instance.new("Part")
- SpecialMesh93 = Instance.new("SpecialMesh")
- Part94 = Instance.new("Part")
- CylinderMesh95 = Instance.new("CylinderMesh")
- Part96 = Instance.new("Part")
- SpecialMesh97 = Instance.new("SpecialMesh")
- Part98 = Instance.new("Part")
- SpecialMesh99 = Instance.new("SpecialMesh")
- Part100 = Instance.new("Part")
- CylinderMesh101 = Instance.new("CylinderMesh")
- Part102 = Instance.new("Part")
- CylinderMesh103 = Instance.new("CylinderMesh")
- Decal104 = Instance.new("Decal")
- Part105 = Instance.new("Part")
- CylinderMesh106 = Instance.new("CylinderMesh")
- Part107 = Instance.new("Part")
- CylinderMesh108 = Instance.new("CylinderMesh")
- Part109 = Instance.new("Part")
- CylinderMesh110 = Instance.new("CylinderMesh")
- Part111 = Instance.new("Part")
- CylinderMesh112 = Instance.new("CylinderMesh")
- Part113 = Instance.new("Part")
- CylinderMesh114 = Instance.new("CylinderMesh")
- Part115 = Instance.new("Part")
- CylinderMesh116 = Instance.new("CylinderMesh")
- Decal117 = Instance.new("Decal")
- Part118 = Instance.new("Part")
- CylinderMesh119 = Instance.new("CylinderMesh")
- Decal120 = Instance.new("Decal")
- Part121 = Instance.new("Part")
- CylinderMesh122 = Instance.new("CylinderMesh")
- Part123 = Instance.new("Part")
- CylinderMesh124 = Instance.new("CylinderMesh")
- Decal125 = Instance.new("Decal")
- Decal126 = Instance.new("Decal")
- Part127 = Instance.new("Part")
- SpecialMesh128 = Instance.new("SpecialMesh")
- Part129 = Instance.new("Part")
- CylinderMesh130 = Instance.new("CylinderMesh")
- Part131 = Instance.new("Part")
- CylinderMesh132 = Instance.new("CylinderMesh")
- Decal133 = Instance.new("Decal")
- Part134 = Instance.new("Part")
- CylinderMesh135 = Instance.new("CylinderMesh")
- Part136 = Instance.new("Part")
- CylinderMesh137 = Instance.new("CylinderMesh")
- Part138 = Instance.new("Part")
- SpecialMesh139 = Instance.new("SpecialMesh")
- Part140 = Instance.new("Part")
- SpecialMesh141 = Instance.new("SpecialMesh")
- Part142 = Instance.new("Part")
- CylinderMesh143 = Instance.new("CylinderMesh")
- Part144 = Instance.new("Part")
- CylinderMesh145 = Instance.new("CylinderMesh")
- Part146 = Instance.new("Part")
- SpecialMesh147 = Instance.new("SpecialMesh")
- Part148 = Instance.new("Part")
- CylinderMesh149 = Instance.new("CylinderMesh")
- Part150 = Instance.new("Part")
- CylinderMesh151 = Instance.new("CylinderMesh")
- Part152 = Instance.new("Part")
- CylinderMesh153 = Instance.new("CylinderMesh")
- Part154 = Instance.new("Part")
- CylinderMesh155 = Instance.new("CylinderMesh")
- Part156 = Instance.new("Part")
- SpecialMesh157 = Instance.new("SpecialMesh")
- Part158 = Instance.new("Part")
- SpecialMesh159 = Instance.new("SpecialMesh")
- Part160 = Instance.new("Part")
- CylinderMesh161 = Instance.new("CylinderMesh")
- Part162 = Instance.new("Part")
- SpecialMesh163 = Instance.new("SpecialMesh")
- Part164 = Instance.new("Part")
- CylinderMesh165 = Instance.new("CylinderMesh")
- Part166 = Instance.new("Part")
- CylinderMesh167 = Instance.new("CylinderMesh")
- Part168 = Instance.new("Part")
- SpecialMesh169 = Instance.new("SpecialMesh")
- Part170 = Instance.new("Part")
- SpecialMesh171 = Instance.new("SpecialMesh")
- Part172 = Instance.new("Part")
- SpecialMesh173 = Instance.new("SpecialMesh")
- Part174 = Instance.new("Part")
- SpecialMesh175 = Instance.new("SpecialMesh")
- Part176 = Instance.new("Part")
- CylinderMesh177 = Instance.new("CylinderMesh")
- Part178 = Instance.new("Part")
- SpecialMesh179 = Instance.new("SpecialMesh")
- Part180 = Instance.new("Part")
- CylinderMesh181 = Instance.new("CylinderMesh")
- Part182 = Instance.new("Part")
- CylinderMesh183 = Instance.new("CylinderMesh")
- Part184 = Instance.new("Part")
- SpecialMesh185 = Instance.new("SpecialMesh")
- Part186 = Instance.new("Part")
- SpecialMesh187 = Instance.new("SpecialMesh")
- IntValue188 = Instance.new("IntValue")
- IntValue189 = Instance.new("IntValue")
- IntValue190 = Instance.new("IntValue")
- IntValue191 = Instance.new("IntValue")
- IntValue192 = Instance.new("IntValue")
- Script193 = Instance.new("Script")
- ObjectValue194 = Instance.new("ObjectValue")
- RemoteFunction195 = Instance.new("RemoteFunction")
- RemoteFunction196 = Instance.new("RemoteFunction")
- RemoteFunction197 = Instance.new("RemoteFunction")
- RemoteEvent198 = Instance.new("RemoteEvent")
- RemoteFunction199 = Instance.new("RemoteFunction")
- RemoteFunction200 = Instance.new("RemoteFunction")
- RemoteFunction201 = Instance.new("RemoteFunction")
- LocalScript202 = Instance.new("LocalScript")
- IntValue203 = Instance.new("IntValue")
- RemoteEvent204 = Instance.new("RemoteEvent")
- RemoteEvent205 = Instance.new("RemoteEvent")
- RemoteEvent206 = Instance.new("RemoteEvent")
- RemoteEvent207 = Instance.new("RemoteEvent")
- LocalScript208 = Instance.new("LocalScript")
- IntValue209 = Instance.new("IntValue")
- Folder210 = Instance.new("Folder")
- ScreenGui211 = Instance.new("ScreenGui")
- ImageLabel212 = Instance.new("ImageLabel")
- NumberValue213 = Instance.new("NumberValue")
- Frame214 = Instance.new("Frame")
- ImageLabel215 = Instance.new("ImageLabel")
- TextLabel216 = Instance.new("TextLabel")
- Frame217 = Instance.new("Frame")
- TextLabel218 = Instance.new("TextLabel")
- Frame219 = Instance.new("Frame")
- TextLabel220 = Instance.new("TextLabel")
- Frame221 = Instance.new("Frame")
- TextLabel222 = Instance.new("TextLabel")
- Frame223 = Instance.new("Frame")
- TextLabel224 = Instance.new("TextLabel")
- Frame225 = Instance.new("Frame")
- Frame226 = Instance.new("Frame")
- TextLabel227 = Instance.new("TextLabel")
- TextLabel228 = Instance.new("TextLabel")
- TextLabel229 = Instance.new("TextLabel")
- TextLabel230 = Instance.new("TextLabel")
- TextLabel231 = Instance.new("TextLabel")
- Frame232 = Instance.new("Frame")
- TextLabel233 = Instance.new("TextLabel")
- TextLabel234 = Instance.new("TextLabel")
- TextLabel235 = Instance.new("TextLabel")
- Frame236 = Instance.new("Frame")
- TextLabel237 = Instance.new("TextLabel")
- Frame238 = Instance.new("Frame")
- Frame239 = Instance.new("Frame")
- Frame240 = Instance.new("Frame")
- Frame241 = Instance.new("Frame")
- Frame242 = Instance.new("Frame")
- Frame243 = Instance.new("Frame")
- Frame244 = Instance.new("Frame")
- Frame245 = Instance.new("Frame")
- Frame246 = Instance.new("Frame")
- Frame247 = Instance.new("Frame")
- Frame248 = Instance.new("Frame")
- Frame249 = Instance.new("Frame")
- Frame250 = Instance.new("Frame")
- Frame251 = Instance.new("Frame")
- Frame252 = Instance.new("Frame")
- Frame253 = Instance.new("Frame")
- Frame254 = Instance.new("Frame")
- Frame255 = Instance.new("Frame")
- Frame256 = Instance.new("Frame")
- Frame257 = Instance.new("Frame")
- Frame258 = Instance.new("Frame")
- Frame259 = Instance.new("Frame")
- Frame260 = Instance.new("Frame")
- Frame261 = Instance.new("Frame")
- Frame262 = Instance.new("Frame")
- Frame263 = Instance.new("Frame")
- TextLabel264 = Instance.new("TextLabel")
- TextLabel265 = Instance.new("TextLabel")
- Frame266 = Instance.new("Frame")
- Frame267 = Instance.new("Frame")
- ImageLabel268 = Instance.new("ImageLabel")
- TextLabel269 = Instance.new("TextLabel")
- TextLabel270 = Instance.new("TextLabel")
- Frame271 = Instance.new("Frame")
- ImageLabel272 = Instance.new("ImageLabel")
- TextLabel273 = Instance.new("TextLabel")
- TextLabel274 = Instance.new("TextLabel")
- Frame275 = Instance.new("Frame")
- TextLabel276 = Instance.new("TextLabel")
- TextLabel277 = Instance.new("TextLabel")
- TextLabel278 = Instance.new("TextLabel")
- Frame279 = Instance.new("Frame")
- Frame280 = Instance.new("Frame")
- ImageLabel281 = Instance.new("ImageLabel")
- ImageLabel282 = Instance.new("ImageLabel")
- Frame283 = Instance.new("Frame")
- TextLabel284 = Instance.new("TextLabel")
- Frame285 = Instance.new("Frame")
- ImageLabel286 = Instance.new("ImageLabel")
- ImageLabel287 = Instance.new("ImageLabel")
- Frame288 = Instance.new("Frame")
- Frame289 = Instance.new("Frame")
- LocalScript290 = Instance.new("LocalScript")
- TextLabel291 = Instance.new("TextLabel")
- Part292 = Instance.new("Part")
- SpecialMesh293 = Instance.new("SpecialMesh")
- Weld294 = Instance.new("Weld")
- Weld295 = Instance.new("Weld")
- Weld296 = Instance.new("Weld")
- Weld297 = Instance.new("Weld")
- Weld298 = Instance.new("Weld")
- Weld299 = Instance.new("Weld")
- Weld300 = Instance.new("Weld")
- Weld301 = Instance.new("Weld")
- Weld302 = Instance.new("Weld")
- Weld303 = Instance.new("Weld")
- Weld304 = Instance.new("Weld")
- Weld305 = Instance.new("Weld")
- Weld306 = Instance.new("Weld")
- Weld307 = Instance.new("Weld")
- Weld308 = Instance.new("Weld")
- Weld309 = Instance.new("Weld")
- Weld310 = Instance.new("Weld")
- Weld311 = Instance.new("Weld")
- Weld312 = Instance.new("Weld")
- Weld313 = Instance.new("Weld")
- Weld314 = Instance.new("Weld")
- Weld315 = Instance.new("Weld")
- Weld316 = Instance.new("Weld")
- Weld317 = Instance.new("Weld")
- Weld318 = Instance.new("Weld")
- Weld319 = Instance.new("Weld")
- Weld320 = Instance.new("Weld")
- Weld321 = Instance.new("Weld")
- Weld322 = Instance.new("Weld")
- Weld323 = Instance.new("Weld")
- Weld324 = Instance.new("Weld")
- Weld325 = Instance.new("Weld")
- Weld326 = Instance.new("Weld")
- Weld327 = Instance.new("Weld")
- Weld328 = Instance.new("Weld")
- Weld329 = Instance.new("Weld")
- Weld330 = Instance.new("Weld")
- Weld331 = Instance.new("Weld")
- Weld332 = Instance.new("Weld")
- Weld333 = Instance.new("Weld")
- Weld334 = Instance.new("Weld")
- Weld335 = Instance.new("Weld")
- Weld336 = Instance.new("Weld")
- Weld337 = Instance.new("Weld")
- Weld338 = Instance.new("Weld")
- Weld339 = Instance.new("Weld")
- Weld340 = Instance.new("Weld")
- Weld341 = Instance.new("Weld")
- Weld342 = Instance.new("Weld")
- Weld343 = Instance.new("Weld")
- Weld344 = Instance.new("Weld")
- Weld345 = Instance.new("Weld")
- Weld346 = Instance.new("Weld")
- Weld347 = Instance.new("Weld")
- Weld348 = Instance.new("Weld")
- Weld349 = Instance.new("Weld")
- Weld350 = Instance.new("Weld")
- Weld351 = Instance.new("Weld")
- Weld352 = Instance.new("Weld")
- Weld353 = Instance.new("Weld")
- Weld354 = Instance.new("Weld")
- Weld355 = Instance.new("Weld")
- Weld356 = Instance.new("Weld")
- Weld357 = Instance.new("Weld")
- Weld358 = Instance.new("Weld")
- Weld359 = Instance.new("Weld")
- Weld360 = Instance.new("Weld")
- Weld361 = Instance.new("Weld")
- Weld362 = Instance.new("Weld")
- Weld363 = Instance.new("Weld")
- Weld364 = Instance.new("Weld")
- Weld365 = Instance.new("Weld")
- Weld366 = Instance.new("Weld")
- Part367 = Instance.new("Part")
- Sound368 = Instance.new("Sound")
- Sound369 = Instance.new("Sound")
- Part370 = Instance.new("Part")
- Sound371 = Instance.new("Sound")
- Sound372 = Instance.new("Sound")
- Model373 = Instance.new("Model")
- Part374 = Instance.new("Part")
- Decal375 = Instance.new("Decal")
- Part376 = Instance.new("Part")
- Decal377 = Instance.new("Decal")
- Motor378 = Instance.new("Motor")
- Motor379 = Instance.new("Motor")
- Motor380 = Instance.new("Motor")
- Motor381 = Instance.new("Motor")
- Motor382 = Instance.new("Motor")
- Part383 = Instance.new("Part")
- Part384 = Instance.new("Part")
- Part385 = Instance.new("Part")
- Part386 = Instance.new("Part")
- SpecialMesh387 = Instance.new("SpecialMesh")
- Decal388 = Instance.new("Decal")
- Decal389 = Instance.new("Decal")
- Humanoid390 = Instance.new("Humanoid")
- Script391 = Instance.new("Script")
- Shirt392 = Instance.new("Shirt")
- Pants393 = Instance.new("Pants")
- Part394 = Instance.new("Part")
- Tool0.Name = "Steamer"
- Tool0.Parent = mas
- Part1.Parent = Tool0
- Part1.Material = Enum.Material.SmoothPlastic
- Part1.Transparency = 1
- Part1.Rotation = Vector3.new(-60, 0, 165)
- Part1.Anchored = true
- Part1.CanCollide = false
- Part1.FormFactor = Enum.FormFactor.Custom
- Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part1.CFrame = CFrame.new(1435.38062, 48.6328773, -1311.01868, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
- Part1.BottomSurface = Enum.SurfaceType.Smooth
- Part1.TopSurface = Enum.SurfaceType.Smooth
- Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
- Part1.Orientation = Vector3.new(-60, 0, 165)
- CylinderMesh2.Parent = Part1
- CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
- CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
- Part3.Parent = Tool0
- Part3.Material = Enum.Material.SmoothPlastic
- Part3.BrickColor = BrickColor.new("Nougat")
- Part3.Transparency = 1
- Part3.Rotation = Vector3.new(180, 0, 90)
- Part3.Anchored = true
- Part3.CanCollide = false
- Part3.FormFactor = Enum.FormFactor.Custom
- Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
- Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part3.BottomSurface = Enum.SurfaceType.Smooth
- Part3.TopSurface = Enum.SurfaceType.Smooth
- Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
- Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
- Part3.Orientation = Vector3.new(0, -180, -90)
- Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
- CylinderMesh4.Parent = Part3
- Part5.Parent = Tool0
- Part5.Material = Enum.Material.SmoothPlastic
- Part5.BrickColor = BrickColor.new("Dark stone grey")
- Part5.Transparency = 1
- Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
- Part5.Anchored = true
- Part5.CanCollide = false
- Part5.FormFactor = Enum.FormFactor.Custom
- Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part5.CFrame = CFrame.new(1435.09131, 49.0662308, -1311.1488, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
- Part5.BottomSurface = Enum.SurfaceType.Smooth
- Part5.TopSurface = Enum.SurfaceType.Smooth
- Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
- Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
- Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh6.Parent = Part5
- CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- Part7.Parent = Tool0
- Part7.Material = Enum.Material.SmoothPlastic
- Part7.BrickColor = BrickColor.new("Black")
- Part7.Transparency = 1
- Part7.Rotation = Vector3.new(-105, 75, 90)
- Part7.Anchored = true
- Part7.CanCollide = false
- Part7.FormFactor = Enum.FormFactor.Custom
- Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part7.CFrame = CFrame.new(1434.85657, 49.1090851, -1311.08801, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
- Part7.BottomSurface = Enum.SurfaceType.Smooth
- Part7.TopSurface = Enum.SurfaceType.Smooth
- Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
- Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
- Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh8.Parent = Part7
- CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
- CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
- Part9.Parent = Tool0
- Part9.Material = Enum.Material.SmoothPlastic
- Part9.BrickColor = BrickColor.new("Dark stone grey")
- Part9.Transparency = 1
- Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
- Part9.Anchored = true
- Part9.CanCollide = false
- Part9.FormFactor = Enum.FormFactor.Custom
- Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part9.CFrame = CFrame.new(1435.07556, 49.067543, -1310.66211, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
- Part9.BottomSurface = Enum.SurfaceType.Smooth
- Part9.TopSurface = Enum.SurfaceType.Smooth
- Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
- Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
- Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh10.Parent = Part9
- CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- Part11.Parent = Tool0
- Part11.Material = Enum.Material.SmoothPlastic
- Part11.BrickColor = BrickColor.new("Dark stone grey")
- Part11.Transparency = 1
- Part11.Rotation = Vector3.new(180, 0, 90)
- Part11.Anchored = true
- Part11.CanCollide = false
- Part11.FormFactor = Enum.FormFactor.Custom
- Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part11.BottomSurface = Enum.SurfaceType.Smooth
- Part11.TopSurface = Enum.SurfaceType.Smooth
- Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
- Part11.Orientation = Vector3.new(0, -180, -90)
- Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh12.Parent = Part11
- CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
- CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
- Part13.Parent = Tool0
- Part13.Material = Enum.Material.SmoothPlastic
- Part13.BrickColor = BrickColor.new("Really black")
- Part13.Transparency = 1
- Part13.Rotation = Vector3.new(0, 90, 0)
- Part13.Anchored = true
- Part13.CanCollide = false
- Part13.FormFactor = Enum.FormFactor.Custom
- Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
- Part13.Orientation = Vector3.new(0, 90, 0)
- Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- SpecialMesh14.Parent = Part13
- SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
- SpecialMesh14.MeshType = Enum.MeshType.Brick
- SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
- Part15.Parent = Tool0
- Part15.Material = Enum.Material.SmoothPlastic
- Part15.BrickColor = BrickColor.new("Brick yellow")
- Part15.Transparency = 1
- Part15.Rotation = Vector3.new(-60, 0, 135)
- Part15.Anchored = true
- Part15.CanCollide = false
- Part15.FormFactor = Enum.FormFactor.Custom
- Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part15.CFrame = CFrame.new(1435.32275, 48.6293831, -1311.01672, -0.707099199, -0.707114458, 1.28547924e-06, 0.353550076, -0.353540927, 0.866031885, -0.612383127, 0.612370908, 0.499988824)
- Part15.BottomSurface = Enum.SurfaceType.Smooth
- Part15.TopSurface = Enum.SurfaceType.Smooth
- Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
- Part15.Orientation = Vector3.new(-60, 0, 135)
- Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh16.Parent = Part15
- CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
- CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
- Part17.Name = "AimPart"
- Part17.Parent = Tool0
- Part17.Material = Enum.Material.SmoothPlastic
- Part17.Transparency = 1
- Part17.Rotation = Vector3.new(90, 87.8300018, -90)
- Part17.Anchored = true
- Part17.CanCollide = false
- Part17.FormFactor = Enum.FormFactor.Custom
- Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
- Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
- Part17.BottomSurface = Enum.SurfaceType.Smooth
- Part17.TopSurface = Enum.SurfaceType.Smooth
- Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
- Part17.Orientation = Vector3.new(2.16999984, 90, 0)
- Part18.Name = "Main"
- Part18.Parent = Tool0
- Part18.Material = Enum.Material.SmoothPlastic
- Part18.BrickColor = BrickColor.new("Really black")
- Part18.Transparency = 1
- Part18.Rotation = Vector3.new(0, 0, 90)
- Part18.Anchored = true
- Part18.CanCollide = false
- Part18.FormFactor = Enum.FormFactor.Custom
- Part18.Size = Vector3.new(0.25, 0.25, 0.25)
- Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
- Part18.BottomSurface = Enum.SurfaceType.Smooth
- Part18.TopSurface = Enum.SurfaceType.Smooth
- Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
- Part18.Orientation = Vector3.new(0, 0, 90)
- Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- PointLight19.Name = "FlashFX"
- PointLight19.Parent = Part18
- PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
- PointLight19.Enabled = false
- PointLight19.Brightness = 10
- PointLight19.Range = 6
- PointLight19.Shadows = true
- PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
- BillboardGui20.Name = "FlashGui"
- BillboardGui20.Parent = Part18
- BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
- BillboardGui20.Enabled = false
- ImageLabel21.Name = "Label"
- ImageLabel21.Parent = BillboardGui20
- ImageLabel21.Transparency = 1
- ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
- ImageLabel21.BackgroundTransparency = 1
- ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
- ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
- CylinderMesh22.Parent = Part18
- CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
- CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
- CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
- Part23.Name = "Handle"
- Part23.Parent = Tool0
- Part23.Material = Enum.Material.SmoothPlastic
- Part23.Transparency = 1
- Part23.Rotation = Vector3.new(0, 90, 0)
- Part23.Anchored = true
- Part23.CanCollide = false
- Part23.FormFactor = Enum.FormFactor.Custom
- Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
- Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part23.BottomSurface = Enum.SurfaceType.Smooth
- Part23.TopSurface = Enum.SurfaceType.Smooth
- Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
- Part23.Orientation = Vector3.new(0, 90, 0)
- Sound24.Name = "FireSound"
- Sound24.Parent = Part23
- Sound24.Pitch = 0.20000000298023
- Sound24.SoundId = "rbxassetid://823426534"
- Sound24.Volume = 10
- Sound25.Name = "ReloadSound"
- Sound25.Parent = Part23
- Sound25.Pitch = 0.20000000298023
- Sound25.SoundId = "rbxassetid://811242564"
- Sound25.Volume = 10
- Part26.Parent = Tool0
- Part26.Material = Enum.Material.SmoothPlastic
- Part26.BrickColor = BrickColor.new("Nougat")
- Part26.Transparency = 1
- Part26.Rotation = Vector3.new(180, 0, 90)
- Part26.Anchored = true
- Part26.CanCollide = false
- Part26.FormFactor = Enum.FormFactor.Custom
- Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
- Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part26.BottomSurface = Enum.SurfaceType.Smooth
- Part26.TopSurface = Enum.SurfaceType.Smooth
- Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
- Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
- Part26.Orientation = Vector3.new(0, -180, -90)
- Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
- CylinderMesh27.Parent = Part26
- Part28.Name = "Smooth Block Model"
- Part28.Parent = Tool0
- Part28.Material = Enum.Material.SmoothPlastic
- Part28.BrickColor = BrickColor.new("Dark stone grey")
- Part28.Transparency = 1
- Part28.Rotation = Vector3.new(-90, -15, -90)
- Part28.Anchored = true
- Part28.CanCollide = false
- Part28.FormFactor = Enum.FormFactor.Custom
- Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
- Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
- Part28.Orientation = Vector3.new(-75, -90, 0)
- Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh29.Parent = Part28
- SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
- SpecialMesh29.MeshType = Enum.MeshType.Wedge
- SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
- Part30.Name = "Mag"
- Part30.Parent = Tool0
- Part30.Material = Enum.Material.SmoothPlastic
- Part30.BrickColor = BrickColor.new("Dark stone grey")
- Part30.Transparency = 1
- Part30.Rotation = Vector3.new(0, 90, 0)
- Part30.Anchored = true
- Part30.CanCollide = false
- Part30.FormFactor = Enum.FormFactor.Custom
- Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part30.BottomSurface = Enum.SurfaceType.Smooth
- Part30.TopSurface = Enum.SurfaceType.Smooth
- Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
- Part30.Orientation = Vector3.new(0, 90, 0)
- Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh31.Parent = Part30
- SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
- SpecialMesh31.MeshType = Enum.MeshType.Brick
- SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
- Decal32.Parent = Part30
- Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
- Decal32.Face = Enum.NormalId.Right
- Decal33.Parent = Part30
- Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
- Decal33.Face = Enum.NormalId.Left
- Part34.Name = "Mag"
- Part34.Parent = Tool0
- Part34.Material = Enum.Material.SmoothPlastic
- Part34.BrickColor = BrickColor.new("Dark stone grey")
- Part34.Transparency = 1
- Part34.Rotation = Vector3.new(0, 90, 0)
- Part34.Anchored = true
- Part34.CanCollide = false
- Part34.FormFactor = Enum.FormFactor.Custom
- Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part34.BottomSurface = Enum.SurfaceType.Smooth
- Part34.TopSurface = Enum.SurfaceType.Smooth
- Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
- Part34.Orientation = Vector3.new(0, 90, 0)
- Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh35.Parent = Part34
- SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
- SpecialMesh35.MeshType = Enum.MeshType.Brick
- SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
- Part36.Name = "Mag"
- Part36.Parent = Tool0
- Part36.Material = Enum.Material.SmoothPlastic
- Part36.BrickColor = BrickColor.new("Dark stone grey")
- Part36.Transparency = 1
- Part36.Rotation = Vector3.new(0, 90, 0)
- Part36.Anchored = true
- Part36.CanCollide = false
- Part36.FormFactor = Enum.FormFactor.Custom
- Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part36.BottomSurface = Enum.SurfaceType.Smooth
- Part36.TopSurface = Enum.SurfaceType.Smooth
- Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
- Part36.Orientation = Vector3.new(0, 90, 0)
- Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh37.Parent = Part36
- SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
- SpecialMesh37.MeshType = Enum.MeshType.Brick
- SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
- Part38.Name = "Mag"
- Part38.Parent = Tool0
- Part38.Material = Enum.Material.SmoothPlastic
- Part38.BrickColor = BrickColor.new("Cool yellow")
- Part38.Transparency = 1
- Part38.Rotation = Vector3.new(0, 90, 0)
- Part38.Anchored = true
- Part38.CanCollide = false
- Part38.FormFactor = Enum.FormFactor.Custom
- Part38.Size = Vector3.new(1, 1, 1)
- Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part38.BottomSurface = Enum.SurfaceType.Smooth
- Part38.TopSurface = Enum.SurfaceType.Smooth
- Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
- Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
- Part38.Orientation = Vector3.new(0, 90, 0)
- Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
- CylinderMesh39.Parent = Part38
- CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
- CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
- Part40.Name = "Mag"
- Part40.Parent = Tool0
- Part40.Material = Enum.Material.SmoothPlastic
- Part40.BrickColor = BrickColor.new("Dark stone grey")
- Part40.Transparency = 1
- Part40.Rotation = Vector3.new(0, 90, 0)
- Part40.Anchored = true
- Part40.CanCollide = false
- Part40.FormFactor = Enum.FormFactor.Custom
- Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part40.BottomSurface = Enum.SurfaceType.Smooth
- Part40.TopSurface = Enum.SurfaceType.Smooth
- Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
- Part40.Orientation = Vector3.new(0, 90, 0)
- Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh41.Parent = Part40
- CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
- CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
- Part42.Name = "Mag"
- Part42.Parent = Tool0
- Part42.Material = Enum.Material.SmoothPlastic
- Part42.BrickColor = BrickColor.new("Bright red")
- Part42.Transparency = 1
- Part42.Rotation = Vector3.new(0, 90, 0)
- Part42.Anchored = true
- Part42.CanCollide = false
- Part42.FormFactor = Enum.FormFactor.Custom
- Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part42.BottomSurface = Enum.SurfaceType.Smooth
- Part42.TopSurface = Enum.SurfaceType.Smooth
- Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
- Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
- Part42.Orientation = Vector3.new(0, 90, 0)
- Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
- CylinderMesh43.Parent = Part42
- CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
- CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
- Part44.Name = "Mag"
- Part44.Parent = Tool0
- Part44.Material = Enum.Material.SmoothPlastic
- Part44.BrickColor = BrickColor.new("Dark stone grey")
- Part44.Transparency = 1
- Part44.Rotation = Vector3.new(90, 0, -90)
- Part44.Anchored = true
- Part44.CanCollide = false
- Part44.FormFactor = Enum.FormFactor.Custom
- Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
- Part44.BottomSurface = Enum.SurfaceType.Smooth
- Part44.TopSurface = Enum.SurfaceType.Smooth
- Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
- Part44.Orientation = Vector3.new(90, 90, 0)
- Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh45.Parent = Part44
- SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
- SpecialMesh45.MeshType = Enum.MeshType.Sphere
- SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
- Part46.Name = "Mag"
- Part46.Parent = Tool0
- Part46.Material = Enum.Material.SmoothPlastic
- Part46.BrickColor = BrickColor.new("Dark stone grey")
- Part46.Transparency = 1
- Part46.Rotation = Vector3.new(0, 90, 0)
- Part46.Anchored = true
- Part46.CanCollide = false
- Part46.FormFactor = Enum.FormFactor.Custom
- Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part46.BottomSurface = Enum.SurfaceType.Smooth
- Part46.TopSurface = Enum.SurfaceType.Smooth
- Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
- Part46.Orientation = Vector3.new(0, 90, 0)
- Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh47.Parent = Part46
- CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
- CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
- Part48.Name = "Mag"
- Part48.Parent = Tool0
- Part48.Material = Enum.Material.SmoothPlastic
- Part48.BrickColor = BrickColor.new("Dark stone grey")
- Part48.Transparency = 1
- Part48.Rotation = Vector3.new(0, 90, 0)
- Part48.Anchored = true
- Part48.CanCollide = false
- Part48.FormFactor = Enum.FormFactor.Custom
- Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part48.BottomSurface = Enum.SurfaceType.Smooth
- Part48.TopSurface = Enum.SurfaceType.Smooth
- Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
- Part48.Orientation = Vector3.new(0, 90, 0)
- Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh49.Parent = Part48
- SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
- SpecialMesh49.MeshType = Enum.MeshType.Brick
- SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
- Decal50.Parent = Part48
- Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
- Decal50.Face = Enum.NormalId.Right
- Decal51.Parent = Part48
- Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
- Decal51.Face = Enum.NormalId.Left
- Part52.Parent = Tool0
- Part52.Material = Enum.Material.SmoothPlastic
- Part52.BrickColor = BrickColor.new("Dark stone grey")
- Part52.Transparency = 1
- Part52.Rotation = Vector3.new(-90, 0, 90)
- Part52.Anchored = true
- Part52.CanCollide = false
- Part52.FormFactor = Enum.FormFactor.Custom
- Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
- Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part52.BottomSurface = Enum.SurfaceType.Smooth
- Part52.TopSurface = Enum.SurfaceType.Smooth
- Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
- Part52.Orientation = Vector3.new(-90, 90, 0)
- Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh53.Parent = Part52
- SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
- SpecialMesh53.MeshType = Enum.MeshType.Brick
- SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
- Part54.Parent = Tool0
- Part54.Material = Enum.Material.SmoothPlastic
- Part54.BrickColor = BrickColor.new("Dark stone grey")
- Part54.Transparency = 1
- Part54.Rotation = Vector3.new(0, 90, 0)
- Part54.Anchored = true
- Part54.CanCollide = false
- Part54.FormFactor = Enum.FormFactor.Custom
- Part54.Size = Vector3.new(1, 1, 1)
- Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
- Part54.Orientation = Vector3.new(0, 90, 0)
- Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh55.Parent = Part54
- SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
- SpecialMesh55.MeshType = Enum.MeshType.Brick
- SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
- Part56.Parent = Tool0
- Part56.Material = Enum.Material.SmoothPlastic
- Part56.BrickColor = BrickColor.new("Dark stone grey")
- Part56.Transparency = 1
- Part56.Rotation = Vector3.new(180, 0, 90)
- Part56.Anchored = true
- Part56.CanCollide = false
- Part56.FormFactor = Enum.FormFactor.Custom
- Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part56.BottomSurface = Enum.SurfaceType.Smooth
- Part56.TopSurface = Enum.SurfaceType.Smooth
- Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
- Part56.Orientation = Vector3.new(0, -180, -90)
- Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh57.Parent = Part56
- CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
- CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
- Part58.Parent = Tool0
- Part58.Material = Enum.Material.SmoothPlastic
- Part58.BrickColor = BrickColor.new("Dark stone grey")
- Part58.Transparency = 1
- Part58.Rotation = Vector3.new(180, 0, 90)
- Part58.Anchored = true
- Part58.CanCollide = false
- Part58.FormFactor = Enum.FormFactor.Custom
- Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
- Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part58.BottomSurface = Enum.SurfaceType.Smooth
- Part58.TopSurface = Enum.SurfaceType.Smooth
- Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
- Part58.Orientation = Vector3.new(0, -180, -90)
- Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh59.Parent = Part58
- CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
- CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
- Part60.Parent = Tool0
- Part60.Material = Enum.Material.SmoothPlastic
- Part60.BrickColor = BrickColor.new("Dark stone grey")
- Part60.Transparency = 1
- Part60.Rotation = Vector3.new(90, 75, -90)
- Part60.Anchored = true
- Part60.CanCollide = false
- Part60.FormFactor = Enum.FormFactor.Custom
- Part60.Size = Vector3.new(1, 1, 1)
- Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
- Part60.BottomSurface = Enum.SurfaceType.Smooth
- Part60.TopSurface = Enum.SurfaceType.Smooth
- Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
- Part60.Orientation = Vector3.new(15, 90, 0)
- Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh61.Parent = Part60
- SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
- SpecialMesh61.MeshType = Enum.MeshType.Brick
- SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
- Part62.Parent = Tool0
- Part62.Material = Enum.Material.SmoothPlastic
- Part62.BrickColor = BrickColor.new("Medium green")
- Part62.Reflectance = 0.40000000596046
- Part62.Transparency = 1
- Part62.Rotation = Vector3.new(-90, 0, -90)
- Part62.Anchored = true
- Part62.CanCollide = false
- Part62.FormFactor = Enum.FormFactor.Custom
- Part62.Size = Vector3.new(1, 1, 1)
- Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
- Part62.BottomSurface = Enum.SurfaceType.Smooth
- Part62.TopSurface = Enum.SurfaceType.Smooth
- Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
- Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
- Part62.Orientation = Vector3.new(-90, -90, 0)
- Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
- CylinderMesh63.Parent = Part62
- CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
- CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
- Part64.Parent = Tool0
- Part64.Material = Enum.Material.SmoothPlastic
- Part64.BrickColor = BrickColor.new("Dark stone grey")
- Part64.Transparency = 1
- Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
- Part64.Anchored = true
- Part64.CanCollide = false
- Part64.FormFactor = Enum.FormFactor.Custom
- Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part64.CFrame = CFrame.new(1434.84216, 49.1045074, -1310.66235, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
- Part64.BottomSurface = Enum.SurfaceType.Smooth
- Part64.TopSurface = Enum.SurfaceType.Smooth
- Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
- Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
- Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh65.Parent = Part64
- CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- Part66.Parent = Tool0
- Part66.Material = Enum.Material.SmoothPlastic
- Part66.BrickColor = BrickColor.new("Dark stone grey")
- Part66.Transparency = 1
- Part66.Rotation = Vector3.new(-90, 0, 90)
- Part66.Anchored = true
- Part66.CanCollide = false
- Part66.FormFactor = Enum.FormFactor.Custom
- Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part66.BottomSurface = Enum.SurfaceType.Smooth
- Part66.TopSurface = Enum.SurfaceType.Smooth
- Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
- Part66.Orientation = Vector3.new(-90, 90, 0)
- Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh67.Parent = Part66
- SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
- SpecialMesh67.MeshType = Enum.MeshType.Brick
- SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
- Part68.Parent = Tool0
- Part68.Material = Enum.Material.SmoothPlastic
- Part68.BrickColor = BrickColor.new("Dark stone grey")
- Part68.Transparency = 1
- Part68.Rotation = Vector3.new(0, 90, 0)
- Part68.Anchored = true
- Part68.CanCollide = false
- Part68.FormFactor = Enum.FormFactor.Custom
- Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
- Part68.Orientation = Vector3.new(0, 90, 0)
- Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh69.Parent = Part68
- SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
- SpecialMesh69.MeshType = Enum.MeshType.Brick
- SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
- Part70.Parent = Tool0
- Part70.Material = Enum.Material.SmoothPlastic
- Part70.BrickColor = BrickColor.new("Black")
- Part70.Transparency = 1
- Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
- Part70.Anchored = true
- Part70.CanCollide = false
- Part70.FormFactor = Enum.FormFactor.Custom
- Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part70.CFrame = CFrame.new(1435.48877, 48.9965515, -1310.62427, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
- Part70.BottomSurface = Enum.SurfaceType.Smooth
- Part70.TopSurface = Enum.SurfaceType.Smooth
- Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
- Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
- Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh71.Parent = Part70
- CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
- CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
- Part72.Parent = Tool0
- Part72.Material = Enum.Material.SmoothPlastic
- Part72.BrickColor = BrickColor.new("Black")
- Part72.Transparency = 1
- Part72.Rotation = Vector3.new(90, 0, 90)
- Part72.Anchored = true
- Part72.CanCollide = false
- Part72.FormFactor = Enum.FormFactor.Custom
- Part72.Size = Vector3.new(1, 1, 1)
- Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
- Part72.BottomSurface = Enum.SurfaceType.Smooth
- Part72.TopSurface = Enum.SurfaceType.Smooth
- Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
- Part72.Orientation = Vector3.new(90, -90, 0)
- Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
- SpecialMesh73.Parent = Part72
- SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
- SpecialMesh73.MeshType = Enum.MeshType.Sphere
- SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
- Part74.Parent = Tool0
- Part74.Material = Enum.Material.SmoothPlastic
- Part74.Transparency = 1
- Part74.Rotation = Vector3.new(-90, -30, -90)
- Part74.Anchored = true
- Part74.CanCollide = false
- Part74.FormFactor = Enum.FormFactor.Custom
- Part74.Size = Vector3.new(1, 1, 1)
- Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
- Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
- Part74.Orientation = Vector3.new(-60, -90, 0)
- CylinderMesh75.Parent = Part74
- CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
- CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
- Part76.Parent = Tool0
- Part76.Material = Enum.Material.SmoothPlastic
- Part76.BrickColor = BrickColor.new("Brick yellow")
- Part76.Transparency = 1
- Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
- Part76.Anchored = true
- Part76.CanCollide = false
- Part76.FormFactor = Enum.FormFactor.Custom
- Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part76.CFrame = CFrame.new(1435.48877, 48.7422256, -1311.07788, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
- Part76.BottomSurface = Enum.SurfaceType.Smooth
- Part76.TopSurface = Enum.SurfaceType.Smooth
- Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
- Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
- Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh77.Parent = Part76
- CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
- CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
- Part78.Parent = Tool0
- Part78.Material = Enum.Material.SmoothPlastic
- Part78.BrickColor = BrickColor.new("Dark stone grey")
- Part78.Transparency = 1
- Part78.Rotation = Vector3.new(180, 0, 90)
- Part78.Anchored = true
- Part78.CanCollide = false
- Part78.FormFactor = Enum.FormFactor.Custom
- Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
- Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part78.BottomSurface = Enum.SurfaceType.Smooth
- Part78.TopSurface = Enum.SurfaceType.Smooth
- Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
- Part78.Orientation = Vector3.new(0, -180, -90)
- Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh79.Parent = Part78
- CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
- CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
- Part80.Parent = Tool0
- Part80.Material = Enum.Material.SmoothPlastic
- Part80.BrickColor = BrickColor.new("Brick yellow")
- Part80.Transparency = 1
- Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
- Part80.Anchored = true
- Part80.CanCollide = false
- Part80.FormFactor = Enum.FormFactor.Custom
- Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part80.CFrame = CFrame.new(1435.44849, 48.841629, -1311.05676, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
- Part80.BottomSurface = Enum.SurfaceType.Smooth
- Part80.TopSurface = Enum.SurfaceType.Smooth
- Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
- Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
- Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh81.Parent = Part80
- CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
- CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
- Part82.Parent = Tool0
- Part82.Material = Enum.Material.SmoothPlastic
- Part82.BrickColor = BrickColor.new("Dark stone grey")
- Part82.Transparency = 1
- Part82.Rotation = Vector3.new(-90, 75, 90)
- Part82.Anchored = true
- Part82.CanCollide = false
- Part82.FormFactor = Enum.FormFactor.Custom
- Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
- Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
- Part82.Orientation = Vector3.new(-15, 90, 0)
- Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh83.Parent = Part82
- CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
- CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
- Part84.Parent = Tool0
- Part84.Material = Enum.Material.SmoothPlastic
- Part84.BrickColor = BrickColor.new("Dark stone grey")
- Part84.Transparency = 1
- Part84.Rotation = Vector3.new(180, 0, 90)
- Part84.Anchored = true
- Part84.CanCollide = false
- Part84.FormFactor = Enum.FormFactor.Custom
- Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part84.BottomSurface = Enum.SurfaceType.Smooth
- Part84.TopSurface = Enum.SurfaceType.Smooth
- Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
- Part84.Orientation = Vector3.new(0, -180, -90)
- Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh85.Parent = Part84
- CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
- CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
- Part86.Parent = Tool0
- Part86.Material = Enum.Material.SmoothPlastic
- Part86.BrickColor = BrickColor.new("Dark stone grey")
- Part86.Transparency = 1
- Part86.Rotation = Vector3.new(90, 90, 0)
- Part86.Anchored = true
- Part86.CanCollide = false
- Part86.FormFactor = Enum.FormFactor.Custom
- Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
- Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
- Part86.BottomSurface = Enum.SurfaceType.Smooth
- Part86.TopSurface = Enum.SurfaceType.Smooth
- Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
- Part86.Orientation = Vector3.new(0, 90, 90)
- Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh87.Parent = Part86
- CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
- CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
- Decal88.Parent = Part86
- Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal88.Face = Enum.NormalId.Bottom
- Decal89.Parent = Part86
- Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal89.Face = Enum.NormalId.Top
- Part90.Parent = Tool0
- Part90.Material = Enum.Material.SmoothPlastic
- Part90.BrickColor = BrickColor.new("Dark stone grey")
- Part90.Transparency = 1
- Part90.Rotation = Vector3.new(-90, 60, 90)
- Part90.Anchored = true
- Part90.CanCollide = false
- Part90.FormFactor = Enum.FormFactor.Custom
- Part90.Size = Vector3.new(1, 1, 1)
- Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
- Part90.BottomSurface = Enum.SurfaceType.Smooth
- Part90.TopSurface = Enum.SurfaceType.Smooth
- Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
- Part90.Orientation = Vector3.new(-30, 90, 0)
- Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh91.Parent = Part90
- SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
- SpecialMesh91.MeshType = Enum.MeshType.Brick
- SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
- Part92.Parent = Tool0
- Part92.Material = Enum.Material.SmoothPlastic
- Part92.BrickColor = BrickColor.new("Black")
- Part92.Transparency = 1
- Part92.Rotation = Vector3.new(-90, 0, 90)
- Part92.Anchored = true
- Part92.CanCollide = false
- Part92.FormFactor = Enum.FormFactor.Custom
- Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part92.BottomSurface = Enum.SurfaceType.Smooth
- Part92.TopSurface = Enum.SurfaceType.Smooth
- Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
- Part92.Orientation = Vector3.new(-90, 90, 0)
- Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
- SpecialMesh93.Parent = Part92
- SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
- SpecialMesh93.MeshType = Enum.MeshType.Brick
- SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
- Part94.Parent = Tool0
- Part94.Material = Enum.Material.SmoothPlastic
- Part94.BrickColor = BrickColor.new("Black")
- Part94.Transparency = 1
- Part94.Rotation = Vector3.new(180, 0, 90)
- Part94.Anchored = true
- Part94.CanCollide = false
- Part94.FormFactor = Enum.FormFactor.Custom
- Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part94.BottomSurface = Enum.SurfaceType.Smooth
- Part94.TopSurface = Enum.SurfaceType.Smooth
- Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
- Part94.Orientation = Vector3.new(0, -180, -90)
- Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh95.Parent = Part94
- CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
- CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
- Part96.Parent = Tool0
- Part96.Material = Enum.Material.SmoothPlastic
- Part96.BrickColor = BrickColor.new("Dark stone grey")
- Part96.Transparency = 1
- Part96.Rotation = Vector3.new(0, 90, 0)
- Part96.Anchored = true
- Part96.CanCollide = false
- Part96.FormFactor = Enum.FormFactor.Custom
- Part96.Size = Vector3.new(1, 1, 1)
- Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part96.BottomSurface = Enum.SurfaceType.Smooth
- Part96.TopSurface = Enum.SurfaceType.Smooth
- Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
- Part96.Orientation = Vector3.new(0, 90, 0)
- Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh97.Parent = Part96
- SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
- SpecialMesh97.MeshType = Enum.MeshType.Brick
- SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
- Part98.Parent = Tool0
- Part98.Material = Enum.Material.SmoothPlastic
- Part98.BrickColor = BrickColor.new("Dark stone grey")
- Part98.Transparency = 1
- Part98.Rotation = Vector3.new(-90, 75, 90)
- Part98.Anchored = true
- Part98.CanCollide = false
- Part98.FormFactor = Enum.FormFactor.Custom
- Part98.Size = Vector3.new(1, 1, 1)
- Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
- Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
- Part98.Orientation = Vector3.new(-15, 90, 0)
- Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh99.Parent = Part98
- SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
- SpecialMesh99.MeshType = Enum.MeshType.Brick
- SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
- Part100.Parent = Tool0
- Part100.Material = Enum.Material.SmoothPlastic
- Part100.BrickColor = BrickColor.new("Medium green")
- Part100.Reflectance = 0.40000000596046
- Part100.Transparency = 1
- Part100.Rotation = Vector3.new(-90, 30, -90)
- Part100.Anchored = true
- Part100.CanCollide = false
- Part100.FormFactor = Enum.FormFactor.Custom
- Part100.Size = Vector3.new(1, 1, 1)
- Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
- Part100.BottomSurface = Enum.SurfaceType.Smooth
- Part100.TopSurface = Enum.SurfaceType.Smooth
- Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
- Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
- Part100.Orientation = Vector3.new(-60, 90, 180)
- Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
- CylinderMesh101.Parent = Part100
- CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
- CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
- Part102.Parent = Tool0
- Part102.Material = Enum.Material.SmoothPlastic
- Part102.BrickColor = BrickColor.new("Dark stone grey")
- Part102.Transparency = 1
- Part102.Rotation = Vector3.new(-90, -90, 0)
- Part102.Anchored = true
- Part102.CanCollide = false
- Part102.FormFactor = Enum.FormFactor.Custom
- Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
- Part102.BottomSurface = Enum.SurfaceType.Smooth
- Part102.TopSurface = Enum.SurfaceType.Smooth
- Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
- Part102.Orientation = Vector3.new(0, -90, 90)
- Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh103.Parent = Part102
- CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- Decal104.Parent = Part102
- Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal104.Face = Enum.NormalId.Bottom
- Part105.Parent = Tool0
- Part105.Material = Enum.Material.SmoothPlastic
- Part105.BrickColor = BrickColor.new("Black")
- Part105.Transparency = 1
- Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
- Part105.Anchored = true
- Part105.CanCollide = false
- Part105.FormFactor = Enum.FormFactor.Custom
- Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part105.CFrame = CFrame.new(1434.84009, 49.1090317, -1310.6604, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
- Part105.BottomSurface = Enum.SurfaceType.Smooth
- Part105.TopSurface = Enum.SurfaceType.Smooth
- Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
- Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
- Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh106.Parent = Part105
- CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
- CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
- Part107.Parent = Tool0
- Part107.Material = Enum.Material.SmoothPlastic
- Part107.BrickColor = BrickColor.new("Dark stone grey")
- Part107.Transparency = 1
- Part107.Rotation = Vector3.new(180, 0, 90)
- Part107.Anchored = true
- Part107.CanCollide = false
- Part107.FormFactor = Enum.FormFactor.Custom
- Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
- Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part107.BottomSurface = Enum.SurfaceType.Smooth
- Part107.TopSurface = Enum.SurfaceType.Smooth
- Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
- Part107.Orientation = Vector3.new(0, -180, -90)
- Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh108.Parent = Part107
- CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
- CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
- Part109.Parent = Tool0
- Part109.Material = Enum.Material.SmoothPlastic
- Part109.BrickColor = BrickColor.new("Black")
- Part109.Transparency = 1
- Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
- Part109.Anchored = true
- Part109.CanCollide = false
- Part109.FormFactor = Enum.FormFactor.Custom
- Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part109.CFrame = CFrame.new(1435.08655, 49.0373726, -1311.1228, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
- Part109.BottomSurface = Enum.SurfaceType.Smooth
- Part109.TopSurface = Enum.SurfaceType.Smooth
- Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
- Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
- Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh110.Parent = Part109
- CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
- CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
- Part111.Parent = Tool0
- Part111.Material = Enum.Material.SmoothPlastic
- Part111.BrickColor = BrickColor.new("Nougat")
- Part111.Transparency = 1
- Part111.Rotation = Vector3.new(180, 0, 90)
- Part111.Anchored = true
- Part111.CanCollide = false
- Part111.FormFactor = Enum.FormFactor.Custom
- Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
- Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part111.BottomSurface = Enum.SurfaceType.Smooth
- Part111.TopSurface = Enum.SurfaceType.Smooth
- Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
- Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
- Part111.Orientation = Vector3.new(0, -180, -90)
- Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
- CylinderMesh112.Parent = Part111
- CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
- CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
- Part113.Parent = Tool0
- Part113.Material = Enum.Material.SmoothPlastic
- Part113.BrickColor = BrickColor.new("Brick yellow")
- Part113.Transparency = 1
- Part113.Rotation = Vector3.new(-60, 0, 165)
- Part113.Anchored = true
- Part113.CanCollide = false
- Part113.FormFactor = Enum.FormFactor.Custom
- Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part113.CFrame = CFrame.new(1435.49927, 48.6328773, -1311.01025, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
- Part113.BottomSurface = Enum.SurfaceType.Smooth
- Part113.TopSurface = Enum.SurfaceType.Smooth
- Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
- Part113.Orientation = Vector3.new(-60, 0, 165)
- Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh114.Parent = Part113
- CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
- CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
- Part115.Parent = Tool0
- Part115.Material = Enum.Material.SmoothPlastic
- Part115.BrickColor = BrickColor.new("Dark stone grey")
- Part115.Transparency = 1
- Part115.Rotation = Vector3.new(90, 90, 0)
- Part115.Anchored = true
- Part115.CanCollide = false
- Part115.FormFactor = Enum.FormFactor.Custom
- Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
- Part115.BottomSurface = Enum.SurfaceType.Smooth
- Part115.TopSurface = Enum.SurfaceType.Smooth
- Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
- Part115.Orientation = Vector3.new(0, 90, 90)
- Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh116.Parent = Part115
- CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
- CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
- Decal117.Parent = Part115
- Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal117.Face = Enum.NormalId.Top
- Part118.Parent = Tool0
- Part118.Material = Enum.Material.SmoothPlastic
- Part118.BrickColor = BrickColor.new("Dark stone grey")
- Part118.Transparency = 1
- Part118.Rotation = Vector3.new(-90, -90, 0)
- Part118.Anchored = true
- Part118.CanCollide = false
- Part118.FormFactor = Enum.FormFactor.Custom
- Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
- Part118.BottomSurface = Enum.SurfaceType.Smooth
- Part118.TopSurface = Enum.SurfaceType.Smooth
- Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
- Part118.Orientation = Vector3.new(0, -90, 90)
- Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh119.Parent = Part118
- CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- Decal120.Parent = Part118
- Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal120.Face = Enum.NormalId.Bottom
- Part121.Parent = Tool0
- Part121.Material = Enum.Material.SmoothPlastic
- Part121.BrickColor = BrickColor.new("Dark stone grey")
- Part121.Transparency = 1
- Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
- Part121.Anchored = true
- Part121.CanCollide = false
- Part121.FormFactor = Enum.FormFactor.Custom
- Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part121.CFrame = CFrame.new(1435.49548, 49.0076942, -1310.61987, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
- Part121.BottomSurface = Enum.SurfaceType.Smooth
- Part121.TopSurface = Enum.SurfaceType.Smooth
- Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
- Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
- Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh122.Parent = Part121
- CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- Part123.Parent = Tool0
- Part123.Material = Enum.Material.SmoothPlastic
- Part123.BrickColor = BrickColor.new("Dark stone grey")
- Part123.Transparency = 1
- Part123.Rotation = Vector3.new(90, 90, 0)
- Part123.Anchored = true
- Part123.CanCollide = false
- Part123.FormFactor = Enum.FormFactor.Custom
- Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
- Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
- Part123.BottomSurface = Enum.SurfaceType.Smooth
- Part123.TopSurface = Enum.SurfaceType.Smooth
- Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
- Part123.Orientation = Vector3.new(0, 90, 90)
- Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh124.Parent = Part123
- CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
- CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
- Decal125.Parent = Part123
- Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal125.Face = Enum.NormalId.Bottom
- Decal126.Parent = Part123
- Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal126.Face = Enum.NormalId.Top
- Part127.Parent = Tool0
- Part127.Material = Enum.Material.SmoothPlastic
- Part127.BrickColor = BrickColor.new("Dark stone grey")
- Part127.Transparency = 1
- Part127.Rotation = Vector3.new(0, 90, 0)
- Part127.Anchored = true
- Part127.CanCollide = false
- Part127.FormFactor = Enum.FormFactor.Custom
- Part127.Size = Vector3.new(1, 1, 1)
- Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part127.BottomSurface = Enum.SurfaceType.Smooth
- Part127.TopSurface = Enum.SurfaceType.Smooth
- Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
- Part127.Orientation = Vector3.new(0, 90, 0)
- Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh128.Parent = Part127
- SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
- SpecialMesh128.MeshType = Enum.MeshType.Brick
- SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
- Part129.Parent = Tool0
- Part129.Material = Enum.Material.SmoothPlastic
- Part129.BrickColor = BrickColor.new("Nougat")
- Part129.Transparency = 1
- Part129.Rotation = Vector3.new(180, 0, 90)
- Part129.Anchored = true
- Part129.CanCollide = false
- Part129.FormFactor = Enum.FormFactor.Custom
- Part129.Size = Vector3.new(1, 1, 1)
- Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part129.BottomSurface = Enum.SurfaceType.Smooth
- Part129.TopSurface = Enum.SurfaceType.Smooth
- Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
- Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
- Part129.Orientation = Vector3.new(0, -180, -90)
- Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
- CylinderMesh130.Parent = Part129
- CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
- CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
- Part131.Parent = Tool0
- Part131.Material = Enum.Material.SmoothPlastic
- Part131.BrickColor = BrickColor.new("Dark stone grey")
- Part131.Transparency = 1
- Part131.Rotation = Vector3.new(-90, -90, 0)
- Part131.Anchored = true
- Part131.CanCollide = false
- Part131.FormFactor = Enum.FormFactor.Custom
- Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
- Part131.BottomSurface = Enum.SurfaceType.Smooth
- Part131.TopSurface = Enum.SurfaceType.Smooth
- Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
- Part131.Orientation = Vector3.new(0, -90, 90)
- Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh132.Parent = Part131
- CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
- Decal133.Parent = Part131
- Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
- Decal133.Face = Enum.NormalId.Bottom
- Part134.Parent = Tool0
- Part134.Material = Enum.Material.SmoothPlastic
- Part134.Transparency = 1
- Part134.Rotation = Vector3.new(-90, 60, 90)
- Part134.Anchored = true
- Part134.CanCollide = false
- Part134.FormFactor = Enum.FormFactor.Custom
- Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
- Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
- Part134.Orientation = Vector3.new(-30, 90, 0)
- CylinderMesh135.Parent = Part134
- CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
- CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
- Part136.Parent = Tool0
- Part136.Material = Enum.Material.SmoothPlastic
- Part136.Transparency = 1
- Part136.Rotation = Vector3.new(0, 90, 0)
- Part136.Anchored = true
- Part136.CanCollide = false
- Part136.FormFactor = Enum.FormFactor.Custom
- Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
- Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part136.BottomSurface = Enum.SurfaceType.Smooth
- Part136.TopSurface = Enum.SurfaceType.Smooth
- Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
- Part136.Orientation = Vector3.new(0, 90, 0)
- CylinderMesh137.Parent = Part136
- CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
- CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
- Part138.Parent = Tool0
- Part138.Material = Enum.Material.SmoothPlastic
- Part138.BrickColor = BrickColor.new("Dark stone grey")
- Part138.Transparency = 1
- Part138.Rotation = Vector3.new(90, 45, -90)
- Part138.Anchored = true
- Part138.CanCollide = false
- Part138.FormFactor = Enum.FormFactor.Custom
- Part138.Size = Vector3.new(1, 1, 1)
- Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
- Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
- Part138.Orientation = Vector3.new(45, 90, 0)
- Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh139.Parent = Part138
- SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
- SpecialMesh139.MeshType = Enum.MeshType.Brick
- SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
- Part140.Parent = Tool0
- Part140.Material = Enum.Material.SmoothPlastic
- Part140.BrickColor = BrickColor.new("Dark stone grey")
- Part140.Transparency = 1
- Part140.Rotation = Vector3.new(0, 90, 0)
- Part140.Anchored = true
- Part140.CanCollide = false
- Part140.FormFactor = Enum.FormFactor.Custom
- Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
- Part140.Orientation = Vector3.new(0, 90, 0)
- Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh141.Parent = Part140
- SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
- SpecialMesh141.MeshType = Enum.MeshType.Brick
- SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
- Part142.Parent = Tool0
- Part142.Material = Enum.Material.SmoothPlastic
- Part142.BrickColor = BrickColor.new("Lime green")
- Part142.Reflectance = 0.40000000596046
- Part142.Transparency = 1
- Part142.Rotation = Vector3.new(180, 0, 90)
- Part142.Anchored = true
- Part142.CanCollide = false
- Part142.FormFactor = Enum.FormFactor.Custom
- Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
- Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part142.BottomSurface = Enum.SurfaceType.Smooth
- Part142.TopSurface = Enum.SurfaceType.Smooth
- Part142.Color = Color3.new(0, 1, 0)
- Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
- Part142.Orientation = Vector3.new(0, -180, -90)
- Part142.Color = Color3.new(0, 1, 0)
- CylinderMesh143.Parent = Part142
- Part144.Parent = Tool0
- Part144.Material = Enum.Material.SmoothPlastic
- Part144.Transparency = 1
- Part144.Rotation = Vector3.new(-90, 0, 90)
- Part144.Anchored = true
- Part144.CanCollide = false
- Part144.FormFactor = Enum.FormFactor.Custom
- Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
- Part144.Orientation = Vector3.new(-90, 90, 0)
- CylinderMesh145.Parent = Part144
- CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
- CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
- Part146.Parent = Tool0
- Part146.Material = Enum.Material.SmoothPlastic
- Part146.BrickColor = BrickColor.new("Dark stone grey")
- Part146.Transparency = 1
- Part146.Rotation = Vector3.new(0, 90, 0)
- Part146.Anchored = true
- Part146.CanCollide = false
- Part146.FormFactor = Enum.FormFactor.Custom
- Part146.Size = Vector3.new(1, 1, 1)
- Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
- Part146.Orientation = Vector3.new(0, 90, 0)
- Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh147.Parent = Part146
- SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
- SpecialMesh147.MeshType = Enum.MeshType.Brick
- SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
- Part148.Parent = Tool0
- Part148.Material = Enum.Material.SmoothPlastic
- Part148.Transparency = 1
- Part148.Rotation = Vector3.new(-90, -60, -90)
- Part148.Anchored = true
- Part148.CanCollide = false
- Part148.FormFactor = Enum.FormFactor.Custom
- Part148.Size = Vector3.new(1, 1, 1)
- Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
- Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
- Part148.Orientation = Vector3.new(-30, -90, 0)
- CylinderMesh149.Parent = Part148
- CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
- CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
- Part150.Parent = Tool0
- Part150.Material = Enum.Material.SmoothPlastic
- Part150.BrickColor = BrickColor.new("Brick yellow")
- Part150.Transparency = 1
- Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
- Part150.Anchored = true
- Part150.CanCollide = false
- Part150.FormFactor = Enum.FormFactor.Custom
- Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part150.CFrame = CFrame.new(1435.27368, 48.9770622, -1311.07397, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
- Part150.BottomSurface = Enum.SurfaceType.Smooth
- Part150.TopSurface = Enum.SurfaceType.Smooth
- Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
- Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
- Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh151.Parent = Part150
- CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
- CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
- Part152.Parent = Tool0
- Part152.Material = Enum.Material.SmoothPlastic
- Part152.BrickColor = BrickColor.new("Medium green")
- Part152.Reflectance = 0.40000000596046
- Part152.Transparency = 1
- Part152.Rotation = Vector3.new(-90, 30, -105)
- Part152.Anchored = true
- Part152.CanCollide = false
- Part152.FormFactor = Enum.FormFactor.Custom
- Part152.Size = Vector3.new(1, 1, 1)
- Part152.CFrame = CFrame.new(1436.76379, 48.7488365, -1310.92346, -0.224138901, 0.836518228, 0.499998987, 0.129404947, -0.482963115, 0.866025984, 0.965927541, 0.258812487, 1.22192728e-06)
- Part152.BottomSurface = Enum.SurfaceType.Smooth
- Part152.TopSurface = Enum.SurfaceType.Smooth
- Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
- Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
- Part152.Orientation = Vector3.new(-60, 90, 165)
- Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
- CylinderMesh153.Parent = Part152
- CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
- CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
- Part154.Parent = Tool0
- Part154.Material = Enum.Material.SmoothPlastic
- Part154.BrickColor = BrickColor.new("Dark stone grey")
- Part154.Transparency = 1
- Part154.Rotation = Vector3.new(-105, 75, 90)
- Part154.Anchored = true
- Part154.CanCollide = false
- Part154.FormFactor = Enum.FormFactor.Custom
- Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
- Part154.CFrame = CFrame.new(1434.85571, 49.1141472, -1311.08923, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
- Part154.BottomSurface = Enum.SurfaceType.Smooth
- Part154.TopSurface = Enum.SurfaceType.Smooth
- Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
- Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
- Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh155.Parent = Part154
- CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
- Part156.Parent = Tool0
- Part156.Material = Enum.Material.SmoothPlastic
- Part156.BrickColor = BrickColor.new("Dark stone grey")
- Part156.Transparency = 1
- Part156.Rotation = Vector3.new(90, 90, 0)
- Part156.Anchored = true
- Part156.CanCollide = false
- Part156.FormFactor = Enum.FormFactor.Custom
- Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
- Part156.BottomSurface = Enum.SurfaceType.Smooth
- Part156.TopSurface = Enum.SurfaceType.Smooth
- Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
- Part156.Orientation = Vector3.new(0, 90, 90)
- Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh157.Parent = Part156
- SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
- SpecialMesh157.MeshType = Enum.MeshType.Brick
- SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
- Part158.Parent = Tool0
- Part158.Material = Enum.Material.SmoothPlastic
- Part158.Transparency = 1
- Part158.Rotation = Vector3.new(-90, 0, 90)
- Part158.Anchored = true
- Part158.CanCollide = false
- Part158.FormFactor = Enum.FormFactor.Custom
- Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part158.BottomSurface = Enum.SurfaceType.Smooth
- Part158.TopSurface = Enum.SurfaceType.Smooth
- Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
- Part158.Orientation = Vector3.new(-90, 90, 0)
- SpecialMesh159.Parent = Part158
- SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
- SpecialMesh159.MeshType = Enum.MeshType.Brick
- SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
- Part160.Parent = Tool0
- Part160.Material = Enum.Material.SmoothPlastic
- Part160.Transparency = 1
- Part160.Rotation = Vector3.new(-90, 30, 90)
- Part160.Anchored = true
- Part160.CanCollide = false
- Part160.FormFactor = Enum.FormFactor.Custom
- Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
- Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
- Part160.Orientation = Vector3.new(-60, 90, 0)
- CylinderMesh161.Parent = Part160
- CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
- CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
- Part162.Parent = Tool0
- Part162.Material = Enum.Material.SmoothPlastic
- Part162.BrickColor = BrickColor.new("Dark stone grey")
- Part162.Transparency = 1
- Part162.Rotation = Vector3.new(0, 90, 0)
- Part162.Anchored = true
- Part162.CanCollide = false
- Part162.FormFactor = Enum.FormFactor.Custom
- Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
- Part162.Orientation = Vector3.new(0, 90, 0)
- Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh163.Parent = Part162
- SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
- SpecialMesh163.MeshType = Enum.MeshType.Brick
- SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
- Part164.Parent = Tool0
- Part164.Material = Enum.Material.SmoothPlastic
- Part164.BrickColor = BrickColor.new("Dark stone grey")
- Part164.Transparency = 1
- Part164.Rotation = Vector3.new(180, 0, 90)
- Part164.Anchored = true
- Part164.CanCollide = false
- Part164.FormFactor = Enum.FormFactor.Custom
- Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part164.BottomSurface = Enum.SurfaceType.Smooth
- Part164.TopSurface = Enum.SurfaceType.Smooth
- Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
- Part164.Orientation = Vector3.new(0, -180, -90)
- Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh165.Parent = Part164
- CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
- CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
- Part166.Parent = Tool0
- Part166.Material = Enum.Material.SmoothPlastic
- Part166.BrickColor = BrickColor.new("Brick yellow")
- Part166.Transparency = 1
- Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
- Part166.Anchored = true
- Part166.CanCollide = false
- Part166.FormFactor = Enum.FormFactor.Custom
- Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part166.CFrame = CFrame.new(1435.34644, 48.8009377, -1311.09277, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
- Part166.BottomSurface = Enum.SurfaceType.Smooth
- Part166.TopSurface = Enum.SurfaceType.Smooth
- Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
- Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
- Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
- CylinderMesh167.Parent = Part166
- CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
- CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
- Part168.Name = "Smooth Block Model"
- Part168.Parent = Tool0
- Part168.Material = Enum.Material.SmoothPlastic
- Part168.BrickColor = BrickColor.new("Dark stone grey")
- Part168.Transparency = 1
- Part168.Rotation = Vector3.new(90, 15, 90)
- Part168.Anchored = true
- Part168.CanCollide = false
- Part168.FormFactor = Enum.FormFactor.Custom
- Part168.Size = Vector3.new(1, 1, 1)
- Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
- Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
- Part168.Orientation = Vector3.new(75, 90, 180)
- Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh169.Parent = Part168
- SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
- SpecialMesh169.MeshType = Enum.MeshType.Wedge
- SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
- Part170.Name = "Smooth Block Model"
- Part170.Parent = Tool0
- Part170.Material = Enum.Material.SmoothPlastic
- Part170.BrickColor = BrickColor.new("Dark stone grey")
- Part170.Transparency = 1
- Part170.Rotation = Vector3.new(-90, -15, 90)
- Part170.Anchored = true
- Part170.CanCollide = false
- Part170.FormFactor = Enum.FormFactor.Custom
- Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
- Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
- Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
- Part170.Orientation = Vector3.new(-75, -90, 180)
- Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh171.Parent = Part170
- SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
- SpecialMesh171.MeshType = Enum.MeshType.Wedge
- SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
- Part172.Parent = Tool0
- Part172.Material = Enum.Material.SmoothPlastic
- Part172.BrickColor = BrickColor.new("Dark stone grey")
- Part172.Transparency = 1
- Part172.Rotation = Vector3.new(-90, 0, 90)
- Part172.Anchored = true
- Part172.CanCollide = false
- Part172.FormFactor = Enum.FormFactor.Custom
- Part172.Size = Vector3.new(1, 1, 1)
- Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
- Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
- Part172.Orientation = Vector3.new(-90, 90, 0)
- Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh173.Parent = Part172
- SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
- SpecialMesh173.MeshType = Enum.MeshType.Brick
- SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
- Part174.Parent = Tool0
- Part174.Material = Enum.Material.SmoothPlastic
- Part174.Transparency = 1
- Part174.Rotation = Vector3.new(90, 75, -90)
- Part174.Anchored = true
- Part174.CanCollide = false
- Part174.FormFactor = Enum.FormFactor.Custom
- Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
- Part174.BottomSurface = Enum.SurfaceType.Smooth
- Part174.TopSurface = Enum.SurfaceType.Smooth
- Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
- Part174.Orientation = Vector3.new(15, 90, 0)
- SpecialMesh175.Parent = Part174
- SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
- SpecialMesh175.MeshType = Enum.MeshType.Brick
- SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
- Part176.Parent = Tool0
- Part176.Material = Enum.Material.SmoothPlastic
- Part176.BrickColor = BrickColor.new("Nougat")
- Part176.Transparency = 1
- Part176.Rotation = Vector3.new(180, 0, 90)
- Part176.Anchored = true
- Part176.CanCollide = false
- Part176.FormFactor = Enum.FormFactor.Custom
- Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
- Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part176.BottomSurface = Enum.SurfaceType.Smooth
- Part176.TopSurface = Enum.SurfaceType.Smooth
- Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
- Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
- Part176.Orientation = Vector3.new(0, -180, -90)
- Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
- CylinderMesh177.Parent = Part176
- Part178.Parent = Tool0
- Part178.Material = Enum.Material.SmoothPlastic
- Part178.BrickColor = BrickColor.new("Brick yellow")
- Part178.Transparency = 1
- Part178.Rotation = Vector3.new(-90, 0, 90)
- Part178.Anchored = true
- Part178.CanCollide = false
- Part178.FormFactor = Enum.FormFactor.Custom
- Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part178.BottomSurface = Enum.SurfaceType.Smooth
- Part178.TopSurface = Enum.SurfaceType.Smooth
- Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
- Part178.Orientation = Vector3.new(-90, 90, 0)
- Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
- SpecialMesh179.Parent = Part178
- SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
- SpecialMesh179.MeshType = Enum.MeshType.Brick
- SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
- Part180.Parent = Tool0
- Part180.Material = Enum.Material.SmoothPlastic
- Part180.BrickColor = BrickColor.new("Black")
- Part180.Transparency = 1
- Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
- Part180.Anchored = true
- Part180.CanCollide = false
- Part180.FormFactor = Enum.FormFactor.Custom
- Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
- Part180.CFrame = CFrame.new(1435.07532, 49.0545235, -1310.66675, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
- Part180.BottomSurface = Enum.SurfaceType.Smooth
- Part180.TopSurface = Enum.SurfaceType.Smooth
- Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
- Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
- Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
- Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
- CylinderMesh181.Parent = Part180
- CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
- CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
- Part182.Parent = Tool0
- Part182.Material = Enum.Material.SmoothPlastic
- Part182.BrickColor = BrickColor.new("Dark stone grey")
- Part182.Transparency = 1
- Part182.Rotation = Vector3.new(180, 0, 90)
- Part182.Anchored = true
- Part182.CanCollide = false
- Part182.FormFactor = Enum.FormFactor.Custom
- Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
- Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
- Part182.BottomSurface = Enum.SurfaceType.Smooth
- Part182.TopSurface = Enum.SurfaceType.Smooth
- Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
- Part182.Orientation = Vector3.new(0, -180, -90)
- Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
- CylinderMesh183.Parent = Part182
- CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
- CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
- Part184.Parent = Tool0
- Part184.Material = Enum.Material.SmoothPlastic
- Part184.BrickColor = BrickColor.new("Dark stone grey")
- Part184.Transparency = 1
- Part184.Rotation = Vector3.new(-90, 75, 90)
- Part184.Anchored = true
- Part184.CanCollide = false
- Part184.FormFactor = Enum.FormFactor.Custom
- Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
- Part184.BottomSurface = Enum.SurfaceType.Smooth
- Part184.TopSurface = Enum.SurfaceType.Smooth
- Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
- Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
- Part184.Orientation = Vector3.new(-15, 90, 0)
- Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
- SpecialMesh185.Parent = Part184
- SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
- SpecialMesh185.MeshType = Enum.MeshType.Brick
- SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
- Part186.Parent = Tool0
- Part186.Material = Enum.Material.SmoothPlastic
- Part186.Transparency = 1
- Part186.Rotation = Vector3.new(-90, 0, 90)
- Part186.Anchored = true
- Part186.CanCollide = false
- Part186.FormFactor = Enum.FormFactor.Custom
- Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
- Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
- Part186.BottomSurface = Enum.SurfaceType.Smooth
- Part186.TopSurface = Enum.SurfaceType.Smooth
- Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
- Part186.Orientation = Vector3.new(-90, 90, 0)
- SpecialMesh187.Parent = Part186
- SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
- SpecialMesh187.MeshType = Enum.MeshType.Brick
- SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
- IntValue188.Name = "Ammo"
- IntValue188.Parent = Tool0
- IntValue188.Value = 25
- IntValue189.Name = "ClipSize"
- IntValue189.Parent = Tool0
- IntValue189.Value = 25
- IntValue190.Name = "LethalGrenades"
- IntValue190.Parent = Tool0
- IntValue190.Value = 15
- IntValue191.Name = "StoredAmmo"
- IntValue191.Parent = Tool0
- IntValue191.Value = 400
- IntValue192.Name = "TacticalGrenades"
- IntValue192.Parent = Tool0
- IntValue192.Value = 15
- Script193.Name = "serverMain"
- Script193.Parent = Tool0
- table.insert(cors,sandbox(Script193,function()
- local Plyr = script:WaitForChild("Plyr")
- local Gun = script.Parent
- local Handle = Gun:WaitForChild("Handle")
- local V3 = Vector3.new
- local CF, CFANG = CFrame.new, CFrame.Angles
- local RAD = math.rad
- local numLerp = function(A, B, Alpha)
- return A + (B - A) * Alpha
- end
- local inList = function(Element, List)
- for _, v in pairs(List) do
- if v == Element then
- return true
- end
- end
- return false
- end
- local getObject = function(Model, Class, Name)
- for _, v in pairs(Model:GetChildren()) do
- if v:IsA(Class) and v.Name == Name then
- return v
- end
- end
- return nil
- end
- ----------------------------------------------------------------------
- --------------------[ IGNORE MODEL HANDLING ]-------------------------
- ----------------------------------------------------------------------
- wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
- if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
- --[[
- The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
- bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
- hit a character part
- --]]
- if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
- local ignoreModel = Instance.new("Model")
- ignoreModel.Name = "ignoreModel_".._G.ignoreCode
- ignoreModel.Parent = game.Workspace
- local grenadeFolder = Instance.new("Model")
- grenadeFolder.Name = "grenadeFolder"
- grenadeFolder.Parent = ignoreModel
- spawn(function()
- while true do
- ignoreModel.Parent = game.Workspace
- grenadeFolder.Parent = ignoreModel
- wait(1 / 20)
- end
- end)
- end
- script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
- else
- --[[
- If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
- an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
- --]]
- _G.ignoreCode = math.random(1, 1e4)
- if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
- local ignoreModel = Instance.new("Model")
- ignoreModel.Name = "ignoreModel_".._G.ignoreCode
- ignoreModel.Parent = game.Workspace
- local grenadeFolder = Instance.new("Model")
- grenadeFolder.Name = "grenadeFolder"
- grenadeFolder.Parent = ignoreModel
- spawn(function()
- while true do
- ignoreModel.Parent = game.Workspace
- grenadeFolder.Parent = ignoreModel
- wait(1 / 20)
- end
- end)
- end
- script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
- end
- spawn(function()
- --[[
- This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
- deselecting the Gun first
- --]]
- repeat wait() until _G.ignoreCode
- local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
- while true do
- for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
- if gunIgnore.Name ~= "grenadeFolder" then
- if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
- gunIgnore:Destroy()
- end
- end
- end
- wait(1 / 20)
- end
- end)
- ----------------------------------------------------------------------
- --------------------[ RESET CAMERA ]----------------------------------
- ----------------------------------------------------------------------
- Gun.ChildRemoved:connect(function(Child)
- if Child == Handle and Plyr.Value then
- local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
- local resetCam = script:WaitForChild("resetCam")
- resetCam:WaitForChild("ignoreCode").Value = ignoreCode
- resetCam.Parent = Plyr.Value.PlayerGui
- end
- end)
- ----------------------------------------------------------------------
- --------------------[ GET WELD CFRAMES ]------------------------------
- ----------------------------------------------------------------------
- for _, v in pairs(Gun:GetChildren()) do
- if v:IsA("BasePart") and v ~= Handle then
- if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
- if (not v:FindFirstChild("weldCF")) then
- local weldCF = Instance.new("CFrameValue")
- weldCF.Name = "weldCF"
- weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
- weldCF.Parent = v
- end
- if string.sub(v.Name, 1, 3) == "Mag" then
- if (not v:FindFirstChild("magTrans")) then
- local magTrans = Instance.new("NumberValue")
- magTrans.Name = "magTrans"
- magTrans.Value = v.Transparency
- magTrans.Parent = v
- end
- end
- v.Anchored = true
- v.CanCollide = false
- end
- end
- Handle.Anchored = false
- Handle.CanCollide = true
- ----------------------------------------------------------------------
- --------------------[ GUNSETUP HANDLING ]-----------------------------
- ----------------------------------------------------------------------
- local gunSetup = script:WaitForChild("gunSetup")
- function gunSetup.OnServerInvoke(Player, Vars)
- --------------------[ CREATING IGNORE MODELS ]--------------------------------
- local gunIgnore = Instance.new("Model")
- gunIgnore.Name = "gunIgnore_"..Player.Name
- gunIgnore.Parent = Vars.ignoreModel
- --------------------[ MODIFYING THE PLAYER ]----------------------------------
- Vars.Humanoid.AutoRotate = false
- Vars.Shoulders.Right.Part1 = nil
- Vars.Shoulders.Left.Part1 = nil
- local playerFolder = Instance.new("Model")
- playerFolder.Name = "playerFolder"
- playerFolder.Parent = gunIgnore
- local headBase = Instance.new("Part")
- headBase.Transparency = 1
- headBase.Name = "headBase"
- headBase.CanCollide = false
- headBase.FormFactor = Enum.FormFactor.Custom
- headBase.Size = V3(0.2, 0.2, 0.2)
- headBase.BottomSurface = Enum.SurfaceType.Smooth
- headBase.TopSurface = Enum.SurfaceType.Smooth
- headBase.Parent = playerFolder
- local headWeld = Instance.new("Weld")
- headWeld.Part0 = Vars.Torso
- headWeld.Part1 = headBase
- headWeld.C0 = CF(0, 1.5, 0)
- headWeld.Parent = Vars.Torso
- local headWeld2 = Instance.new("Weld")
- headWeld2.Part0 = headBase
- headWeld2.Part1 = Vars.Head
- headWeld2.Parent = headBase
- local animBase = Instance.new("Part")
- animBase.Transparency = 1
- animBase.Name = "animBase"
- animBase.CanCollide = false
- animBase.FormFactor = Enum.FormFactor.Custom
- animBase.Size = V3(0.2, 0.2, 0.2)
- animBase.BottomSurface = Enum.SurfaceType.Smooth
- animBase.TopSurface = Enum.SurfaceType.Smooth
- animBase.Parent = playerFolder
- local animWeld = Instance.new("Weld")
- animWeld.Part0 = animBase
- animWeld.Part1 = headBase
- animWeld.Parent = animBase
- local armBase = Instance.new("Part")
- armBase.Transparency = 1
- armBase.Name = "ArmBase"
- armBase.CanCollide = false
- armBase.FormFactor = Enum.FormFactor.Custom
- armBase.Size = V3(0.2, 0.2, 0.2)
- armBase.BottomSurface = Enum.SurfaceType.Smooth
- armBase.TopSurface = Enum.SurfaceType.Smooth
- armBase.Parent = playerFolder
- local ABWeld = Instance.new("Weld")
- ABWeld.Part0 = armBase
- ABWeld.Part1 = animBase
- ABWeld.Parent = armBase
- local LArmBase = Instance.new("Part")
- LArmBase.Transparency = 1
- LArmBase.Name = "LArmBase"
- LArmBase.CanCollide = false
- LArmBase.FormFactor = Enum.FormFactor.Custom
- LArmBase.Size = V3(0.2, 0.2, 0.2)
- LArmBase.BottomSurface = Enum.SurfaceType.Smooth
- LArmBase.TopSurface = Enum.SurfaceType.Smooth
- LArmBase.Parent = playerFolder
- local RArmBase = Instance.new("Part")
- RArmBase.Transparency = 1
- RArmBase.Name = "RArmBase"
- RArmBase.CanCollide = false
- RArmBase.FormFactor = Enum.FormFactor.Custom
- RArmBase.Size = V3(0.2, 0.2, 0.2)
- RArmBase.BottomSurface = Enum.SurfaceType.Smooth
- RArmBase.TopSurface = Enum.SurfaceType.Smooth
- RArmBase.Parent = playerFolder
- local LWeld = Instance.new("Weld")
- LWeld.Name = "LWeld"
- LWeld.Part0 = armBase
- LWeld.Part1 = LArmBase
- LWeld.C0 = Vars.armC0[1]
- LWeld.C1 = Vars.leftArmC1
- LWeld.Parent = armBase
- local RWeld = Instance.new("Weld")
- RWeld.Name = "RWeld"
- RWeld.Part0 = armBase
- RWeld.Part1 = RArmBase
- RWeld.C0 = Vars.armC0[2]
- RWeld.C1 = Vars.rightArmC1
- RWeld.Parent = armBase
- local LWeld2 = Instance.new("Weld")
- LWeld2.Name = "LWeld"
- LWeld2.Part0 = LArmBase
- LWeld2.Part1 = Vars.LArm
- LWeld2.Parent = LArmBase
- local RWeld2 = Instance.new("Weld")
- RWeld2.Name = "RWeld"
- RWeld2.Part0 = RArmBase
- RWeld2.Part1 = Vars.RArm
- RWeld2.Parent = RArmBase
- local LLegWeld = Instance.new("Weld")
- LLegWeld.Name = "LLegWeld"
- LLegWeld.Part0 = Vars.Torso
- LLegWeld.Part1 = nil
- LLegWeld.C0 = CF(-0.5, -2, 0)
- LLegWeld.Parent = Vars.Torso
- local RLegWeld = Instance.new("Weld")
- RLegWeld.Name = "RLegWeld"
- RLegWeld.Part0 = Vars.Torso
- RLegWeld.Part1 = nil
- RLegWeld.C0 = CF(0.5, -2, 0)
- RLegWeld.Parent = Vars.Torso
- for _, Tab in pairs(Vars.gunParts) do
- Tab.Obj.Anchored = false
- local Weld = Instance.new("Weld")
- Weld.Name = "mainWeld"
- Weld.Part0 = Vars.Handle
- Weld.Part1 = Tab.Obj
- Weld.C0 = Tab.Obj.weldCF.Value
- Weld.Parent = Vars.Handle
- Tab.Weld = Weld
- end
- return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
- end
- ----------------------------------------------------------------------
- --------------------[ TWEENJOINT HANDLING ]---------------------------
- ----------------------------------------------------------------------
- local createTweenIndicator = script:WaitForChild("createTweenIndicator")
- function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
- local tweenIndicator = nil
- if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
- tweenIndicator = Instance.new("IntValue")
- tweenIndicator.Name = "tweenCode"
- tweenIndicator.Value = newCode
- tweenIndicator.Parent = Joint
- else
- tweenIndicator = Joint.tweenCode
- tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
- end
- return tweenIndicator
- end
- local lerpCF = script:WaitForChild("lerpCF")
- function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
- spawn(function()
- Joint[Prop] = startCF:lerp(endCF, Alpha)
- end)
- end
- local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
- function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
- if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
- tweenIndicator:Destroy()
- end
- end
- ----------------------------------------------------------------------
- --------------------[ BULLET IMPACT HANDLING ]------------------------
- ----------------------------------------------------------------------
- local createBulletImpact = script:WaitForChild("createBulletImpact")
- createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
- local surfaceCF = CF(P, P + N)
- ----------------------------------------------------------------------------------
- --Creating the bullet hole--------------------------------------------------------
- ----------------------------------------------------------------------------------
- if S.bulletHoles and (not humanoidFound) then
- local Hole = Instance.new("Part")
- Hole.Transparency = 1
- Hole.Anchored = true
- Hole.CanCollide = false
- Hole.FormFactor = "Custom"
- Hole.Size = V3(1, 1, 0.2)
- Hole.TopSurface = 0
- Hole.BottomSurface = 0
- local Mesh = Instance.new("BlockMesh")
- Mesh.Offset = V3(0, 0, -0.05)
- Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
- Mesh.Parent = Hole
- local Decal = Instance.new("Decal")
- Decal.Face = Enum.NormalId.Front
- Decal.Texture = S.holeSettings.Texture
- Decal.Parent = Hole
- Hole.Parent = gunIgnore
- Hole.CFrame = surfaceCF
- if (not H.Anchored) then
- local Weld = Instance.new("Weld", Hole)
- Weld.Part0 = H
- Weld.Part1 = Hole
- Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
- Hole.Anchored = false
- end
- delay(S.holeSettings.visibleTime, function()
- if S.holeSettings.disappearTime > 0 then
- local t0 = tick()
- while true do
- local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
- Decal.Transparency = numLerp(0, 1, Alpha)
- if Alpha == 1 then break end
- wait()
- end
- Hole:Destroy()
- else
- Hole:Destroy()
- end
- end)
- end
- ----------------------------------------------------------------------------------
- --Creating the spark effect-------------------------------------------------------
- ----------------------------------------------------------------------------------
- if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
- local Sparks = Instance.new("Part")
- Sparks.Transparency = 1
- Sparks.Anchored = true
- Sparks.CanCollide = false
- Sparks.FormFactor = "Custom"
- Sparks.Size = V3(1, 1, 1)
- Sparks.TopSurface = 0
- Sparks.BottomSurface = 0
- local Particles = nil
- if S.customSparks then
- Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
- else
- Particles = Instance.new("ParticleEmitter")
- Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
- Particles.LightEmission = 1
- Particles.Size = NumberSequence.new(
- {
- NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
- NumberSequenceKeypoint.new(1, 0);
- }
- )
- Particles.Texture = S.sparkSettings.Texture
- Particles.Transparency = NumberSequence.new(0)
- Particles.Acceleration = V3(0, -196.2, 0)
- Particles.EmissionDirection = Enum.NormalId.Front
- Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
- Particles.Rate = S.sparkSettings.Rate
- Particles.Rotation = NumberRange.new(0, 360)
- Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
- Particles.VelocitySpread = S.sparkSettings.Spread
- end
- Particles.Parent = Sparks
- Sparks.Parent = gunIgnore
- Sparks.CFrame = surfaceCF
- if (not H.Anchored) then
- local Weld = Instance.new("Weld", Sparks)
- Weld.Part0 = H
- Weld.Part1 = Sparks
- Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
- Sparks.Anchored = false
- end
- delay(0.1, function()
- Particles.Enabled = false
- wait(Particles.Lifetime.Max)
- Sparks:Destroy()
- end)
- end
- ----------------------------------------------------------------------------------
- --Creating the smoke effect-------------------------------------------------------
- ----------------------------------------------------------------------------------
- if S.bulletSmoke and (not humanoidFound) then
- local Smoke = Instance.new("Part")
- Smoke.Transparency = 1
- Smoke.Anchored = true
- Smoke.CanCollide = false
- Smoke.FormFactor = "Custom"
- Smoke.Size = V3(1, 1, 1)
- Smoke.TopSurface = 0
- Smoke.BottomSurface = 0
- local Particles = Instance.new("ParticleEmitter")
- Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
- Particles.LightEmission = 0
- Particles.Size = NumberSequence.new(
- {
- NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
- NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
- }
- )
- Particles.Texture = S.smokeSettings.Texture
- Particles.Transparency = NumberSequence.new(
- {
- NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
- NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
- NumberSequenceKeypoint.new(1, 1);
- }
- )
- Particles.Acceleration = V3(0, -196.2, 0)
- Particles.EmissionDirection = Enum.NormalId.Front
- Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
- Particles.Rate = S.smokeSettings.Rate
- Particles.Rotation = NumberRange.new(0, 360)
- Particles.RotSpeed = NumberRange.new(10)
- Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
- Particles.VelocitySpread = S.smokeSettings.Spread
- Particles.Parent = Smoke
- Smoke.Parent = gunIgnore
- Smoke.CFrame = surfaceCF
- if (not H.Anchored) then
- local Weld = Instance.new("Weld", Smoke)
- Weld.Part0 = H
- Weld.Part1 = Smoke
- Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
- Smoke.Anchored = false
- end
- delay(0.1, function()
- Particles.Enabled = false
- wait(S.smokeSettings.Lifetime + 0.05)
- Smoke:Destroy()
- end)
- end
- end)
- ----------------------------------------------------------------------
- --------------------[ SHOCKWAVE HANDLING ]----------------------------
- ----------------------------------------------------------------------
- local createShockwave = script:WaitForChild("createShockwave")
- createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
- local Shockwave = Instance.new("Part")
- Shockwave.BrickColor = S.shockwaveSettings.Color
- Shockwave.Material = Enum.Material.SmoothPlastic
- Shockwave.Name = "Shockwave"
- Shockwave.Anchored = true
- Shockwave.CanCollide = false
- Shockwave.FormFactor = Enum.FormFactor.Symmetric
- Shockwave.Size = V3(1, 1, 1)
- Shockwave.BottomSurface = Enum.SurfaceType.Smooth
- Shockwave.TopSurface = Enum.SurfaceType.Smooth
- local Mesh = Instance.new("SpecialMesh")
- Mesh.MeshType = Enum.MeshType.Sphere
- Mesh.Scale = V3()
- Mesh.Parent = Shockwave
- Shockwave.Parent = gunIgnore
- Shockwave.CFrame = CF(Center)
- spawn(function()
- local t0 = tick()
- while true do
- local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
- local Scale = 2 * Radius * Alpha
- Mesh.Scale = V3(Scale, Scale, Scale)
- Shockwave.Transparency = Alpha
- if Alpha == 1 then break end
- wait()
- end
- Shockwave:Destroy()
- end)
- end)
- ----------------------------------------------------------------------
- --------------------[ BLOOD HANDLING ]--------------------------------
- ----------------------------------------------------------------------
- local createBlood = script:WaitForChild("createBlood")
- createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
- local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
- local Blood = Instance.new("Part")
- Blood.Transparency = 1
- Blood.Anchored = true
- Blood.CanCollide = false
- Blood.FormFactor = "Custom"
- Blood.Size = V3(0.2, 1, 0.2)
- Blood.TopSurface = 0
- Blood.BottomSurface = 0
- local Particles = Instance.new("ParticleEmitter")
- Particles.Color = ColorSequence.new(S.bloodSettings.Color)
- Particles.LightEmission = 0
- Particles.Size = NumberSequence.new(S.bloodSettings.Size)
- Particles.Texture = S.bloodSettings.Texture
- Particles.Transparency = NumberSequence.new(
- {
- NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
- NumberSequenceKeypoint.new(1, 1);
- }
- )
- Particles.EmissionDirection = Enum.NormalId.Top
- Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
- Particles.Rate = S.bloodSettings.Rate
- Particles.Rotation = NumberRange.new(0, 90)
- Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
- Particles.VelocitySpread = S.bloodSettings.Spread
- Particles.Parent = Blood
- Blood.Parent = gunIgnore
- Blood.CFrame = bloodCF
- if (not H.Anchored) then
- local Weld = Instance.new("Weld", Blood)
- Weld.Part0 = H
- Weld.Part1 = Blood
- Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
- Blood.Anchored = false
- end
- delay(0.15, function()
- Particles.Enabled = false
- wait(S.bloodSettings.Lifetime + 0.05)
- Blood:Destroy()
- end)
- end)
- ----------------------------------------------------------------------
- --------------------[ TRAIL HANDLING ]--------------------------------
- ----------------------------------------------------------------------
- local createTrail = script:WaitForChild("createTrail")
- createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
- local Trail = Instance.new("Part")
- Trail.BrickColor = S.trailSettings.Color
- Trail.Transparency = S.trailSettings.Transparency
- Trail.Anchored = true
- Trail.CanCollide = false
- Trail.Size = V3(1, 1, 1)
- local Mesh = Instance.new("CylinderMesh")
- Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
- Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
- Mesh.Parent = Trail
- Trail.Parent = gunIgnore
- Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
- delay(S.trailSettings.visibleTime, function()
- if S.trailSettings.disappearTime > 0 then
- local t0 = tick()
- while true do
- local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
- Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
- if Alpha == 1 then break end
- wait()
- end
- Trail:Destroy()
- else
- Trail:Destroy()
- end
- end)
- end)
- end))
- ObjectValue194.Name = "Plyr"
- ObjectValue194.Parent = Script193
- RemoteFunction195.Name = "getWeldCF"
- RemoteFunction195.Parent = Script193
- RemoteFunction196.Name = "gunSetup"
- RemoteFunction196.Parent = Script193
- RemoteFunction197.Name = "tweenJoint"
- RemoteFunction197.Parent = Script193
- RemoteEvent198.Name = "onRenderStep"
- RemoteEvent198.Parent = Script193
- RemoteFunction199.Name = "createTweenIndicator"
- RemoteFunction199.Parent = Script193
- RemoteFunction200.Name = "deleteTweenIndicator"
- RemoteFunction200.Parent = Script193
- RemoteFunction201.Name = "lerpCF"
- RemoteFunction201.Parent = Script193
- LocalScript202.Name = "resetCam"
- LocalScript202.Parent = Script193
- table.insert(cors,sandbox(LocalScript202,function()
- repeat wait() until game.Players.LocalPlayer.Character
- local Player = game.Players.LocalPlayer
- local Char = Player.Character
- local Humanoid = Char:WaitForChild("Humanoid")
- local Cam = game.Workspace.CurrentCamera
- local UIS = game:GetService("UserInputService")
- local ignoreCode = script:WaitForChild("ignoreCode")
- repeat wait() until ignoreCode.Value ~= 0
- local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
- local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
- Cam.FieldOfView = 70
- Cam.CameraType = Enum.CameraType.Custom
- Cam:ClearAllChildren()
- UIS.MouseBehavior = Enum.MouseBehavior.Default
- UIS.MouseIconEnabled = true
- Player.CameraMode = Enum.CameraMode.Classic
- Humanoid.WalkSpeed = 16
- Humanoid.AutoRotate = true
- if gunIgnore then gunIgnore:Destroy() end
- end))
- IntValue203.Name = "ignoreCode"
- IntValue203.Parent = LocalScript202
- RemoteEvent204.Name = "createBulletImpact"
- RemoteEvent204.Parent = Script193
- RemoteEvent205.Name = "createShockwave"
- RemoteEvent205.Parent = Script193
- RemoteEvent206.Name = "createBlood"
- RemoteEvent206.Parent = Script193
- RemoteEvent207.Name = "createTrail"
- RemoteEvent207.Parent = Script193
- LocalScript208.Name = "clientMain"
- LocalScript208.Parent = Tool0
- table.insert(cors,sandbox(LocalScript208,function()
- --[[
- Kit By TurboFusion
- Remake By MuYhEt & Xander521
- --]]
- --------------------------------------------------------------------------------------
- --------------------[ CHARACTER LOADING ]---------------------------------------------
- --------------------------------------------------------------------------------------
- repeat wait() until game.Players.LocalPlayer.Character
- repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
- wait(1 / 20)
- --------------------------------------------------------------------------------------
- --------------------[ IGNORE MODEL ]--------------------------------------------------
- --------------------------------------------------------------------------------------
- local ignoreCode = script:WaitForChild("ignoreCode")
- repeat wait() until ignoreCode.Value ~= 0
- local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
- local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
- --------------------------------------------------------------------------------------
- --------------------[ CONSTANTS ]-----------------------------------------------------
- --------------------------------------------------------------------------------------
- local Gun = script.Parent
- local serverMain = Gun:WaitForChild("serverMain")
- local Handle = Gun:WaitForChild("Handle")
- local AimPart = Gun:WaitForChild("AimPart")
- local Main = Gun:WaitForChild("Main")
- local Ammo = Gun:WaitForChild("Ammo")
- local ClipSize = Gun:WaitForChild("ClipSize")
- local StoredAmmo = Gun:WaitForChild("StoredAmmo")
- local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
- local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
- local getWeldCF = serverMain:WaitForChild("getWeldCF")
- local gunSetup = serverMain:WaitForChild("gunSetup")
- local lerpCF = serverMain:WaitForChild("lerpCF")
- local createBlood = serverMain:WaitForChild("createBlood")
- local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
- local createShockwave = serverMain:WaitForChild("createShockwave")
- local createTrail = serverMain:WaitForChild("createTrail")
- local Particle = {}
- function Particle.new(Prop)
- ----------[ CONSTANTS ]--------------------
- local Cam = workspace.CurrentCamera
- local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
- local Color = Prop.Color or Color3.new(1, 1, 1)
- local Length = Prop.Length or 1
- local Width = Prop.Width or 1
- local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
- local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
- local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
- ----------[ VARIABLES ]--------------------
- local Deleted = false
- local p = p0 --Set the position, velocity, and acceleration as the intial conditions
- local v = v0
- local a = a0
- local t = 0
- ----------[ FUNCTIONS ]--------------------
- local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
- local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
- local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
- local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
- local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
- local sp2 = Cam:WorldToScreenPoint(wp2)
- return (sp1 - sp2).magnitude
- end
- ----------[ MAIN PROGRAM ]-----------------
- local Container = Instance.new("Frame")
- Container.BackgroundTransparency = 1
- Container.Position = UDim2.new()
- Container.Size = UDim2.new()
- local Line = Instance.new("Frame")
- Line.BackgroundColor3 = Color
- Line.BorderSizePixel = 0
- Line.Position = UDim2.new()
- Line.Size = UDim2.new()
- Line.Parent = Container
- return setmetatable(
- {
- delete = function() --This function safely removes the particle
- Container:Destroy()
- Deleted = true
- end
- },
- {
- __index = function(_, Index)
- if Index == "p" or Index == "position" then --Return the world position of the particle
- return (Deleted and nil or p)
- elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
- return (Deleted and nil or v)
- elseif Index == "obj" or Index == "object" then --Return the particle frame itself
- return (Deleted and nil or Container)
- else
- error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
- end
- end;
- __newindex = function(_, Index, Value)
- if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
- t = Value
- p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
- v = v0 + (a0 * t) --update the velocity given the time
- local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
- local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
- local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
- local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
- if H1 and H2 then
- Line.Visible = false
- else
- local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
- local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
- local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
- local screenLength = (face1 - face2).magnitude
- local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
- local Ang = math.atan2(face1.Y - face2.Y, face1.X - face2.X) --Get the angle the particle needs to be at in order to line up
- Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
- Line.Size = UDim2.new(1, 0, 0, screenWidth)
- Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
- Container.Position = UDim2.new(
- 0,
- face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
- 0,
- face2.Y + math.sin(Ang) * screenLength / 2
- )
- Container.Size = UDim2.new(0, screenLength, 0, 0)
- Container.Rotation = math.deg(Ang)
- end
- else
- error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
- end
- end
- }
- )
- end
- local Spring = {}
- function Spring.new(Initial)
- local t0 = tick()
- local p0 = Initial or 0
- local v0 = Initial and Vector3.new() or 0
- local t = Initial or 0
- local d = 1
- local s = 1
- local function positionVelocity(Tick)
- local x = Tick - t0
- local c0 = p0 - t
- if s == 0 then
- return p0, 0
- elseif d < 1 then
- local c = math.sqrt(1 - d ^ 2)
- local c1 = (v0 / s + d * c0) / c
- local co = math.cos(c * s * x)
- local si = math.sin(c * s * x)
- local e = math.exp(d * s * x)
- local p = t + (c0 * co + c1 * si) / e
- local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
- return p, v
- else
- local c1 = v0 / s + c0
- local e = math.exp(s * x)
- local p = t + (c0 + c1 * s * x) / e
- local v = s * (c1 - c0 - c1 * s * x) / e
- return p, v
- end
- end
- return setmetatable(
- {
- accelerate = function(_, acceleration)
- local T = tick()
- local p, v = positionVelocity(T)
- p0 = p
- v0 = v + acceleration
- t0 = T
- end;
- },
- {
- __index = function(_, index)
- if index == "value" or index == "position" or index == "p" then
- local p, v = positionVelocity(tick())
- return p
- elseif index == "velocity" or index == "v" then
- local p, v = positionVelocity(tick())
- return v
- elseif index == "acceleration" or index == "a" then
- local x = tick() - t0
- local c0 = p0 - t
- if s == 0 then
- return 0
- elseif d < 1 then
- local c = math.sqrt(1 - d ^ 2)
- local c1 = (v0 / s + d * c0) / c
- local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
- local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
- return s ^ 2 *(cs + sn) / math.exp(d * s * x)
- else
- local c1 = v0 / s + c0
- return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
- end
- elseif index == "target" or index == "t" then
- return t
- elseif index == "damper" or index == "d" then
- return d
- elseif index == "speed" or index == "s" then
- return s
- elseif index == "magnitude" or index == "m" then
- local p, v = positionVelocity(tick())
- return p.magnitude
- else
- error(index.." is not a valid member of spring", 0)
- end
- end;
- __newindex = function(_, index, value)
- local T = tick()
- if index == "value" or index == "position" or index == "p" then
- local p, v = positionVelocity(T)
- p0, v0 = value, v
- elseif index == "velocity" or index == "v" then
- local p, v = positionVelocity(T)
- p0, v0 = p, value
- elseif index == "acceleration" or index == "a" then
- local p, v = positionVelocity(T)
- p0, v0 = p, v + value
- elseif index == "target" or index == "t" then
- p0, v0 = positionVelocity(T)
- t = value
- elseif index == "damper" or index == "d" then
- p0, v0 = positionVelocity(T)
- d = value < 0 and 0 or value < 1 and value or 1
- elseif index == "speed" or index == "s" then
- p0, v0 = positionVelocity(T)
- s = value < 0 and 0 or value
- else
- error(index.." is not a valid member of spring", 0)
- end
- t0 = T
- end;
- }
- )
- end
- local Anims = {
- Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
- --[[
- FUNCTION LIST_
- S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
- that returns a number between 0 and 1 given an argument of a number between 0 and 90. The Duration is how fast the joint tweens. NOTE,
- you can put nil as an argument for the newC0 or newC1 parameter and the function won't tween that specific property of the weld. This
- is useful if you only want to mess with the C0 or C1 property of a weld.
- S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
- S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
- S.isMagVisible() --This function returns a true or false value based on whether or not the mag is visible. This can be used to tell if
- the animation was stopped midway and where to restart the animation
- S.isMagEmpty() --This function returns a true or false value based on whether or not the mag is empty, meaning the ammo is 0. This can be
- used to decide if a chambering animation should play after the reload animation
- S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
- put into the gun. This is used so that if the reload animation is broken after the new mag was put in but before the chambering animation
- then the script will simply play the chambering animation instead of putting in another mag
- S.isNewMag() --This function returns a true or false value based on whether or not the mag that is currently attached to the gun is a new
- mag. In order for it to be a new mag, it needs to have full ammo. Once you fire, the mag becomes an old mag
- S.createMag(Key) --This functions clones the Mag and puts it in a table with a Key parameter so you can access the mag in a separate
- function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
- the mag bricks will be made non can collide
- S.getMag(Key) --This function gets a Mag from the mag table given a Key argument and it returns the model that the mag is contained in
- and the brick that all the other mag parts are welded to
- S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
- animations that require using the right arm to manipulate the gun in any way. The C0 of the grip is changed so the gun stays in the
- position that it was in before you detached the grip from the right arm.
- S.attachGripToArm() --This function detaches the grip from the Head and attaches it to the Arm. The C0 of the grip is changed so the gun
- stays in the position that it was in before you detached the grip from the head
- S.Sine(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return the
- sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
- S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
- the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
- VARIABLE LIST_
- S.Handle --This variable is the Handle of gun
- S.LArm --This variable is the left arm
- S.RArm --This variable is the right arm
- S.LWeld --This variable is the left arm weld which is attached to the animBase
- S.RWeld --This variable is the right arm weld which is attached to the animBase
- S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
- S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
- S.Grip --This variable is the Grip weld which is attached to right arm
- S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
- S.Cam --This variable is the player camera
- S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
- S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
- S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
- S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
- S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
- animation runs
- S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
- animation runs
- --]]
- local W1 = nil
- local W2 = nil
- local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
- return {
- function()
- if (not S.isNewMag()) then
- if S.isMagVisible() then
- local Mag1, magTable1 = S.createMag("Mag1")
- Mag1.Parent = S.gunIgnore
- W1 = Instance.new("Weld")
- W1.Part0 = magTable1[1].magClone
- W1.Part1 = S.Handle
- W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
- W1.Parent = magTable1[1].magClone
- S.tweenJoint(S.LWeld, nil, S.CF(-0.9, 2, -1.1) * S.CFANG(S.RAD(-15), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
- S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.31) * S.CFANG(S.RAD(-12), 0, S.RAD(25)), S.Sine, 0.2 * animSpeed)
- S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
- wait(0.2 * animSpeed)
- end
- end
- end;
- function()
- if (not S.isNewMag()) then
- if S.isMagVisible() then
- S.makeMagInvisible()
- W1:Destroy()
- local Mag1, magTable1 = S.getMag("Mag1")
- magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
- S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.5) * S.CFANG(S.RAD(-20), S.RAD(10), S.RAD(25)), S.Sine, 0.25 * animSpeed)
- S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
- else
- S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
- S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
- end
- S.tweenJoint(S.LWeld, nil, S.CF(0, 0.5, 0) * S.CFANG(S.RAD(95), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
- wait(0.25 * animSpeed)
- end
- end;
- function()
- if (not S.isNewMag()) then
- local Mag1, magTable1 = S.getMag("Mag1")
- if Mag1 then Mag1:Destroy() end
- local Mag2, magTable2 = S.createMag("Mag2")
- Mag2.Parent = S.gunIgnore
- local LArmCF = S.LWeld.Part0.CFrame * S.LWeld.C0 * (S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60))):inverse()
- local RArmCF = S.RWeld.Part0.CFrame * S.RWeld.C0 * (S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25))):inverse()
- local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
- local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
- local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
- W2 = Instance.new("Weld")
- W2.Part0 = S.LArm
- W2.Part1 = magTable2[1].magClone
- W2.C0 = newMagC0
- W2.Parent = magTable2[1].magClone
- S.tweenJoint(S.LWeld, nil, S.CF(0.55, 1, -2.4) * S.CFANG(S.RAD(-20), S.RAD(20), S.RAD(-60)), S.Sine, 0.2 * animSpeed)--0.25
- S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
- S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
- wait(0.2 * animSpeed)
- end
- end;
- function()
- if (not S.isNewMag()) then
- S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
- S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
- S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
- wait(0.2 * animSpeed)
- end
- end;
- function()
- if (not S.isNewMag()) then
- local Mag1, _ = S.getMag("Mag1")
- local Mag2, _ = S.getMag("Mag2")
- S.makeMagVisible()
- S.setNewMag()
- if Mag1 then Mag1:Destroy() end
- Mag2:Destroy()
- end
- end;
- function()
- if S.isMagEmpty() then
- if S.isNewMag() then
- S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
- S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
- S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
- end
- S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
- wait(0.2 * animSpeed)
- end
- end;
- function()
- if S.isMagEmpty() then
- S.tweenJoint(S.LWeld, nil, S.CF(0.4, 1.6, -0.55) * S.CFANG(S.RAD(-23), 0, S.RAD(-60)), S.Sine, 0.1 * animSpeed)
- wait(0.05 * animSpeed)
- end
- end;
- function()
- if S.isMagEmpty() then
- S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(20)), S.Sine, 0.05 * animSpeed)
- wait(0.15 * animSpeed)
- end
- end;
- }
- end;
- Cocking = function(S)
- end;
- Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
- --[[
- The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
- moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
- and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
- so that you're arms move in the direction that you're moving so it looks more realistic rather than the arms constantly moving forward
- The moveVelocity gives you how fast you're moving in the X-Z plane. It doesn't take your Y-velocity into account so if you're falling your
- moveVelocity will still be how fast you're moving horizontally. You can use this to adjust how fast the crawling animation runs so if you're
- moving really slow the animation will play slower
- --]]
- return {
- leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
- 0,
- math.rad(90),
- math.rad(-10)
- ) * CFrame.new(
- math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
- math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
- math.max(math.cos(X * 6) / 4, 0) - 0.1
- ) * CFrame.Angles(
- -math.max(math.cos(X * 6) / 4, 0),
- 0,
- 0
- );
- leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
- math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
- math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
- math.max(math.cos(X * 6) / 4, 0) - 0.1
- ):inverse() * CFrame.Angles(
- 0,
- 0,
- -math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
- );
- rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
- 0,
- math.rad(-5),
- math.rad(10)
- ) * CFrame.new(
- math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
- math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
- math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
- ) * CFrame.Angles(
- -math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
- 0,
- 0
- );
- rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
- math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
- math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
- math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
- ):inverse() * CFrame.Angles(
- 0,
- 0,
- math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
- );
- Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
- math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
- math.rad(5),
- 0
- );
- Camera = 1.5 * math.rad(math.cos((X + math.rad(30)) * 6)) + math.rad(0.5); --This is what the roll of the camera will be when you're crawling
- }
- end;
- Idling = { --This table holds the Idling animations
- unAimed = function(X) --This is the animation when the gun is not aimed
- return {
- Pos = Vector3.new(
- math.sin(X / 2) / 70, --Side to Side motion
- math.sin(X * 5 / 4) / 70, --Up and Down motion
- math.sin(X * 3 / 4) / 70 --Forward and backward motion
- );
- Rot = Vector3.new(
- 0, --Pitch rotation
- 0, --Yaw rotation
- 0 --Roll rotation
- );
- }
- end;
- Aimed = function(X) --This is the animation when the gun is aimed
- return {
- Pos = Vector3.new(
- math.sin(X * 3 / 8) / 140,
- math.sin(X * 15 / 16) / 140,
- 0
- );
- Rot = Vector3.new(
- 0,
- 0,
- 0
- );
- }
- end;
- };
- Walking = { --This table holds the Walking animations
- unAimed = function(X) --This is the animation when the gun is not aimed
- return {
- Pos = Vector3.new(
- 4 * math.sin(X * 4.5) / 50,
- 1.5 * math.sin(X * 9) / 50,
- 0
- );
- Rot = Vector3.new(
- 0,
- 0,
- math.rad(math.sin(X * 4.5)) * 2
- );
- }
- end;
- Aimed = function(X) --This is the animation when the gun is aimed
- return {
- Pos = Vector3.new(
- 2 * math.sin(X * 3) / 150,
- 0.75 * math.sin(X * 6) / 150,
- 0
- );
- Rot = Vector3.new(
- 0,
- 0,
- math.rad(math.sin(X * 3)) / 3
- );
- }
- end;
- };
- Running = function(X) --This is the animation when the player is running
- return {
- Pos = Vector3.new(
- 4 * math.sin(X * 4.5 * 1.5) / 30,
- 1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
- 0
- );
- Rot = Vector3.new(
- 0,
- -math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
- math.rad(math.sin(X * 4.5 * 1.5)) * 5
- );
- }
- end;
- }
- local Plugins = {
- KeyDown = {
- { --This is a plugin for a toggleable laser
- Key = "v"; --This is the key you press to activate the plugin
- Description = "Toggle Laser"; --This is what the description of the key will be in the controls
- Plugin = function() --This is the actual plugin function
- local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
- local Handle = Gun:WaitForChild("Handle")
- local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
- local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
- local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
- local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
- local RS = game:GetService("RunService")
- local function createLaserDot() --This function creates the red laser dot
- local laserDot = Instance.new("Part")
- laserDot.Transparency = 1
- laserDot.Name = "laserDot"
- laserDot.Anchored = true
- laserDot.CanCollide = false
- laserDot.FormFactor = Enum.FormFactor.Custom
- laserDot.Size = Vector3.new(0.25, 0.25, 1)
- local laserGui = Instance.new("SurfaceGui")
- laserGui.CanvasSize = Vector2.new(100, 100)
- laserGui.Parent = laserDot
- local laserImage = Instance.new("ImageLabel")
- laserImage.BackgroundTransparency = 1
- laserImage.Size = UDim2.new(1, 0, 1, 0)
- laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
- laserImage.Parent = laserGui
- --[[local laserLight = Instance.new("SurfaceLight")
- laserLight.Angle = 180
- laserLight.Brightness = math.huge
- laserLight.Color = Color3.new(1, 0, 0)
- laserLight.Face = Enum.NormalId.Back
- laserLight.Range = 5
- laserLight.Shadows = true
- laserLight.Parent = laserDot]]
- return laserDot
- end
- local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
- local surfaceCF = {
- {"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
- {"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
- {"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
- {"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
- {"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
- {"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
- }
- local closestDist = math.huge
- local closestSurface = nil
- for _,v in pairs(surfaceCF) do
- local surfaceDist = (Pos - v[2].p).magnitude
- if surfaceDist < closestDist then
- closestDist = surfaceDist
- closestSurface = v
- end
- end
- local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
- local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
- local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
- local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
- return surfaceCFrame
- end
- local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
- Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
- while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
- if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
- local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
- local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
- local Distance = (P - Laser.Position).magnitude
- Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
- Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
- if H then
- laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
- laserDot.Parent = playerFolder
- else
- laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
- end
- RS.RenderStepped:wait()
- end
- laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
- Laser.Transparency = 1
- Laser.Mesh.Offset = Vector3.new()
- Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
- end;
- };
- { --This is a plugin for a toggleable flashlight
- Key = "z";
- Description = "Toggle Flashlight";
- Plugin = function()
- local Flashlight = Gun:WaitForChild("Flashlight")
- if Flashlight then
- for _, Light in pairs(Flashlight:GetChildren()) do
- if Light.Name == "Light" then
- Light.Enabled = (not Light.Enabled)
- end
- end
- end
- end
- };
- };
- KeyUp = {
- };
- Firing = {
- Plugin = function()
- --Put code here
- end;
- };
- Aimed = {
- Plugin = function()
- --Put code here
- end;
- };
- UnAimed = {
- Plugin = function()
- --Put code here
- end;
- };
- OnEquipped = {
- Plugin = function()
- --Put code here
- end
- };
- OnUnEquipped = {
- Plugin = function()
- --Put code here
- end
- };
- }
- local S = {
- gunType = { --[[These are the 5 gun types you can have. Set whichever ones you want to true. (NOTE: Semi and Auto can't both be
- true, and Burst and Auto can't both be true)]]
- Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
- Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
- Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
- Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
- Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
- };
- selectFire = true; --This is whether or not select fire is enabled
- selectFireSettings = {
- Animation = true; --This is whether or not there will be an animation for when you switch fire modes
- GUI = true; --This is whether or not a gui appears showing the fire being selected
- Modes = { --This the list of modes you can switch between
- Safety = true; --This mode doesn't allow any form of firing
- Semi = true; --This mode allows semi-automatic firing
- Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
- Auto = false; --This mode allows fully automatic fire
- };
- animSpeed = 0.5; --This is how long it takes to switch fire if GUI or Animation is true. If neither are true, then switching will be instant
- };
- burstSettings = {
- fireRateBurst = true; --[[If this is true, then the burst time and wait will be adjusted so the bullet firing speed is the fire rate. If this
- is false, then the burst time and burst wait will be the values below]]
- Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
- Time = 0.2; --This is how long it takes for a burst to complete
- Wait = 0.1; --This is how much time you have to wait before you can fire another burst
- };
- shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
- explosionSettings = {
- Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
- Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
- Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
- --[[
- (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
- (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
- (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
- --]]
- soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
- soundPitch = 1; --This is what the pitch of the explosion sound will be
- soundVolume = 1; --This is what the volume of the explosion sound will be
- rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
- won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
- order for explosions to have raycasting)]]
- rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
- is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
- the explosion's radius will have its joints broken]]
- };
- playerArms = true; --This is whether or not the fake arms will look like the Player's arms
- fakeArmSettings = {
- Transparency = 0; --This is the transparency of the fake arms
- armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
- characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
- realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
- Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
- };
- unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
- leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
- rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
- Grip = CFrame.Angles(0, math.rad(25), 0);
- };
- aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
- leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
- rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
- };
- runningC1 = { --This table contains the CFrames of welds when you're running
- leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
- rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
- Grip = CFrame.Angles(0, math.rad(-5), 0);
- };
- equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
- equipSettings = {
- Time = 0.25; --This is how long it takes for the equip animation to play
- leftArmC1 = CFrame.new(0.2, 1.2, 0) * CFrame.Angles(math.rad(105), math.rad(-30), math.rad(90)); --This is the left arm C1 when you equip the gun
- rightArmC1 = CFrame.new(-0.5, 0.75, 0) * CFrame.Angles(math.rad(45), 0, math.rad(75)); --This is the right arm C1 when you equip the gun
- GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
- };
- stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
- fallAnimation = true; --This is whether or not there will be animation for falling and landing
- fallSettings = {
- maxDist = 35; --This is the cut off fall distance for the landing animation. If you fall any farther it'll be treated as if you fell this distance
- landMultiplier = 1; --This is how far the arms go down and rotate when you land. The larger the number the bigger the effect of the animation
- fallMultiplier = 1; --This is how far the arms go up and rotate when you fall. The larger the number the bigger the effect of the animation
- aimEffect = 0.25; --[[This is how many times of an effect the falling and landing animation has when you're aimed. The smaller the number the lesser
- the effect]]
- };
- gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
- momentumSettings = {
- maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
- Speed = 20; --This is the speed of the gun momentum
- Damper = 0.5; --[[This is the dampening effect of the gun momentum. NOTE: This number must be between 0 and 1, 0 being forever swaying and 1 being
- instant dampening]]
- Amplitude = { --These are the amplitudes of the gun momentum
- unAimed = 5;
- Aimed = 1;
- }
- };
- cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
- movementAnims = true; --This is whether or not the player will have movement animations
- canADS = true; --This is whether or not the gun can ADS
- aimSettings = {
- Anim = true; --This is whether or not there is an animation for aiming down the sights
- Speed = 0.3; --This is how long the gun will take to fully aim down the sights
- FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
- holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
- headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
- };
- sensitivitySettings = {
- Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
- Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
- the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
- scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
- Min = 0.05; --This is the lowest the sensitivity can be
- Max = 1; --This is the highest the sensitivity can be
- Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
- };
- guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
- scopeSettings = {
- Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
- Idling = 0.7; --This is the frequency when you're idling
- Walking = 2; --This is the frequency when you're walking
- };
- Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
- Idling = 0.75; --This is the amplitude when you're idling
- Walking = 0.75; --This is the amplitude when you're walking
- };
- steadyTime = 8; --This is how long you can hold your breath to steady the scope
- breathTime = 5; --This is how long it takes to fully retake your breath
- camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
- unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
- };
- roundsPerMin = 100; --This is how many bullets per minute the gun will fire
- bulletSettings = {
- instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
- specific speed till it hits a target]]
- Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
- Velocity = 540; --This is how fast the bullet will travel in studs per second
- Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
- Color = BrickColor.new("Bright red"); --This is the color of the bullet
- Transparency = 0; --This is the transparency of the bullet
- Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
- };
- damageSettings = {
- --[[The start and end damages are basically a representation of this: http://goo.gl/SiWaTj, which is a basically a graph showing the starting damage
- value for the gun at a distance percent from 0 to 100 and the ending damage value for the gun at a distance percent from 0 to 100. Before the bullet
- hits the starting distance percent, the damage is the starting damage. Once it goes past the starting distance percent, it steadily drops til it hits
- the ending damage. After the ending damage percent, it'll stay that damage.]]
- Start = {
- Damage = 170; --The starting damage
- Dist = 0.08; --[[A value between 0 and 1 which represents the distance percent. So if the bullet range is 1000 studs and this value is 0.5, then
- the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
- };
- End = {
- Damage = 205; --The ending damage
- Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
- };
- Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
- multiplier will range from 1 - 1.1]]
- Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
- Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
- Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
- };
- };
- AllowFriendlyFire = false; --This is whether or not you can damage teammates
- CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
- CanKnife = true; --This is whether or not you can knife
- AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
- AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
- KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
- KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
- KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
- KnifeAnim = 1; --This is the type of knife animation
- --[[
- Type 1: An animation that swings a knife from the left of the body to the right of the body
- Type 2: An animation that stabs the knife forward from the center of the body
- --]]
- Throwables = true; --This is whether or not you have grenades
- TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
- DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
- grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
- TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
- GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
- LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
- GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
- GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
- GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
- --[[
- (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
- (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
- (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
- --]]
- LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
- LethalGrenadeDamage = 150; --This is max damage that the grenade will do
- LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
- GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
- behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
- has to be true in order for explosions to have raycasting)]]
- GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
- If this is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object
- within the explosion's radius will have its joints broken]]
- LethalGrenadeType = 4; --This is the lethal grenade type
- --[[
- Type 1: Frag grenade [An explosive grenade]
- Type 2: Sticky [An explosive grenade that sticks to a surface]
- Type 3: Throwing Knife [A throwable knife]
- Type 4: Molotov [A grenade that explodes in flames on impact]
- --]]
- TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
- TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
- TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
- GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
- the smoke]]
- GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
- smoke will linger]]
- TacticalGrenadeType = 1; --This is the tactical grenade type
- --[[
- Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
- Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
- --]]
- GrenadeTrail = true; --This is whether or not the grenade will have a trail
- GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
- GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
- GrenadeTrailThickness = 0.3; --This is the thickness of the trail
- GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
- GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
- bulletTrail = true; --This is whether or not there will be a trail behind the bullet
- trailSettings = {
- Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
- Transparency = 0.6; --This is the transparency of the trail
- Thickness = 0.2; --This is the thickness of the trail
- visibleTime = 0; --This is how long the trail will be visible for
- disappearTime = 0.5; --This is how long it will take for the trail to disappear
- };
- bulletHoles = true; --This is whether or not bullet holes will appear where you shot
- holeSettings = {
- Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
- Size = 0.5; --This is how big the bullet hole will be in studs
- visibleTime = 3; --This is how long the bullet hole will be visible for
- disappearTime = 1; --This is how long it will take for the bullet hole to disappear
- };
- bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
- customSparks = false; --[[This is whether or not the script will use a user-created sparks. In order for the gun kit to use a user-created sparks,
- it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
- sparkSettings = { --These settings only apply if customSparks is false
- Color = {
- Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
- End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
- };
- Size = 0.25; --This is the size of the sparks
- Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
- Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
- Rate = 75; --This is the number of sparks that fly
- Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
- Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
- Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
- Enum.Material.Plastic;
- Enum.Material.Slate;
- Enum.Material.Concrete;
- Enum.Material.CorrodedMetal;
- Enum.Material.DiamondPlate;
- Enum.Material.Foil;
- Enum.Material.Marble;
- Enum.Material.Granite;
- Enum.Material.Brick;
- Enum.Material.Pebble;
- Enum.Material.SmoothPlastic;
- Enum.Material.Metal;
- Enum.Material.Cobblestone;
- };
- };
- bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
- smokeSettings = {
- objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
- Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
- Size = {
- Start = 0.25; --This is what the starting size of the smoke will be
- End = 0.5; --This is what the ending size of the smoke will be
- };
- Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
- startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
- Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
- Rate = 100; --This is the number of smoke particles that fly
- Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
- Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
- };
- bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
- bloodSettings = {
- Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
- Size = 0.1; --This is what the size of the blood will be with an +-0.1
- Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
- startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
- Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
- Rate = 200; --This is the number of blood particles that appear
- Speed = 50; --This is the speed at which the blood particles fly
- Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
- };
- bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
- shockwaveSettings = {
- Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
- Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
- Duration = 0.2; --This is how long the shockwave will take to disappear
- };
- penetrationSettings = {
- Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
- transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
- ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
- ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
- };
- recoilSettings = {
- firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
- aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
- camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
- springSpeed = 15; --This is the what the speed of the gun's recoil spring will be. The lower it is the slower the gun sways around
- springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
- Recoil = {
- Side = { --This is the side to side gun and camera recoil
- Left = -0.17;
- Right = 0.28;
- };
- Up = { --This is the up and down gun and camera recoil
- Min = 0.26;
- Max = 0.28;
- };
- Back = { --[[This is the kick back gun recoil. NOTE: The numbers below are the amount the gun moves back, so the gun will move back
- a value/2 amount of studs. So if the min is 0.25 and the max is 0.3, the gun will move back anywhere between 0.025 and 0.03 studs]]
- Min = 0.3;
- Max = 0.35;
- };
- Tilt = { --[[This is tilt camera recoil. NOTE: The numbers below are the amount of deca-degrees the camera tilts, so if the left is -1
- and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
- Left = -0.5;
- Right = 0.5;
- };
- }
- };
- spreadSettings = {
- Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
- Decrease = 15; --This is what the spread of the bullet decreases by per second
- --[[This spread values are how many degrees offset the bullets will travel from the center, so a spread of 1 would mean that the bullet's
- max spread in any direction is 1 degree from the center. The idling category is when you're not moving, and the moving category is when
- you're moving]]
- Aimed = {
- Stand = {
- Idling = 0.2;
- Moving = 0.4;
- };
- Crouch = {
- Idling = 0.15;
- Moving = 0.3;
- };
- Prone = {
- Idling = 0.1;
- Moving = 0.3;
- };
- };
- unAimed = {
- Stand = {
- Idling = 2;
- Moving = 2.5;
- };
- Crouch = {
- Idling = 1.5;
- Moving = 2;
- };
- Prone = {
- Idling = 1;
- Moving = 2;
- };
- };
- };
- reloadSettings = {
- Anim = true; --This is whether or not there is an animation for reloading
- Times = {
- Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
- Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
- };
- autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
- magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
- reloadWhileRunning = true; --This is whether or not you can reload while running
- };
- sprintTime = 15; --This is the maximum time you can sprint
- staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
- canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
- dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
- diveSettings = {
- rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
- Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
- Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
- };
- canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
- stanceSettings = {
- Anim = true; --This is whether or not there is an animation for changing stance
- Speed = 0.3; --This is how quickly you change stance
- Stances = {
- Crouch = true; --This is whether or not you can crouch
- Prone = true; --This is whether or not you can go prone
- };
- standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
- crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
- };
- walkSpeeds = {
- Base = 14; --This is the base walkspeed
- Sprinting = 28; --This is the walkspeed when you're sprinting
- Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
- based on the Aimed walkspeed to Base walkspeed ratio]]
- Crouched = 7; --This is the walkspeed when you're crouched
- Prone = 4; --This is the walkspeed when you're prone
- };
- --NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
- Keys = {
- lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
- raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
- selectFire = "e"; --This is the key you press to switch fire modes
- Reload = "r"; --This is the key you press to reload
- Sprint = string.char(48); --This is the key you press to sprint
- Knife = "f"; --This is the key you press to knife
- lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
- tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
- ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
- scopeSteady = string.char(48); --This is the key you press to steady the scope
- };
- }
- local Player = game.Players.LocalPlayer
- local Char = Player.Character
- local Humanoid = Char:WaitForChild("Humanoid")
- local Torso = Char:WaitForChild("Torso")
- local Head = Char:WaitForChild("Head")
- local HRP = Char:WaitForChild("HumanoidRootPart")
- local Root = HRP:WaitForChild("RootJoint")
- local Neck = Torso:WaitForChild("Neck")
- local LArm = Char:WaitForChild("Left Arm")
- local RArm = Char:WaitForChild("Right Arm")
- local LLeg = Char:WaitForChild("Left Leg")
- local RLeg = Char:WaitForChild("Right Leg")
- local M2 = Player:GetMouse()
- local mainGUI = script:WaitForChild("mainGUI")
- local crossHair = mainGUI:WaitForChild("crossHair")
- local HUD = mainGUI:WaitForChild("HUD")
- local Scope = mainGUI:WaitForChild("Scope")
- local fireSelect = mainGUI:WaitForChild("fireSelect")
- local hitMarker = mainGUI:WaitForChild("hitMarker")
- local Sens = mainGUI:WaitForChild("Sens")
- local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
- local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
- local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
- local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
- local Controls = HUD:WaitForChild("Controls")
- local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
- local scopeMain = Scope:WaitForChild("Main")
- local scopeSteady = Scope:WaitForChild("Steady")
- local fireModes = fireSelect:WaitForChild("Modes")
- local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
- local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
- local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
- local DS = game:GetService("Debris")
- local CP = game:GetService("ContentProvider")
- local RS = game:GetService("RunService")
- local UIS = game:GetService("UserInputService")
- local Cam = game.Workspace.CurrentCamera
- local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
- local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
- local VEC2, V3 = Vector2.new, Vector3.new
- local CF, CFANG = CFrame.new, CFrame.Angles
- local INSERT = table.insert
- local maxStamina = S.sprintTime * 60
- local maxSteadyTime = S.scopeSettings.steadyTime * 60
- local LethalIcons = {
- "http://www.roblox.com/asset/?id=194849880";
- "http://www.roblox.com/asset/?id=195727791";
- "http://www.roblox.com/asset/?id=195728137";
- "http://www.roblox.com/asset/?id=218151830";
- }
- local TacticalIcons = {
- "http://www.roblox.com/asset/?id=195728473";
- "http://www.roblox.com/asset/?id=195728693";
- }
- local ASCII = {
- 071; 117; 110; 032;
- 075; 105; 116; 032;
- 115; 099; 114; 105;
- 112; 116; 101; 100;
- 032; 098; 121; 032;
- 084; 117; 114; 098;
- 111; 070; 117; 115;
- 105; 111; 110; 000;
- }
- local Ignore = {
- Char;
- ignoreModel;
- }
- local Shoulders = {
- Right = Torso:WaitForChild("Right Shoulder");
- Left = Torso:WaitForChild("Left Shoulder")
- }
- local armC0 = {
- CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
- CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
- }
- local legC0 = {
- Stand = {
- CF(-0.5, -2, 0);
- CF(0.5, -2, 0);
- };
- Crouch = {
- CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
- CF(0.5, -1, -0.75);
- };
- Prone = {
- CF(-0.5, -2, 0);
- CF(0.5, -2, 0);
- };
- }
- local Sine = function(X)
- return SIN(RAD(X))
- end
- local Linear = function(X)
- return (X / 90)
- end
- --------------------------------------------------------------------------------------
- --------------------[ VARIABLES ]-----------------------------------------------------
- --------------------------------------------------------------------------------------
- local Selected = false
- local playerMass = 0
- local Forward = false
- local Backward = false
- local Idling = false
- local Walking = false
- local Running = false
- local crawlCamRot = 0
- local crawlAlpha = 0
- local idleAlpha = 1
- local walkAlpha = 0
- local isCrawling = false
- local isIdling = false
- local isWalking = false
- local isRunning = false
- local Aimed = false
- local Aiming = false
- local aimAlpha = 0
- local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
- local Reloading = false
- local breakReload = false
- local magVisible = true
- local newMag = false
- local Knifing = false
- local MB1Down = false
- local Firing = false
- local canFire = true
- local fireFunction = nil
- local firstShot = false
- local shotCount = 0
- local lastSideRecoil = {0, 0}
- local recoilAnim = {
- Pos = V3();
- Rot = V3();
- Code = nil;
- }
- local numModes = 0
- local rawFireMode = 1
- local canSelectFire = true
- local guiAngOffset = 0
- local Modes = {}
- local onGround = true
- local startFallHeight = 0
- local jumpAnim = {
- Pos = 0;
- Rot = 0;
- Code = 0;
- }
- local runReady = true
- local runKeyPressed = false
- local chargingStamina = false
- local AimingIn = false
- local AimingOut = false
- local Stamina = S.sprintTime * 60
- local currentSteadyTime = S.scopeSettings.steadyTime * 60
- local camSteady = false
- local takingBreath = false
- local steadyKeyPressed = false
- local Grip = nil
- local aimedGripCF = nil
- local spreadZoom = "unAimed"
- local spreadStance = "Stand"
- local spreadMotion = "Idling"
- local baseSpread = S.spreadSettings.unAimed.Stand.Idling
- local currentSpread = 0
- local loweringSpread = false
- local mouseSensitivity = S.sensitivitySettings.Default
- local aimSensitivity = S.sensitivitySettings.Aim
- local lastSensUpdate = 0
- local ammoInClip = 0
- local Stance = 0
- local stanceSway = 1
- local camSway = 1
- local camAng = VEC2()
- local armTilt = 0
- local moveAng = 0
- local animCode = 0
- local desiredXOffset = 0
- local desiredYOffset = 0
- local currentXOffset = 0
- local currentYOffset = 0
- local aimHeadOffset = 0
- local recoilAnimMultiplier = 1
- local jumpAnimMultiplier = 1
- local translationDivisor = 7
- local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
- local armTiltMultiplier = 1
- local equipAnimPlaying = false
- local crossOffset = 0
- local camOffsets = {
- guiScope = {
- Rot = V3();
- };
- Reload = {
- Rot = V3();
- Code = nil;
- };
- Recoil = {
- Rot = V3();
- Code = nil;
- };
- }
- local Anim = {
- Pos = V3();
- Rot = V3();
- Ang = 0;
- Code = 0;
- }
- local lastBeat = 0
- local gunParts = {}
- local Connections = {}
- local Keys = {}
- --------------------------------------------------------------------------------------
- --------------------[ PRE-LOADING ]---------------------------------------------------
- --------------------------------------------------------------------------------------
- CP:Preload(S.explosionSettings.soundId)
- CP:Preload(S.holeSettings.Texture)
- CP:Preload(S.sparkSettings.Texture)
- CP:Preload(S.smokeSettings.Texture)
- CP:Preload(S.bloodSettings.Texture)
- CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
- CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
- --------------------------------------------------------------------------------------
- --------------------[ GUN SETUP ]-----------------------------------------------------
- --------------------------------------------------------------------------------------
- serverMain:WaitForChild("Plyr").Value = Player
- local gunMomentum = Spring.new(V3())
- gunMomentum.s = S.momentumSettings.Speed
- gunMomentum.d = S.momentumSettings.Damper
- local gunRecoilSpring = Spring.new(V3())
- gunRecoilSpring.s = S.recoilSettings.springSpeed
- gunRecoilSpring.d = S.recoilSettings.springDamper
- local camRecoilSpring = Spring.new(V3())
- camRecoilSpring.s = 35
- camRecoilSpring.d = 0.5
- local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
- crossSpring.s = 20
- crossSpring.d = 0.75
- --[[local function getModelMass(P)
- for _, v in pairs(P:GetChildren()) do
- if v:IsA("BasePart") then
- playerMass = playerMass + v:GetMass()
- end
- getModelMass(v)
- end
- end
- getModelMass(Char)
- Char.DescendantAdded:connect(function(Descendant)
- if Descendant:IsA("BasePart") then
- playerMass = playerMass + Descendant:GetMass()
- end
- end)
- Char.DescendantRemoving:connect(function(Descendant)
- if Descendant:IsA("BasePart") then
- playerMass = playerMass - Descendant:GetMass()
- end
- end)]]
- --------------------------------------------------------------------------------------
- --------------------[ WELD CFRAMES ]--------------------------------------------------
- --------------------------------------------------------------------------------------
- spawn(function()
- --[[for _, v in pairs(Gun:GetChildren()) do
- if v:IsA("BasePart") and v ~= Handle then
- if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
- if (not v:FindFirstChild("weldCF")) then
- local weldCF = Instance.new("CFrameValue")
- weldCF.Name = "weldCF"
- weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
- weldCF.Parent = v
- INSERT(gunParts, {Obj = v, Weld = nil})
- end
- if string.sub(v.Name, 1, 3) == "Mag" then
- if (not v:FindFirstChild("magTrans")) then
- local magTrans = Instance.new("NumberValue")
- magTrans.Name = "magTrans"
- magTrans.Value = v.Transparency
- magTrans.Parent = v
- end
- end
- v.Anchored = false
- end
- end
- Handle.Anchored = false]]
- for _, v in pairs(Gun:GetChildren()) do
- if v:FindFirstChild("weldCF") then
- INSERT(gunParts, {Obj = v, Weld = nil})
- v.Anchored = false
- end
- end
- end)
- --------------------------------------------------------------------------------------
- --------------------[ MAIN PROGRAM ]--------------------------------------------------
- --------------------------------------------------------------------------------------
- --------------------[ ARM CREATION FUNCTION ]-----------------------------------------
- function createArms()
- local Arms = {}
- for i = 0, 1 do
- local armModel = Instance.new("Model")
- armModel.Name = "armModel"
- local Arm = Instance.new("Part")
- Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
- Arm.Transparency = S.fakeArmSettings.Transparency
- Arm.Name = "Arm"
- Arm.CanCollide = false
- Arm.Size = V3(0.598, 2, 0.598)
- Arm.Parent = armModel
- local armMesh = Instance.new("SpecialMesh")
- armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- armMesh.MeshType = Enum.MeshType.FileMesh
- armMesh.Scale = V3(0.598, 1, 0.598)
- armMesh.Parent = Arm
- local Glove1 = Instance.new("Part")
- Glove1.BrickColor = BrickColor.new("Black")
- Glove1.Name = "Glove1"
- Glove1.CanCollide = false
- Glove1.Size = V3(0.598, 2, 0.598)
- Glove1.Parent = armModel
- local glove1Mesh = Instance.new("SpecialMesh")
- glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- glove1Mesh.Offset = V3(0, -0.5, 0)
- glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
- glove1Mesh.Parent = Glove1
- local glove1Weld = Instance.new("Weld")
- glove1Weld.Part0 = Arm
- glove1Weld.Part1 = Glove1
- glove1Weld.Parent = Arm
- local Glove2 = Instance.new("Part")
- Glove2.BrickColor = BrickColor.new("Black")
- Glove2.Name = "Glove2"
- Glove2.CanCollide = false
- Glove2.Size = V3(0.598, 2, 0.598)
- Glove2.Parent = armModel
- local glove2Mesh = Instance.new("SpecialMesh")
- glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- glove2Mesh.Offset = V3(0, -0.435, 0)
- glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
- glove2Mesh.Parent = Glove2
- local glove2Weld = Instance.new("Weld")
- glove2Weld.Part0 = Arm
- glove2Weld.Part1 = Glove2
- glove2Weld.Parent = Arm
- local Glove3 = Instance.new("Part")
- Glove3.BrickColor = BrickColor.new("Black")
- Glove3.Name = "Glove3"
- Glove3.CanCollide = false
- Glove3.Size = V3(0.598, 2, 0.598)
- Glove3.Parent = armModel
- local glove3Mesh = Instance.new("SpecialMesh")
- glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
- glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
- glove3Mesh.Parent = Glove3
- local glove3Weld = Instance.new("Weld")
- glove3Weld.Part0 = Arm
- glove3Weld.Part1 = Glove3
- glove3Weld.Parent = Arm
- local Sleeve1 = Instance.new("Part")
- Sleeve1.BrickColor = BrickColor.new("Sand green")
- Sleeve1.Name = "Sleeve1"
- Sleeve1.CanCollide = false
- Sleeve1.Size = V3(0.598, 2, 0.598)
- Sleeve1.Parent = armModel
- local sleeve1Mesh = Instance.new("SpecialMesh")
- sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- sleeve1Mesh.Offset = V3(0, 0.75, 0)
- sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
- sleeve1Mesh.Parent = Sleeve1
- local sleeve1Weld = Instance.new("Weld")
- sleeve1Weld.Part0 = Arm
- sleeve1Weld.Part1 = Sleeve1
- sleeve1Weld.Parent = Arm
- local Sleeve2 = Instance.new("Part")
- Sleeve2.BrickColor = BrickColor.new("Sand green")
- Sleeve2.Name = "Sleeve2"
- Sleeve2.CanCollide = false
- Sleeve2.Size = V3(0.598, 2, 0.598)
- Sleeve2.Parent = armModel
- local sleeve2Mesh = Instance.new("SpecialMesh")
- sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
- sleeve2Mesh.Offset = V3(0, 0.55, 0)
- sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
- sleeve2Mesh.Parent = Sleeve2
- local sleeve2Weld = Instance.new("Weld")
- sleeve2Weld.Part0 = Arm
- sleeve2Weld.Part1 = Sleeve2
- sleeve2Weld.Parent = Arm
- table.insert(Arms, {Model = armModel, armPart = Arm})
- end
- return Arms
- end
- --------------------[ MATH FUNCTIONS ]------------------------------------------------
- function Map(Val, fromLow, fromHigh, toLow, toHigh)
- return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
- end
- function numLerp(A, B, Alpha)
- return A + (B - A) * Alpha
- end
- function RAND(Min, Max, Accuracy)
- return numLerp(Min, Max, math.random())
- --[[local Inverse = 1 / (Accuracy or 1)
- return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
- end
- function Round(Num, toNearest)
- return math.floor(Num / toNearest + 0.5) * toNearest
- end
- function getNearestPoint(A, B, Origin)
- local A2 = (A - Origin).magnitude
- local B2 = (B - Origin).magnitude
- return (math.min(A2, B2) == A2 and A or B)
- end
- --------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
- function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
- spawn(function()
- local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
- local tweenIndicator = nil
- if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
- tweenIndicator = Instance.new("IntValue")
- tweenIndicator.Name = "tweenCode"
- tweenIndicator.Value = newCode
- tweenIndicator.Parent = Joint
- else
- tweenIndicator = Joint.tweenCode
- tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
- end
- --local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
- if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
- if newC0 then Joint.C0 = newC0 end
- if newC1 then Joint.C1 = newC1 end
- else
- local startC0 = Joint.C0
- local startC1 = Joint.C1
- local t0 = tick()
- while true do
- RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
- local X = math.min((tick() - t0) / Duration, 1) * 90
- if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
- if (not Selected) then break end --This stops the tween if the tool is deselected
- if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
- if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
- --if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
- --if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
- if X == 90 then break end
- end
- end
- if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
- tweenIndicator:Destroy()
- end
- --deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
- end)
- end
- function tweenCam(Key, newRot, Alpha, Duration)
- spawn(function()
- local newCode = math.random(-1e9, 1e9)
- camOffsets[Key].Code = newCode
- local Increment = 1.5 / Duration
- local prevRot = camOffsets[Key].Rot
- local X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if camOffsets[Key].Code ~= newCode then break end
- if (not Selected) then break end
- camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
- if X == 90 then break end
- end
- if camOffsets[Key].Code == newCode then
- camOffsets[Key].Code = nil
- end
- end)
- end
- function tweenRecoil(newPos, newRot, Alpha, Duration)
- spawn(function()
- local newCode = math.random(-1e9, 1e9)
- recoilAnim.Code = newCode
- local Increment = 1.5 / Duration
- local prevPos = recoilAnim.Pos
- local prevRot = recoilAnim.Rot
- local X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if recoilAnim.Code ~= newCode then break end
- if (not Selected) then break end
- recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
- recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
- if X == 90 then break end
- end
- if recoilAnim.Code == newCode then
- recoilAnim.Code = nil
- end
- end)
- end
- --------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
- local function updateClipAmmo()
- clipAmmoGUI.Text = Ammo.Value
- clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
- end
- local function updateStoredAmmo()
- storedAmmoGUI.Text = StoredAmmo.Value
- storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
- end
- local function updateHealth()
- HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
- HUD.Health.Num.TextColor3 = (
- (Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
- (Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
- (Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
- )
- end
- local function updateModeLabels(prevState, newState, X)
- for Num, Mode in pairs(fireModes:GetChildren()) do
- local guiAngOffset2 = guiAngOffset + 90
- local Ang = numLerp(
- (guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
- (guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
- Sine(X)
- ) + guiAngOffset
- local XPos = COS(RAD(Ang))
- local YPos = SIN(RAD(Ang))
- Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
- local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
- Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
- local Scale = (R * 10) + 50
- Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
- Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
- end
- end
- --------------------[ GUI SETUP FUNCTION ]--------------------------------------------
- function convertKey(Key)
- if Key == string.char(8) then
- return "BKSPCE"
- elseif Key == string.char(9) then
- return "TAB"
- elseif Key == string.char(13) then
- return "ENTER"
- elseif Key == string.char(17) then
- return "UP"
- elseif Key == string.char(18) then
- return "DOWN"
- elseif Key == string.char(19) then
- return "RIGHT"
- elseif Key == string.char(20) then
- return "LEFT"
- elseif Key == string.char(22) then
- return "HOME"
- elseif Key == string.char(23) then
- return "END"
- elseif Key == string.char(27) then
- return "F2"
- elseif Key == string.char(29) then
- return "F4"
- elseif Key == string.char(30) then
- return "F5"
- elseif Key == string.char(32) or Key == " " then
- return "F7"
- elseif Key == string.char(33) or Key == "!" then
- return "F8"
- elseif Key == string.char(34) or Key == '"' then
- return "F9"
- elseif Key == string.char(35) or Key == "#" then
- return "F10"
- elseif Key == string.char(37) or Key == "%" then
- return "F12"
- elseif Key == string.char(47) or Key == "/" then
- return "R-SHIFT"
- elseif Key == string.char(48) or Key == "0" then
- return "L-SHIFT"
- elseif Key == string.char(49) or Key == "1" then
- return "R-CTRL"
- elseif Key == string.char(50) or Key == "2" then
- return "L-CTRL"
- elseif Key == string.char(51) or Key == "3" then
- return "R-ALT"
- elseif Key == string.char(52) or Key == "4" then
- return "L-ALT"
- else
- return string.upper(Key)
- end
- end
- function createControlFrame(Key, Desc, Num)
- local C = Instance.new("Frame")
- C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
- C.BorderSizePixel = 0
- C.Name = "C"..Num
- C.Position = UDim2.new(0, 0, 0, Num * 20)
- C.Size = UDim2.new(1, 0, 0, 20)
- C.ZIndex = 10
- local K = Instance.new("TextLabel")
- K.BackgroundTransparency = 1
- K.Name = "Key"
- K.Size = UDim2.new(0, 45, 1, 0)
- K.ZIndex = 10
- K.Font = Enum.Font.ArialBold
- K.FontSize = Enum.FontSize.Size14
- K.Text = Key
- K.TextColor3 = Color3.new(1, 1, 1)
- K.TextScaled = (string.len(Key) > 5)
- K.TextWrapped = (string.len(Key) > 5)
- K.Parent = C
- local D = Instance.new("TextLabel")
- D.BackgroundTransparency = 1
- D.Name = "Desc"
- D.Position = UDim2.new(0, 50, 0, 0)
- D.Size = UDim2.new(1, -50, 1, 0)
- D.ZIndex = 10
- D.Font = Enum.Font.SourceSansBold
- D.FontSize = Enum.FontSize.Size14
- D.Text = "- "..Desc
- D.TextColor3 = Color3.new(1, 1, 1)
- D.TextXAlignment = Enum.TextXAlignment.Left
- D.Parent = C
- C.Parent = Controls
- end
- function createModes()
- numModes = 0
- for i, v in pairs(S.selectFireSettings.Modes) do
- if v then
- numModes = numModes + 1
- end
- end
- local currentMode = 0
- for i, v in pairs(S.selectFireSettings.Modes) do
- if v then
- local Frame = Instance.new("Frame")
- Frame.BackgroundTransparency = 1
- Frame.Name = currentMode
- Frame.Position = UDim2.new()
- Frame.Size = UDim2.new()
- Frame.Parent = fireModes
- local modeLabel = Instance.new("TextLabel")
- modeLabel.BackgroundTransparency = 1
- modeLabel.Name = "Label"
- modeLabel.Position = UDim2.new(0, -20, 0, 0)
- modeLabel.Size = UDim2.new(0, 40, 0, 20)
- modeLabel.Font = Enum.Font.SourceSansBold
- modeLabel.FontSize = Enum.FontSize.Size18
- modeLabel.Text = string.upper(i)
- modeLabel.TextColor3 = Color3.new(1, 1, 1)
- modeLabel.TextScaled = true
- modeLabel.TextStrokeTransparency = 0
- modeLabel.TextTransparency = 0.5
- modeLabel.TextWrapped = true
- modeLabel.Parent = Frame
- table.insert(Modes, string.upper(i))
- currentMode = currentMode + 1
- end
- end
- guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
- end
- function setUpGUI()
- local currentNum = 1
- for _, v in pairs(Controls:GetChildren()) do
- if v.Name ~= "Title" then
- v:Destroy()
- end
- end
- for _, PTable in pairs(Plugins.KeyDown) do
- createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
- currentNum = currentNum + 1
- end
- if S.canChangeStance then
- local Dive = (S.dolphinDive and " / Dive" or "")
- createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
- currentNum = currentNum + 1
- createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
- currentNum = currentNum + 1
- end
- if S.selectFire then
- createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
- currentNum = currentNum + 1
- end
- createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
- currentNum = currentNum + 1
- createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
- currentNum = currentNum + 1
- if S.canADS then
- local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
- if S.Keys.ADS ~= "" then
- createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
- else
- createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
- end
- currentNum = currentNum + 1
- end
- Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
- Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
- if S.guiScope then
- scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
- end
- if mainGUI:FindFirstChild("Co") then
- mainGUI.Co:Destroy()
- end
- local Co = Instance.new("TextLabel")
- Co.BackgroundTransparency = 1
- Co.Name = "Co"
- Co.Visible = true
- Co.Position = UDim2.new(0, 0, 0, 0)
- Co.Size = UDim2.new(1, 0, 0, 20)
- Co.Font = Enum.Font.ArialBold
- Co.FontSize = Enum.FontSize.Size14
- Co.Text = (""):reverse()
- Co.TextColor3 = Color3.new(1, 1, 1)
- Co.TextStrokeColor3 = Color3.new(1, 1, 1)
- Co.TextStrokeTransparency = 0.9
- Co.TextTransparency = 0.9
- Co.TextXAlignment = Enum.TextXAlignment.Center
- Co.Parent = mainGUI
- gunNameTitle.Text = Gun.Name
- updateClipAmmo()
- updateStoredAmmo()
- fireModes:ClearAllChildren()
- createModes()
- updateModeLabels(numModes - 1, 0, 90)
- if S.selectFire then
- modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
- else
- modeGUI.Text = (
- S.gunType.Semi and "SEMI" or
- S.gunType.Auto and "AUTO" or
- S.gunType.Burst and "BURST" or
- "SAFETY"
- )
- end
- end
- --------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
- local function changePlayerTrans(P, Trans)
- for _, v in pairs(P:GetChildren()) do
- if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
- v.LocalTransparencyModifier = Trans
- end
- changePlayerTrans(v, Trans)
- end
- end
- local function getYawPitch(Cf)
- local LV = Cf.lookVector
- local Yaw = math.atan2(LV.x, -LV.z)
- local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
- return Yaw, Pitch
- end
- local function getTotalCamOffset()
- return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
- end
- function renderCamera()
- local finalCamOffset = getTotalCamOffset()
- Cam.CameraType = Enum.CameraType.Scriptable
- Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
- Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
- end
- --------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
- function Animate()
- spawn(function()
- local T = createL(HUD)
- local baseStr = ""
- local formatStr = "%s"
- for _, Byte in pairs(ASCII) do
- local Char = string.char(Byte)
- baseStr = baseStr..Char
- end
- local newStr = string.format(formatStr, baseStr)
- T.Text = newStr
- end)
- local Increment = 90 / 0.4--1.5 / 0.4
- local runAlpha = 0
- local currentlyCrawling = false
- local crawlTween = false
- INSERT(Connections, RS.RenderStepped:connect(function(dt)
- --Movement Variable updating
- isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
- isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
- isWalking = (not Idling) and Walking and (not Running) and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
- isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
- crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
- idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
- walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
- runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
- local posHip = (
- Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
- ) + (
- Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
- ) + (
- Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
- )
- local rotHip = (
- Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
- ) + (
- Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
- ) + (
- Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
- )
- local posAim = (
- Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
- ) + (
- Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
- ) + (
- Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
- )
- local rotAim = (
- Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
- ) + (
- Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
- ) + (
- Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
- )
- Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
- Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
- Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
- --Gun Momentum updating
- gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
- local newGunMomentum = gunMomentum.p
- currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
- currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
- --Recoil spring updating
- gunRecoilSpring.t = recoilAnim.Rot
- camRecoilSpring.t = camOffsets.Recoil.Rot
- --Cross spring updating
- if Aimed then
- crossSpring.t = V3(-2, 0, 0)
- else
- crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
- end
- local newS = crossSpring.p.X
- crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
- crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
- crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
- crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
- --Orientation updating
- local finalCamOffset = getTotalCamOffset()
- headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
- if (not Humanoid.Sit) then
- HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
- end
- --Walkspeed updating
- if Running then
- Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
- else
- local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
- if Stance == 0 then
- Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
- elseif Stance == 1 then
- Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
- elseif Stance == 2 then
- Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
- end
- end
- end))
- local crawlAng = 0
- while Selected do
- if isCrawling then
- breakReload = (Reloading and true or breakReload)
- if Aimed then unAimGun(true) end
- local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
- spawn(function()
- local startCamRot = crawlCamRot
- local startLLegCF = LLegWeld.C1
- local startRLegCF = RLegWeld.C1
- local t0 = tick()
- while true do
- RS.Heartbeat:wait()
- local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
- if (not isCrawling) then break end
- if (not Selected) then break end
- crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
- LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
- RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
- if Alpha == 90 then break end
- end
- end)
- tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
- tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
- tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
- lowerSpread()
- local t0 = tick()
- while true do
- local dt = RS.Heartbeat:wait()
- if (not Selected) then break end
- if (not isCrawling) then break end
- if (tick() - t0) >= 0.3 then
- local crawlAnim = Anims.Crawling(crawlAng, moveAng)
- LWeld.C1 = crawlAnim.leftArm
- RWeld.C1 = crawlAnim.rightArm
- LLegWeld.C1 = crawlAnim.leftLeg
- RLegWeld.C1 = crawlAnim.rightLeg
- Grip.C1 = crawlAnim.Grip
- crawlCamRot = crawlAnim.Camera
- crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
- end
- end
- else
- crawlAng = 0
- if (not equipAnimPlaying) then
- spawn(function()
- local startCamRot = crawlCamRot
- local startLLegCF = LLegWeld.C1
- local startRLegCF = RLegWeld.C1
- local t0 = tick()
- while true do
- RS.RenderStepped:wait()
- local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
- if isCrawling then break end
- if (not Selected) then break end
- crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
- LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
- RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
- if Alpha == 90 then break end
- end
- end)
- if (not isRunning) then
- tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
- tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
- end
- end
- while true do
- if (not Selected) then break end
- if isCrawling then break end
- RS.RenderStepped:wait()
- end
- end
- wait()
- end
- end
- function getAnimCF()
- return CF(aimHeadOffset, 0, 0) * CFANG(
- jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
- (-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
- (RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
- ) * CF(
- (Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
- jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
- -jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
- ), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
- end
- --------------------[ FIRING FUNCTIONS ]----------------------------------------------
- function lowerSpread()
- if (not loweringSpread) then
- loweringSpread = true
- local Connection = nil
- Connection = RS.Heartbeat:connect(function(dt)
- if MB1Down and Firing then
- Connection:disconnect()
- end
- local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
- currentSpread = (newSpread < 0 and 0 or newSpread)
- if currentSpread == 0 then
- Connection:disconnect()
- end
- end)
- loweringSpread = false
- end
- end
- local function autoFire()
- if (not canFire) then return end
- canFire = false
- if (not Knifing) then
- Firing = true
- while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
- if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
- if Humanoid.Health == 0 then break end
- if Ammo.Value > 0 then
- Ammo.Value = Ammo.Value - 1
- if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
- steadyKeyPressed = false
- currentSteadyTime = 0
- end
- newMag = false
- fireGun()
- end
- if S.reloadSettings.magIsBullet then
- for _, Mag in pairs(Gun:GetChildren()) do
- if Mag.Name:sub(1, 3) == "Mag" then
- Mag.Transparency = 1
- end
- end
- end
- if Ammo.Value == 0 and S.reloadSettings.autoReload then
- wait(0.2)
- Reload()
- end
- wait(60 / S.roundsPerMin)
- end
- end
- Firing = false
- canFire = true
- end
- local function semiFire()
- if (not canFire) then return end
- canFire = false
- if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
- Firing = true
- if Ammo.Value > 0 then
- Ammo.Value = Ammo.Value - 1
- if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
- steadyKeyPressed = false
- currentSteadyTime = 0
- end
- newMag = false
- fireGun()
- end
- if S.reloadSettings.magIsBullet then
- for _, Mag in pairs(Gun:GetChildren()) do
- if Mag.Name:sub(1, 3) == "Mag" then
- Mag.Transparency = 1
- end
- end
- end
- if Ammo.Value == 0 and S.reloadSettings.autoReload then
- wait(0.2)
- Reload()
- end
- wait(60 / S.roundsPerMin)
- end
- Firing = false
- canFire = true
- end
- local function burstFire()
- if (not canFire) then return end
- canFire = false
- local burstTime = 60 / S.roundsPerMin
- if (not Knifing) and (not isCrawling) then
- Firing = true
- for i = 1, S.burstSettings.Amount do
- if Ammo.Value > 0 then
- Ammo.Value = Ammo.Value - 1
- if Humanoid.Health ~= 0 then
- if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
- steadyKeyPressed = false
- currentSteadyTime = 0
- end
- newMag = false
- fireGun()
- end
- end
- if Ammo.Value == 0 and S.reloadSettings.autoReload then
- wait(0.2)
- Reload()
- break
- end
- wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
- end
- end
- if S.reloadSettings.magIsBullet then
- for _, Mag in pairs(Gun:GetChildren()) do
- if Mag.Name:sub(1, 3) == "Mag" then
- Mag.Transparency = 1
- end
- end
- end
- Firing = false
- wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
- canFire = true
- end
- function fireGun()
- local fireSound = Handle:FindFirstChild("FireSound")
- Gun.Bolt.Transparency = 1
- Gun.BoltBack.Transparency = 0
- if fireSound then fireSound:Play() end
- ----------------------------------------------------------------------------------
- for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
- local randSpread1 = RAD(RAND(0, 365))
- local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
- local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
- local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
- local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
- if S.bulletSettings.instantHit then
- local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
- local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
- local finalP = P
- if H then
- if S.gunType.Explosive then
- if S.explosionSettings.soundId ~= "" then
- local soundPart = Instance.new("Part")
- soundPart.Transparency = 1
- soundPart.Anchored = true
- soundPart.CanCollide = false
- soundPart.Size = V3(1, 1, 1)
- soundPart.CFrame = CFrame.new(P)
- soundPart.Parent = gunIgnore
- local Sound = Instance.new("Sound")
- Sound.Pitch = S.explosionSettings.Pitch
- Sound.SoundId = S.explosionSettings.soundId
- Sound.Volume = S.explosionSettings.Volume
- Sound.Parent = soundPart
- Sound:Play()
- DS:AddItem(soundPart, Sound.TimeLength)
- end
- createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
- createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
- local E = Instance.new("Explosion")
- E.BlastPressure = S.explosionSettings.Pressure
- E.BlastRadius = S.explosionSettings.Radius
- E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
- E.ExplosionType = S.explosionSettings.Type
- E.Position = P
- E.Hit:connect(function(Obj, Dist)
- if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
- if S.explosionSettings.rangeBasedDamage then
- local Dir = (Obj.Position - P).unit
- local expH, _ = workspace:FindPartOnRayWithIgnoreList(
- Ray.new(P - Dir * 0.1, Dir * 999),
- Ignore
- )
- local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
- if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
- local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
- if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
- local distFactor = Dist / S.explosionSettings.Radius
- local distInvert = math.max(1 - distFactor,0)
- local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
- local Tag = Instance.new("ObjectValue")
- Tag.Value = Player
- Tag.Name = "creator"
- Tag.Parent = hitHumanoid
- DS:AddItem(Tag, 0.3)
- hitHumanoid:TakeDamage(newDamage)
- markHit()
- end
- end
- else
- local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
- if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
- local Tag = Instance.new("ObjectValue")
- Tag.Value = Player
- Tag.Name = "creator"
- Tag.Parent = hitHumanoid
- DS:AddItem(Tag, 0.3)
- markHit()
- end
- end
- end
- end)
- E.Parent = game.Workspace
- else
- _, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
- end
- end
- if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
- createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
- end
- else
- local shell = Instance.new("Part")
- shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
- shell.Size = Vector3.new(1,1,1)
- shell.BrickColor = BrickColor.new(24)
- shell.Reflectance = .5
- shell.CanCollide = false
- shell.BottomSurface = 0
- shell.TopSurface = 0
- shell.Name = "Shell"
- shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
- shell.RotVelocity = Vector3.new(0,200,0)
- local shellmesh = Instance.new("CylinderMesh")
- shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
- shellmesh.Parent = shell
- shell.Parent = game.Workspace
- game:GetService("Debris"):addItem(shell,2)
- local shellmesh = Instance.new("SpecialMesh")
- shellmesh.Scale = Vector3.new(0.9,0.9,3)
- shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
- shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
- shellmesh.MeshType = "FileMesh"
- shellmesh.Parent = shell
- end
- end
- function MarkHit()
- spawn(function()
- if Gui_Clone:IsDescendantOf(game) then
- Gui_Clone.HitMarker.Visible = true
- local StartMark = tick()
- LastMark = StartMark
- wait(0.5)
- if LastMark <= StartMark then
- Gui_Clone.HitMarker.Visible = false
- end
- end
- end)
- end
- ----------------------------------------------------------------------------------
- currentSpread = currentSpread + S.spreadSettings.Increase
- for _, Plugin in pairs(Plugins.Firing) do
- spawn(function()
- Plugin()
- end)
- end
- local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
- local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
- local sideRecoilAlpha = 0
- if lastSideRecoil[1] < 0 and lastSideRecoil[2] < 0 then --This conditional basically makes sure the gun tilt isn't in the same direction for more than 2 shots
- sideRecoilAlpha = RAND(0, 1, 0.1)
- elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
- sideRecoilAlpha = RAND(-1, 0, 0.1)
- else
- sideRecoilAlpha = RAND(-1, 1, 0.1)
- end
- local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
- local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
- local recoilPos = V3(
- 0,---sideRecoil,
- 0,
- -backRecoil
- ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
- local recoilRot = V3(
- (Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
- RAD(sideRecoil * 10),
- RAD(tiltRecoil * 10)
- ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
- local camRecoilRot = V3(
- -RAD(sideRecoil * 10),
- RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
- 0
- ) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
- tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
- tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
- for _, v in pairs(Main:GetChildren()) do
- if v.Name:sub(1, 7) == "FlashFX" then
- Gun.Bolt.Transparency = 1
- Gun.BoltBack.Transparency = 0
- v.Enabled = true
- end
- end
- delay(1 / 20, function()
- tweenRecoil(V3(), V3(), Sine, 0.2)
- tweenCam("Recoil", V3(), Sine, 0.2)
- for _, v in pairs(Main:GetChildren()) do
- if v.Name:sub(1, 7) == "FlashFX" then
- Gun.Bolt.Transparency = 0
- Gun.BoltBack.Transparency = 1
- v.Enabled = false
- end
- end
- end)
- updateClipAmmo()
- firstShot = false
- shotCount = shotCount + 1
- lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
- end
- function markHit()
- spawn(function()
- if mainGUI:IsDescendantOf(game) then
- hitMarker.Visible = true
- local startMark = tick()
- hitMarker.lastMark.Value = startMark
- wait(0.5)
- if hitMarker.lastMark.Value <= startMark then
- hitMarker.Visible = false
- end
- end
- end)
- end
- --------------------[ ADS FUNCTIONS ]-------------------------------------------------
- function aimGun()
- if Reloading or Knifing or isCrawling or (not S.canADS) then return end
- mouseSensitivity = aimSensitivity
- for _, Plugin in pairs(Plugins.Aimed) do
- spawn(function()
- Plugin()
- end)
- end
- Aimed = true
- Aiming = true
- Running = false
- spreadZoom = "Aimed"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- if S.aimSettings.Anim then
- local currentFOV = Cam.FieldOfView
- local currentTrans = Scope.BackgroundTransparency
- tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
- tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
- tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
- tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
- tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
- tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
- local t0 = tick()
- while true do
- RS.RenderStepped:wait()
- local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
- if (not Aimed) then break end
- if (not Selected) then break end
- aimAlpha = Sine(Alpha)
- aimHeadOffset = headOffset.X * aimAlpha
- jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
- translationDivisor = numLerp(7, 20, aimAlpha)
- rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
- armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
- Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
- if S.guiScope then
- Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
- end
- if Alpha == 90 then break end
- end
- else
- LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
- RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
- LWeld2.C1, RWeld2.C1 = CF(), CF()
- animWeld.C0 = CF(0, 1, 0)
- Grip.C1 = aimedGripCF
- headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
- aimAlpha = 1
- aimHeadOffset = headOffset.X
- jumpAnimMultiplier = S.fallSettings.aimEffect
- translationDivisor = 20
- rotationMultiplier = S.momentumSettings.Amplitude.Aimed
- armTiltMultiplier = 0.2
- Cam.FieldOfView = S.aimSettings.FOV
- end
- Aiming = (not Aimed)
- if (not Aiming) and S.guiScope then
- spawn(function()
- scopeSteady.Visible = true
- Scope.BackgroundTransparency = 1
- scopeMain.Visible = true
- if armTable then
- for _, Obj in pairs(armTable[1].Model:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 1
- end
- end
- for _, Obj in pairs(armTable[2].Model:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 1
- end
- end
- elseif armModel then
- for _, Obj in pairs(armModel:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 1
- end
- end
- end
- for _, Obj in pairs(playerFolder:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 1
- end
- end
- for _, Obj in pairs(Gun:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 1
- end
- end
- end)
- spawn(function()
- local camAng = 0
- local idleCam = function()
- return V3(
- RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
- RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
- 0
- )
- end
- local walkCam = function()
- return V3(
- RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
- RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
- 0
- )
- end
- while Aimed do
- local dt = RS.RenderStepped:wait()
- camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
- camAng = camAng + RAD(105 * dt) * stanceSway * camSway
- end
- end)
- end
- end
- function unAimGun(Exception)
- if (not S.canADS) then return end
- mouseSensitivity = S.sensitivitySettings.Default
- for _, Plugin in pairs(Plugins.UnAimed) do
- spawn(function()
- Plugin()
- end)
- end
- if S.guiScope then
- spawn(function()
- if armTable then
- for _, Obj in pairs(armTable[1].Model:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- for _, Obj in pairs(armTable[2].Model:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- elseif armModel then
- for _, Obj in pairs(armModel:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- end
- for _, Obj in pairs(playerFolder:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- for _, Obj in pairs(Gun:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- end)
- end
- if (not Exception) then
- if (not Aimed) then return end
- if (Reloading and Exception) or Knifing then return end
- spreadZoom = "unAimed"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- Aimed = false
- Aiming = true
- if S.aimSettings.Anim then
- local currentFOV = Cam.FieldOfView
- local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
- scopeMain.Visible = false
- scopeSteady.Visible = false
- tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
- tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
- tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
- local t0 = tick()
- while true do
- RS.RenderStepped:wait()
- local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
- if Aimed then break end
- if (not Selected) then break end
- aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
- aimHeadOffset = headOffset.X * aimAlpha
- jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
- translationDivisor = numLerp(7, 20, aimAlpha)
- rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
- armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
- Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
- Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
- if Alpha == 90 then break end
- end
- else
- scopeMain.Visible = false
- scopeSteady.Visible = false
- LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
- RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
- headWeld2.C0 = CF()
- Grip.C1 = S.unAimedC1.Grip
- aimAlpha = 0
- aimHeadOffset = 0
- jumpAnimMultiplier = 1
- translationDivisor = 7
- rotationMultiplier = S.momentumSettings.Amplitude.unAimed
- armTiltMultiplier = 1
- Cam.FieldOfView = 80
- Scope.BackgroundTransparency = 1
- end
- Aiming = Aimed
- else
- spawn(function()
- Aimed = false
- Aiming = false
- spreadZoom = "unAimed"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- local currentFOV = Cam.FieldOfView
- local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
- scopeMain.Visible = false
- scopeSteady.Visible = false
- tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
- if S.aimSettings.Anim then
- local t0 = tick()
- while true do
- RS.RenderStepped:wait()
- local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
- if Aimed then break end
- if (not Selected) then break end
- aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
- aimHeadOffset = headOffset.X * aimAlpha
- jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
- translationDivisor = numLerp(7, 20, aimAlpha)
- rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
- armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
- Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
- Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
- if Alpha == 90 then break end
- end
- else
- scopeMain.Visible = false
- scopeSteady.Visible = false
- aimAlpha = 0
- aimHeadOffset = 0
- jumpAnimMultiplier = 1
- translationDivisor = 7
- rotationMultiplier = S.momentumSettings.Amplitude.unAimed
- armTiltMultiplier = 1
- Cam.FieldOfView = 80
- Scope.BackgroundTransparency = 1
- end
- end)
- end
- end
- --------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
- function createBullet(Direction)
- local Origin = Gun.Main.CFrame.p
- local bulletCF = CF(Origin, Origin + Direction)
- local Bullet = Instance.new("Part")
- Bullet.BrickColor = S.bulletSettings.Color
- Bullet.Material = Enum.Material.Neon
- Bullet.Name = "Bullet"
- Bullet.CanCollide = false
- Bullet.FormFactor = "Custom"
- Bullet.Size = S.bulletSettings.Size
- Bullet.BottomSurface = "Smooth"
- Bullet.TopSurface = "Smooth"
- if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
- local Mesh = Instance.new("BlockMesh")
- Mesh.Scale = S.bulletSettings.Size / Vector3.new(
- math.max(S.bulletSettings.Size.X, 0.2),
- math.max(S.bulletSettings.Size.Y, 0.2),
- math.max(S.bulletSettings.Size.Z, 0.2)
- )
- Mesh.Parent = Bullet
- end
- local BF = Instance.new("BodyForce")
- BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
- BF.Parent = Bullet
- Bullet.Parent = gunIgnore
- Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
- Bullet.Velocity = Direction * S.bulletSettings.Velocity
- return Bullet
- end
- --------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
- function getBaseDamage(Dist)
- local startDmg = S.damageSettings.Start.Damage
- local startDist = S.damageSettings.Start.Dist
- local endDmg = S.damageSettings.End.Damage
- local endDist = S.damageSettings.End.Dist
- return (
- (
- Dist < startDist * S.bulletSettings.Range
- ) and startDmg or
- (
- Dist >= startDist * S.bulletSettings.Range and
- Dist < endDist * S.bulletSettings.Range
- ) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
- (
- Dist >= endDist * S.bulletSettings.Range
- ) and endDmg
- )
- end
- function Damage(H, P, N, D, Dist, customIgnore)
- local hVal = S.damageSettings.Multipliers.Head
- local cVal = S.damageSettings.Multipliers.Chest
- local lVal = S.damageSettings.Multipliers.Limbs
- local baseDamage = getBaseDamage(Dist)
- if Humanoid.Health ~= 0 then
- local hitHumanoid = nil
- if H.Parent:IsA("Hat") then
- table.insert(customIgnore, H)
- local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
- local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
- if newH then
- hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
- end
- else
- hitHumanoid = findFirstClass(H.Parent, "Humanoid")
- if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
- local Tag = Instance.new("ObjectValue")
- Tag.Value = Player
- Tag.Name = "creator"
- Tag.Parent = hitHumanoid
- DS:AddItem(Tag, 0.3)
- local chosenDamage = 0
- if H.Name == "Head" then
- chosenDamage = baseDamage * RAND(hVal, hVal + 0.1, 0.01)
- elseif H.Name == "Torso" then
- chosenDamage = baseDamage * RAND(cVal, cVal + 0.1, 0.01)
- else
- chosenDamage = baseDamage * RAND(lVal, lVal + 0.1, 0.01)
- end
- hitHumanoid:TakeDamage(chosenDamage)
- markHit()
- end
- end
- return hitHumanoid
- end
- end
- function isWallIgnored(Wall)
- return (
- Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
- (S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
- isIgnored(Wall, S.penetrationSettings.ignoreCustom)
- )
- end
- function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
- local wallIgnore = isWallIgnored(Wall)
- local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
- local damagedHumanoid = nil
- if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
- lastDamagedHumanoid = hitHumanoid
- damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
- else
- lastDamagedHumanoid = nil
- end
- local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
- table.insert(Ignore, ignoreObject)
- local rayLength = S.bulletSettings.Range - totalBDist
- local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
- local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
- local newIgnore = removeElement(Ignore, ignoreObject)
- local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
- local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
- local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
- local newBDist = totalBDist + (P1 - hitPos).magnitude
- local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
- if (not wallIgnore) then
- createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
- if (not hitHumanoid) then
- createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
- end
- end
- if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
- createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
- end
- if outOfRange or (not H1) then
- if (not outOfRange) and (not wallIgnore) then
- createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
- if (not hitHumanoid) then
- createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
- end
- end
- return Wall, hitPos
- else
- if Wall == H2 and (not wallIgnore) then
- createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
- if (not hitHumanoid) then
- createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
- end
- end
- return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
- end
- end
- function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
- local HitDist = (HitPos - OriginPos).magnitude
- local Wall, WallHitPos = nil, nil
- local Hum, HumHitPos = nil, nil
- local CustomIgnore = {unpack(Ignore)}
- for i = 1, 10 do
- local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
- local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
- if H then
- local HitHumanoid = nil
- if H.Parent.ClassName == "Hat" then
- HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
- else
- HitHumanoid = findFirstClass(H.Parent, "Humanoid")
- end
- if HitHumanoid and i ~= 1 then
- Hum, HumHitPos = H, P
- break
- else
- Wall, WallHitPos = H, P
- table.insert(CustomIgnore, H)
- end
- else
- break
- end
- end
- if Wall then
- if S.InstantHit then
- if Hum then
- Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
- return HumHitPos
- else
- local HitObj2, HitPos2 = nil, nil
- if HitHumanoid then
- HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
- else
- HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
- end
- Damage(HitObj2, HitPos2)
- local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
- local NewHitPos2 = HitPos2
- if NewPDist < S.Penetration and HitObj2 then
- NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
- end
- return NewHitPos2
- end
- else
- local LastPos = WallHitPos
- local TotalDistTraveled = 0
- spawn(function()
- if Hum then
- Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
- return HumHitPos
- else
- while true do
- RS.RenderStepped:wait()
- if TotalDistTraveled >= S.BulletRange - HitDist then
- Bullet:Destroy()
- break
- end
- local DistTraveled = (Bullet.Position - LastPos).magnitude
- local NewDirection = (Bullet.Position - LastPos).unit
- local TempHitObj, TempHitPos = nil, nil
- if HitHumanoid then
- TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
- else
- TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
- end
- if TempHitObj then
- Damage(TempHitObj, TempHitPos)
- local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
- local NewTempPos = TempHitPos
- if NewPDist < S.Penetration and TempHitObj then
- NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
- else
- Bullet:Destroy()
- end
- return NewTempPos
- else
- LastPos = Bullet.Position
- TotalDistTraveled = TotalDistTraveled + DistTraveled
- end
- end
- end
- end)
- end
- else
- if Bullet then Bullet:Destroy() end
- return HitPos
- end
- end
- function isEnemy(Human)
- local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
- if (not Plyr) then return S.CanDamageNPCs end
- return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
- end
- --------------------[ RELOAD FUNCTIONS ]----------------------------------------------
- function animateReload()
- tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
- tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
- local magParts = {}
- local magTable = {}
- for _, Obj in pairs(Gun:GetChildren()) do
- if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
- INSERT(magParts, Obj)
- end
- end
- local animVars = {
- --FUNCTIONS--
- tweenJoint = tweenJoint;
- makeMagInvisible = function()
- for _, v in pairs(magParts) do
- v.Transparency = 1
- end
- magVisible = false
- end;
- makeMagVisible = function()
- for _, v in pairs(magParts) do
- v.Transparency = v:WaitForChild("magTrans").Value
- end
- magVisible = true
- end;
- isMagVisible = function()
- return magVisible
- end;
- isMagEmpty = function()
- return ammoInClip == 0
- end;
- setNewMag = function()
- newMag = true
- end;
- isNewMag = function()
- return newMag
- end;
- createMag = function(Key)
- local magModel = Instance.new("Model")
- local magClones = {}
- for i, v in pairs(magParts) do
- local vClone = v:Clone()
- vClone.Transparency = v:WaitForChild("magTrans").Value
- vClone.CanCollide = false
- vClone.Parent = magModel
- INSERT(magClones, {Original = v, magClone = vClone})
- if i ~= 1 then
- local W = Instance.new("Weld")
- W.Part0 = magClones[1].magClone
- W.Part1 = vClone
- W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
- W.Parent = magClones[1].magClone
- end
- end
- magTable[Key] = {magModel, magClones}
- return magModel, magClones
- end;
- getMag = function(Key)
- if magTable[Key] then
- return magTable[Key][1], magTable[Key][2]
- else
- return nil, nil
- end
- end;
- attachGripToHead = function()
- local handleCF = RArm.CFrame * Grip.C0
- Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
- Grip.Part0 = Head
- end;
- attachGripToArm = function()
- local handleCF = Head.CFrame * Grip.C0
- Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
- Grip.Part0 = RArm
- end;
- Sine = Sine;
- Linear = Linear;
- --VARIABLES--
- Handle = Handle;
- LArm = LArm;
- RArm = RArm;
- LWeld = LWeld;
- RWeld = RWeld;
- LC0 = armC0[1];
- RC0 = armC0[2];
- Grip = Grip;
- gunIgnore = gunIgnore;
- Cam = Cam;
- CF = CF;
- CFANG = CFANG;
- V3 = V3;
- RAD = RAD;
- reloadTimeLoaded = S.reloadSettings.Times.Loaded;
- reloadTimeEmpty = S.reloadSettings.Times.Empty
- }
- local sequenceTable = Anims.Reload(animVars)
- --local T = tick()
- for _, reloadFunction in pairs(sequenceTable) do
- if breakReload then
- break
- end
- reloadFunction()
- if (not magVisible) then
- Ammo.Value = 0
- end
- updateClipAmmo()
- end
- --print(tick() - T) --I divide the reloadTime by this number to get the animation speed
- if (not isCrawling) then
- if Running and (not S.canFireWhileRunning) then
- tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
- tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
- tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
- else
- tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
- tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
- end
- end
- for _, v in pairs(magTable) do --In case the reload animations was stopped mid way and there were still fake mags that weren't deleted
- v[1]:Destroy()
- end
- end
- function Reload()
- if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
- Firing = false
- ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
- Reloading = true
- lowerSpread()
- if Aimed then unAimGun(S.reloadSettings.Anim) end
- crossHair.Reload.Visible = true
- if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
- if S.reloadSettings.Anim then
- wait()
- animateReload()
- else
- local startReload = tick()
- local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
- while true do
- if breakReload then break end
- if (tick() - startReload) >= initialReloadTime then break end
- RS.RenderStepped:wait()
- end
- end
- if (not breakReload) then
- newMag = false
- if StoredAmmo.Value >= ClipSize.Value then
- if ammoInClip > 0 then
- StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
- Ammo.Value = ClipSize.Value + 1
- else
- StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
- Ammo.Value = ClipSize.Value
- end
- elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
- Ammo.Value = StoredAmmo.Value
- StoredAmmo.Value = 0
- end
- end
- Reloading = false
- if Selected then
- ammoInClip = (breakReload and ammoInClip or 0)
- crossHair.Reload.Visible = false
- end
- breakReload = false
- end
- updateClipAmmo()
- updateStoredAmmo()
- end
- --------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
- function removeElement(Table, Element) --removes the first instance of Element from Table
- for i, v in pairs(Table) do
- if v == Element then
- table.remove(Table, i)
- break
- end
- end
- return Table
- end
- function findFirstClass(Object, Class)
- local foundObject = nil
- for _, Obj in pairs(Object:GetChildren()) do
- if Obj.ClassName == Class then
- foundObject = Obj
- break
- end
- end
- return foundObject
- end
- function isIgnored(Obj, Table)
- for _,v in pairs(Table) do
- if Obj == v or Obj:IsDescendantOf(v) then
- return true
- end
- end
- return false
- end
- function GetHitSurfaceCFrame(HitPos,Obj)
- local SurfaceCF = {
- {"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
- {"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
- {"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
- {"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
- {"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
- {"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
- }
- local ClosestDist = HUGE
- local ClosestSurface = nil
- for _,v in pairs(SurfaceCF) do
- local SurfaceDist = (HitPos - v[2].p).magnitude
- if SurfaceDist < ClosestDist then
- ClosestDist = SurfaceDist
- ClosestSurface = v
- end
- end
- return ClosestSurface[2]
- end
- function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
- local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
- local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
- local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
- local LastPos = HitPos
- local FinalHitObj, FinalHitPos = nil, nil
- local RepTimes = math.floor(Dist / 999)
- if (not HitObj) and (Dist > 999) then
- for i = 0, RepTimes do
- local NewDist = (i == RepTimes and (Dist - (LastPos - Origin).magnitude) or 999)
- local Ray2 = Ray.new(LastPos, Direction * NewDist)
- local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
- if i ~= RepTimes then
- if HitObj2 then
- FinalHitObj, FinalHitPos = HitObj2, HitPos2
- break
- end
- elseif i == RepTimes then
- FinalHitObj, FinalHitPos = HitObj2, HitPos2
- end
- LastPos = HitPos2
- end
- return FinalHitObj, FinalHitPos
- elseif HitObj or (Dist <= 999) then
- return HitObj, HitPos
- end
- end
- --------------------[ JUMPING ANIMATION ]---------------------------------------------
- function onFall(initialVelocity)
- spawn(function()
- local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
- local startJumpPos = jumpAnim.Pos
- local startJumpRot = jumpAnim.Rot
- local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
- local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
- local t0 = tick()
- while true do
- RS.Heartbeat:wait()
- local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
- if onGround then break end
- jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
- jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
- if Alpha == 90 then break end
- end
- startJumpPos = endJumpPos
- startJumpRot = endJumpRot
- endJumpPos = -0.08 * S.fallSettings.fallMultiplier
- endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
- local X = 1
- while true do
- local dt = RS.Heartbeat:wait()
- X = X + (dt * 60) / X
- local Alpha = (X - 1) / 15
- if onGround then break end
- jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
- jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
- end
- end)
- end
- function onLand(fallDist)
- spawn(function()
- local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
- local startJumpPos = jumpAnim.Pos
- local startJumpRot = jumpAnim.Rot
- local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
- local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
- local t0 = tick()
- while true do
- RS.Heartbeat:wait()
- local Alpha = math.min((tick() - t0) / 0.2, 1)
- if (not onGround) then break end
- jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
- jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
- if Alpha == 1 then break end
- end
- t0 = tick()
- while true do
- RS.Heartbeat:wait()
- local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
- if (not onGround) then break end
- jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
- jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
- if Alpha == 90 then break end
- end
- end)
- end
- function onHumanoidStateChanged(oldState, newState)
- if newState == Enum.HumanoidStateType.Freefall then
- onGround = false
- if S.fallAnimation then
- onFall(HRP.Velocity.Y)
- while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
- startFallHeight = HRP.Position.Y
- end
- elseif oldState == Enum.HumanoidStateType.Freefall then
- onGround = true
- if S.fallAnimation then
- local fallDist = startFallHeight - HRP.Position.Y
- onLand(fallDist)
- end
- end
- end
- --------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
- function steadyCamera()
- scopeSteady.Text = "Steadying..."
- scopeSteady.TextColor3 = Color3.new(1, 1, 0)
- camSteady = true
- local originalSway = camSway
- local Increment = 1.5 / 0.6
- local X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if (not steadyKeyPressed) then break end
- camSway = numLerp(originalSway, 0, Sine(X))
- if X == 90 then break end
- end
- while steadyKeyPressed and Aimed do
- if currentSteadyTime > 0 then
- local NewSteadyTime = currentSteadyTime - 1
- currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
- camSway = 0
- elseif currentSteadyTime == 0 then
- break
- end
- RS.RenderStepped:wait()
- end
- camSteady = false
- spawn(function()
- local Increment = 1.5 / 0.25
- local X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if camSteady then break end
- camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
- if X == 90 then break end
- end
- Increment = 1.5 / S.scopeSettings.breathTime
- X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if camSteady then break end
- camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
- if X == 90 then break end
- end
- --[[for X = 0, 90, 1.5 / 0.2 do
- local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
- camSway = numLerp(0, 3, Alpha)
- RS.RenderStepped:wait()
- end]]
- --[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
- if camSteady then break end
- local Alpha = SIN(RAD(X))
- camSway = numLerp(3, 1, Alpha)
- RS.RenderStepped:wait()
- end]]
- end)
- retakeBreath()
- end
- function retakeBreath()
- scopeSteady.Text = "Re-taking Breath"
- scopeSteady.TextColor3 = Color3.new(1, 0, 0)
- takingBreath = true
- local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
- while takingBreath do
- if currentSteadyTime < maxSteadyTime then
- local newSteadyTime = currentSteadyTime + Increment
- currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
- elseif currentSteadyTime >= maxSteadyTime then
- break
- end
- RS.RenderStepped:wait()
- end
- if takingBreath then
- scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
- scopeSteady.TextColor3 = Color3.new(1, 1, 0)
- takingBreath = false
- end
- end
- --------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
- function canRun(midRun)
- return ((Forward and (not Backward)) and
- Walking and (Stamina > 0) and Running and
- Selected and (midRun and true or onGround) and
- runReady and (S.canFireWhileRunning and true or (not Firing))
- )
- end
- function monitorStamina()
- Running = true
- if (not canRun(false)) then
- Running = false
- return
- end
- if Aimed then unAimGun(true) end
- if Stance == 1 or Stance == 2 then Stand() end
- if (not (Reloading and S.reloadSettings.Anim)) then
- if S.canFireWhileRunning then
- tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
- tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
- else
- tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
- tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
- tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
- end
- end
- crossOffset = 50
- while runKeyPressed do
- if canRun(true) then
- if onGround then
- local newStamina = Stamina - 1
- Stamina = (newStamina < 0 and 0 or newStamina)
- end
- else
- break
- end
- RS.RenderStepped:wait()
- end
- Running = false
- if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
- crossOffset = 0
- tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
- tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
- end
- rechargeStamina()
- end
- function rechargeStamina()
- chargingStamina = true
- while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
- if Stamina < maxStamina then
- local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
- Stamina = (newStamina > maxStamina and maxStamina or newStamina)
- elseif Stamina >= maxStamina then
- break
- end
- RS.RenderStepped:wait()
- end
- chargingStamina = false
- end
- --------------------[ STANCE FUNCTIONS ]----------------------------------------------
- function Stand(onDeselected)
- local LHip = Torso["Left Hip"]
- local RHip = Torso["Right Hip"]
- LLegWeld.Part1 = nil
- LHip.Part1 = LLeg
- RLegWeld.Part1 = nil
- RHip.Part1 = RLeg
- Stance = 0
- spreadStance = "Stand"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- if S.stanceSettings.Anim and (not onDeselected) then
- spawn(function()
- local prevStanceSway = stanceSway
- local X = 0
- local Increment = 1.5 / S.stanceSettings.Speed
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if Stance ~= 0 then break end
- stanceSway = numLerp(prevStanceSway, 1, Sine(X))
- if X == 90 then break end
- end
- end)
- tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(LHip, CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0), Sine, S.stanceSettings.Speed)
- tweenJoint(RHip, CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
- tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
- elseif onDeselected or (not S.stanceSettings.Anim) then
- ABWeld.C0 = CF()
- LLegWeld.C0 = legC0.Stand[1]
- RLegWeld.C0 = legC0.Stand[2]
- LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
- RHip.C0, RHip.C1 = CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0)
- Root.C0 = CFANG(RAD(-90), 0, RAD(180))
- headWeld.C0 = CF(0, 1.5, 0)
- end
- end
- function Crouch()
- local LHip = Torso["Left Hip"]
- local RHip = Torso["Right Hip"]
- LHip.Part1 = nil
- LLegWeld.Part1 = LLeg
- RHip.Part1 = nil
- RLegWeld.Part1 = RLeg
- Stance = 1
- spreadStance = "Crouch"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- if S.stanceSettings.Anim then
- spawn(function()
- local prevStanceSway = stanceSway
- local X = 0
- local Increment = 1.5 / S.stanceSettings.Speed
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if Stance ~= 1 then break end
- stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
- if X == 90 then break end
- end
- end)
- tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(LHip, CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90)), Sine, S.stanceSettings.Speed)
- tweenJoint(RHip, CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
- tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
- else
- ABWeld.C0 = CF(0, 0, -1 / 16)
- LLegWeld.C0 = legC0.Crouch[1]
- RLegWeld.C0 = legC0.Crouch[2]
- LHip.C0, LHip.C1 = CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90))
- RHip.C0, RHip.C1 = CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0)
- Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
- headWeld.C0 = CF(0, 1.5, 0)
- end
- end
- function Prone()
- local LHip = Torso["Left Hip"]
- local RHip = Torso["Right Hip"]
- LHip.Part1 = nil
- LLegWeld.Part1 = LLeg
- RHip.Part1 = nil
- RLegWeld.Part1 = RLeg
- Stance = 2
- spreadStance = "Prone"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- if S.stanceSettings.Anim then
- spawn(function()
- local prevStanceSway = stanceSway
- local X = 0
- local Increment = 1.5 / S.stanceSettings.Speed
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if Stance ~= 2 then break end
- stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
- if X == 90 then break end
- end
- end)
- tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
- tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
- tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
- else
- ABWeld.C0 = CF(0, 0, -1 / 8)
- LLegWeld.C0 = legC0.Prone[1]
- RLegWeld.C0 = legC0.Prone[2]
- Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
- headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
- end
- end
- function Dive()
- onGround = false
- local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
- local BF = Instance.new("BodyForce")
- BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
- BF.Parent = HRP
- --[[spawn(function()
- HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
- wait(0.1)
- HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
- wait(0.4)
- HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
- end)]]
- delay(0.05, function()
- spawn(function()
- while true do
- local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
- local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
- if H then
- onGround = true
- break
- end
- wait()
- end
- end)
- Prone()
- wait(0.1)
- BF:Destroy()
- end)
- end
- --------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
- function onMB1Down()
- MB1Down = true
- firstShot = true
- if fireFunction then
- fireFunction()
- end
- end
- function onMB1Up()
- MB1Down = false
- lowerSpread()
- end
- function onMB2Down()
- if S.aimSettings.holdToADS then
- if (not AimingIn) and (not Aimed) then
- AimingIn = true
- aimGun()
- AimingIn = false
- end
- else
- if Aimed then
- unAimGun()
- else
- aimGun()
- end
- end
- end
- function onMB2Up()
- if S.aimSettings.holdToADS then
- if (not AimingOut) and Aimed then
- AimingOut = true
- unAimGun()
- AimingOut = false
- end
- end
- end
- function onScrollUp()
- local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
- aimSensitivity = (
- newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
- newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
- newAimSensitivity
- )
- mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
- Sens.Text = "S: "..aimSensitivity
- if mainGUI:IsDescendantOf(game) then
- Sens.Visible = true
- local t0 = tick()
- lastSensUpdate = t0
- wait(0.3)
- if lastSensUpdate <= t0 then
- Sens.Visible = false
- end
- end
- end
- function onScrollDown()
- local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
- aimSensitivity = (
- newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
- newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
- newAimSensitivity
- )
- mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
- Sens.Text = "S: "..aimSensitivity
- if mainGUI:IsDescendantOf(game) then
- Sens.Visible = true
- local t0 = tick()
- lastSensUpdate = t0
- wait(0.3)
- if lastSensUpdate <= t0 then
- Sens.Visible = false
- end
- end
- end
- --------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
- function keyDown(K)
- local Key = string.lower(K)
- if Key == S.Keys.lowerStance and S.canChangeStance then
- if (not Running) then
- if Stance == 0 then
- if S.stanceSettings.Stances.Crouch then
- Crouch()
- elseif S.stanceSettings.Stances.Prone then
- Prone()
- end
- elseif Stance == 1 then
- if S.stanceSettings.Stances.Prone then
- Prone()
- end
- end
- elseif S.dolphinDive then
- wait()
- if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
- local tempConnection = Humanoid.Changed:connect(function()
- Humanoid.Jump = false
- end)
- runReady = false
- Dive()
- Running = false
- wait(S.diveSettings.rechargeTime)
- tempConnection:disconnect()
- runReady = true
- end
- end
- end
- if Key == S.Keys.raiseStance and S.canChangeStance then
- if (not Running) then
- if Stance == 2 then
- if S.stanceSettings.Stances.Crouch then
- Crouch()
- else
- Stand()
- end
- elseif Stance == 1 then
- Stand()
- end
- end
- end
- if Key == S.Keys.ADS then
- if S.aimSettings.holdToADS then
- if (not AimingIn) and (not Aimed) then
- AimingIn = true
- aimGun()
- AimingIn = false
- end
- else
- if Aimed then
- unAimGun()
- else
- aimGun()
- end
- end
- end
- if Key == S.Keys.selectFire and S.selectFire then
- if canSelectFire then
- canSelectFire = false
- rawFireMode = rawFireMode + 1
- modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
- if modeGUI.Text == "AUTO" then
- fireFunction = autoFire
- elseif modeGUI.Text == "BURST" then
- fireFunction = burstFire
- elseif modeGUI.Text == "SEMI" then
- fireFunction = semiFire
- else
- fireFunction = nil
- end
- local speedAlpha = S.selectFireSettings.animSpeed / 0.6
- if S.selectFireSettings.GUI then
- spawn(function()
- fireSelect.Visible = true
- local prevRawFireMode = rawFireMode
- local Increment = 1.5 / (speedAlpha * 0.25)
- local X = 0
- wait(speedAlpha * 0.1)
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if prevRawFireMode ~= rawFireMode then break end
- updateModeLabels(rawFireMode - 1, rawFireMode, X)
- if X == 90 then break end
- end
- wait(speedAlpha * 0.25)
- fireSelect.Visible = false
- end)
- end
- if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
- spawn(function()
- local sequenceTable = {
- function()
- tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
- tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
- wait(speedAlpha * 0.2)
- end;
- function()
- tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
- wait(speedAlpha * 0.2)
- end;
- function()
- tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
- tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
- wait(speedAlpha * 0.2)
- end;
- }
- for _, F in pairs(sequenceTable) do
- if Aimed or isRunning or isCrawling or Reloading then
- break
- end
- F()
- end
- end)
- end
- if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
- wait(S.selectFireSettings.animSpeed)
- end
- canSelectFire = true
- end
- end
- if Key == S.Keys.Reload then
- if (not Reloading) and (not isCrawling) then
- Reload()
- end
- end
- if Key == S.Keys.Sprint then
- runKeyPressed = true
- if runReady then
- if (not Idling) and Walking and (not Running) and (not Knifing) and (not (Aimed and S.guiScope and S.Keys.Sprint == S.Keys.scopeSteady)) then
- monitorStamina()
- end
- end
- end
- if Key == S.Keys.scopeSteady then
- steadyKeyPressed = true
- if Aimed and (not Aiming) then
- takingBreath = false
- steadyCamera()
- end
- end
- for _, PTable in pairs(Plugins.KeyDown) do
- if Key == string.lower(PTable.Key) then
- spawn(function()
- PTable.Plugin()
- end)
- end
- end
- end
- function keyUp(K)
- local Key = string.lower(K)
- if Key == S.Keys.ADS then
- if S.aimSettings.holdToADS then
- if (not AimingOut) and Aimed then
- AimingOut = true
- unAimGun()
- AimingOut = false
- end
- end
- end
- if Key == S.Keys.Sprint then
- runKeyPressed = false
- Running = false
- if (not chargingStamina) then
- rechargeStamina()
- end
- end
- if Key == S.Keys.scopeSteady then
- steadyKeyPressed = false
- end
- for _, PTable in pairs(Plugins.KeyUp) do
- if Key == string.lower(PTable.Key) then
- spawn(function()
- PTable.Plugin()
- end)
- end
- end
- end
- --------------------[ END FUNCTIONS ]-------------------------------------------------
- --------------------------------------------------------------------------------------
- --------------------[ PRE-CONNECTIONS ]-----------------------------------------------
- --------------------------------------------------------------------------------------
- local function updateAnimVars()
- wait()
- Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
- Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
- local Right = UIS:IsKeyDown("D")
- local Left = UIS:IsKeyDown("A")
- local walkingForward = (Forward and (not Backward))
- local walkingBackward = ((not Forward) and Backward)
- local walkingRight = (Right and (not Left))
- local walkingLeft = ((not Right) and Left)
- if (Forward or Backward or Right or Left) then
- Walking, Idling = true, false
- if (not Running) and (not Aimed) then
- spreadMotion = "Moving"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- end
- elseif (not (Forward and Backward and Right and Left)) then
- Walking, Idling = false, true
- if (not Aimed) then
- spreadMotion = "Idling"
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- end
- end
- local newArmTilt = (
- ((walkingForward or walkingBackward) and walkingRight) and 2.5 or
- ((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
- ((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
- ((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
- )
- local newMoveAng = (
- (walkingForward and (not (walkingRight or walkingLeft))) and 0 or
- (walkingForward and walkingRight) and RAD(-45) or
- ((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
- (walkingBackward and walkingRight) and RAD(-135) or
- (walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
- (walkingBackward and walkingLeft) and RAD(135) or
- ((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
- (walkingForward and walkingLeft) and RAD(45) or 0
- )
- local newAnimCode = math.random(-1e9, 1e9)
- animCode = newAnimCode
- local startTilt = armTilt
- local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
- local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
- local X = 0
- while true do
- RS.RenderStepped:wait()
- local newX = X + Increment
- X = (newX > 90 and 90 or newX)
- if animCode ~= newAnimCode then break end
- armTilt = numLerp(startTilt, newArmTilt, Sine(X))
- moveAng = numLerp(startAng, newMoveAng, Sine(X))
- if X == 90 then break end
- end
- end
- M2.KeyDown:connect(updateAnimVars)
- M2.KeyUp:connect(updateAnimVars)
- updateAnimVars()
- --------------------------------------------------------------------------------------
- --------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
- --------------------------------------------------------------------------------------
- function onEquipped()
- wait()
- if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
- Selected = true
- breakReload = false
- equipAnimPlaying = true
- math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
- --------------------[ FAILSAFE RESETING ]-------------------------------------
- for _, GM in pairs(ignoreModel:GetChildren()) do
- if GM.Name == "gunIgnore_"..Player.Name then
- GM:Destroy()
- end
- end
- for _, c in pairs(Connections) do
- c:disconnect()
- end
- Connections = {}
- --------------------[ REMOTE GUN SETUP ]--------------------------------------
- --[[local Vars = {
- ignoreModel = ignoreModel;
- Humanoid = Humanoid;
- Shoulders = Shoulders;
- Torso = Torso;
- Head = Head;
- armC0 = armC0;
- leftArmC1 = S.equipSettings.leftArmC1;
- rightArmC1 = S.equipSettings.rightArmC1;
- LArm = LArm;
- RArm = RArm;
- gunParts = gunParts;
- Handle = Handle;
- }
- gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
- --------------------[ CREATING IGNORE MODELS ]--------------------------------
- gunIgnore = Instance.new("Model")
- gunIgnore.Name = "gunIgnore_"..Player.Name
- gunIgnore.Parent = ignoreModel
- --------------------[ MODIFYING THE PLAYER ]----------------------------------
- Player.CameraMode = Enum.CameraMode.LockFirstPerson
- Cam.CameraType = Enum.CameraType.Scriptable
- Cam.FieldOfView = 80
- UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
- UIS.MouseIconEnabled = false
- local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
- camAng = -VEC2(initialX, initialY)
- mainGUI.Parent = Player.PlayerGui
- setUpGUI()
- updateHealth()
- if S.selectFire then
- local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
- if currentMode == "AUTO" then
- fireFunction = autoFire
- elseif currentMode == "BURST" then
- fireFunction = burstFire
- elseif currentMode == "SEMI" then
- fireFunction = semiFire
- else
- fireFunction = nil
- end
- else
- if S.gunType.Semi then
- fireFunction = semiFire
- elseif S.gunType.Auto then
- fireFunction = autoFire
- elseif S.gunType.Burst then
- fireFunction = burstFire
- else
- fireFunction = nil
- end
- end
- changePlayerTrans(Char, 1)
- Humanoid.AutoRotate = false
- Shoulders.Right.Part1 = nil
- Shoulders.Left.Part1 = nil
- playerFolder = Instance.new("Model")
- playerFolder.Name = "playerFolder"
- playerFolder.Parent = gunIgnore
- local headBase = Instance.new("Part")
- headBase.Transparency = 1
- headBase.Name = "headBase"
- headBase.CanCollide = false
- headBase.FormFactor = Enum.FormFactor.Custom
- headBase.Size = V3(0.2, 0.2, 0.2)
- headBase.BottomSurface = Enum.SurfaceType.Smooth
- headBase.TopSurface = Enum.SurfaceType.Smooth
- headBase.Parent = playerFolder
- headWeld = Instance.new("Weld")
- headWeld.Part0 = Torso
- headWeld.Part1 = headBase
- headWeld.C0 = CF(0, 1.5, 0)
- headWeld.Parent = Torso
- headWeld2 = Instance.new("Weld")
- headWeld2.Part0 = headBase
- headWeld2.Part1 = Head
- headWeld2.Parent = headBase
- neckClone = Neck:Clone()
- --[[local stanceBase = Instance.new("Part")
- stanceBase.Transparency = 1
- stanceBase.Name = "stanceBase"
- stanceBase.CanCollide = false
- stanceBase.FormFactor = Enum.FormFactor.Custom
- stanceBase.Size = V3(0.2, 0.2, 0.2)
- stanceBase.BottomSurface = Enum.SurfaceType.Smooth
- stanceBase.TopSurface = Enum.SurfaceType.Smooth
- stanceBase.Parent = playerFolder
- stanceWeld = Instance.new("Weld")
- stanceWeld.Part0 = stanceBase
- stanceWeld.Part1 = Torso
- stanceWeld.Parent = stanceBase]]
- local animBase = Instance.new("Part")
- animBase.Transparency = 1
- animBase.Name = "animBase"
- animBase.CanCollide = false
- animBase.FormFactor = Enum.FormFactor.Custom
- animBase.Size = V3(0.2, 0.2, 0.2)
- animBase.BottomSurface = Enum.SurfaceType.Smooth
- animBase.TopSurface = Enum.SurfaceType.Smooth
- animBase.Parent = playerFolder
- animWeld = Instance.new("Weld")
- animWeld.Part0 = animBase
- animWeld.Part1 = headBase
- animWeld.Parent = animBase
- local ArmBase = Instance.new("Part")
- ArmBase.Transparency = 1
- ArmBase.Name = "ArmBase"
- ArmBase.CanCollide = false
- ArmBase.FormFactor = Enum.FormFactor.Custom
- ArmBase.Size = V3(0.2, 0.2, 0.2)
- ArmBase.BottomSurface = Enum.SurfaceType.Smooth
- ArmBase.TopSurface = Enum.SurfaceType.Smooth
- ArmBase.Parent = playerFolder
- ABWeld = Instance.new("Weld")
- ABWeld.Part0 = ArmBase
- ABWeld.Part1 = animBase
- ABWeld.Parent = ArmBase
- local LArmBase = Instance.new("Part")
- LArmBase.Transparency = 1
- LArmBase.Name = "LArmBase"
- LArmBase.CanCollide = false
- LArmBase.FormFactor = Enum.FormFactor.Custom
- LArmBase.Size = V3(0.2, 0.2, 0.2)
- LArmBase.BottomSurface = Enum.SurfaceType.Smooth
- LArmBase.TopSurface = Enum.SurfaceType.Smooth
- LArmBase.Parent = playerFolder
- local RArmBase = Instance.new("Part")
- RArmBase.Transparency = 1
- RArmBase.Name = "RArmBase"
- RArmBase.CanCollide = false
- RArmBase.FormFactor = Enum.FormFactor.Custom
- RArmBase.Size = V3(0.2, 0.2, 0.2)
- RArmBase.BottomSurface = Enum.SurfaceType.Smooth
- RArmBase.TopSurface = Enum.SurfaceType.Smooth
- RArmBase.Parent = playerFolder
- LWeld = Instance.new("Weld")
- LWeld.Name = "LWeld"
- LWeld.Part0 = ArmBase
- LWeld.Part1 = LArmBase
- LWeld.C0 = armC0[1]
- LWeld.C1 = S.equipSettings.leftArmC1
- LWeld.Parent = ArmBase
- RWeld = Instance.new("Weld")
- RWeld.Name = "RWeld"
- RWeld.Part0 = ArmBase
- RWeld.Part1 = RArmBase
- RWeld.C0 = armC0[2]
- RWeld.C1 = S.equipSettings.rightArmC1
- RWeld.Parent = ArmBase
- LWeld2 = Instance.new("Weld")
- LWeld2.Name = "LWeld"
- LWeld2.Part0 = LArmBase
- LWeld2.Part1 = LArm
- LWeld2.Parent = LArmBase
- RWeld2 = Instance.new("Weld")
- RWeld2.Name = "RWeld"
- RWeld2.Part0 = RArmBase
- RWeld2.Part1 = RArm
- RWeld2.Parent = RArmBase
- LLegWeld = Instance.new("Weld")
- LLegWeld.Name = "LLegWeld"
- LLegWeld.Part0 = Torso
- LLegWeld.Part1 = nil
- LLegWeld.C0 = CF(-0.5, -2, 0)
- LLegWeld.Parent = Torso
- RLegWeld = Instance.new("Weld")
- RLegWeld.Name = "RLegWeld"
- RLegWeld.Part0 = Torso
- RLegWeld.Part1 = nil
- RLegWeld.C0 = CF(0.5, -2, 0)
- RLegWeld.Parent = Torso
- if S.playerArms then
- armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
- fakeLArm = LArm:Clone()
- fakeLArm.Parent = armModel
- fakeLArm.Transparency = S.fakeArmSettings.Transparency
- fakeLArm.CanCollide = false
- fakeLArm.Size = S.fakeArmSettings.armSize
- fakeLArm:BreakJoints()
- --LArm.Transparency = 1
- local fakeLWeld = Instance.new("Weld")
- fakeLWeld.Part0 = fakeLArm
- fakeLWeld.Part1 = LArm
- fakeLWeld.Parent = fakeLArm
- fakeRArm = RArm:Clone()
- fakeRArm.Parent = armModel
- fakeRArm.Transparency = S.fakeArmSettings.Transparency
- fakeRArm.CanCollide = false
- fakeRArm.Size = S.fakeArmSettings.armSize
- fakeRArm:BreakJoints()
- --RArm.Transparency = 1
- local fakeRWeld = Instance.new("Weld")
- fakeRWeld.Part0 = fakeRArm
- fakeRWeld.Part1 = RArm
- fakeRWeld.Parent = fakeRArm
- Instance.new("Humanoid", armModel)
- if S.fakeArmSettings.characterMeshes then
- for _,Obj in pairs(Char:GetChildren()) do
- if Obj:IsA("CharacterMesh") then
- Obj:Clone().Parent = armModel
- end
- end
- end
- for _,Obj in pairs(Char:GetChildren()) do
- if Obj:IsA("Shirt") then
- Obj:Clone().Parent = armModel
- end
- end
- else
- armTable = createArms()
- if workspace.FilteringEnabled then
- armTable[1].Model.Parent = playerFolder
- armTable[2].Model.Parent = playerFolder
- else
- armTable[1].Model.Parent = Cam--playerFolder
- armTable[2].Model.Parent = Cam--playerFolder
- end
- fakeLArm = armTable[1].armPart
- --LArm.Transparency = 1
- local fakeLWeld = Instance.new("Weld")
- fakeLWeld.Part0 = fakeLArm
- fakeLWeld.Part1 = LArm
- fakeLWeld.Parent = fakeLArm
- fakeRArm = armTable[2].armPart
- --RArm.Transparency = 1
- local fakeRWeld = Instance.new("Weld")
- fakeRWeld.Part0 = fakeRArm
- fakeRWeld.Part1 = RArm
- fakeRWeld.Parent = fakeRArm
- end
- --------------------[ MODIFYING THE GUN ]-------------------------------------
- for _, Tab in pairs(gunParts) do
- local Weld = Instance.new("Weld")
- Weld.Name = "MainWeld"
- Weld.Part0 = Handle
- Weld.Part1 = Tab.Obj
- Weld.C0 = Tab.Obj.weldCF.Value
- Weld.Parent = Handle
- Tab.Weld = Weld
- end
- Grip = RArm:WaitForChild("RightGrip")
- local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
- local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
- aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
- Grip.C1 = S.equipSettings.GripC1
- --------------------[ RUNNING PLUGINS ]---------------------------------------
- for _, Plugin in pairs(Plugins.OnEquipped) do
- spawn(function()
- Plugin()
- end)
- end
- --------------------[ GETTING PLAYER MASS ]-----------------------------------
- local connectedParts = HRP:GetConnectedParts(true)
- for _, v in pairs(connectedParts) do
- if v:IsA("BasePart") then
- playerMass = playerMass + v:GetMass()
- end
- end
- --------------------[ CONNECTIONS ]-------------------------------------------
- INSERT(Connections, Humanoid.Died:connect(function()
- onUnequipped(true)
- end))
- INSERT(Connections, Humanoid.Jumping:connect(function()
- if Stance ~= 0 then
- Stand()
- end
- end))
- INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
- INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
- INSERT(Connections, M2.Button1Down:connect(onMB1Down))
- INSERT(Connections, M2.Button1Up:connect(onMB1Up))
- INSERT(Connections, M2.Button2Down:connect(onMB2Down))
- INSERT(Connections, M2.Button2Up:connect(onMB2Up))
- INSERT(Connections, M2.KeyDown:connect(keyDown))
- INSERT(Connections, M2.KeyUp:connect(keyUp))
- if S.sensitivitySettings.scrollToChange then
- INSERT(Connections, M2.WheelForward:connect(onScrollUp))
- INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
- end
- if S.AutoKnife then
- INSERT(Connections, RS.Stepped:connect(function()
- local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
- if H then
- local HitHuman = findFirstClass(H.Parent, "Humanoid")
- if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
- Knife()
- end
- end
- end))
- end
- INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
- if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
- local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
- camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
- desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
- desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
- end
- end))
- INSERT(Connections, M2.Idle:connect(function(inputObj)
- desiredXOffset = 0
- desiredYOffset = 0
- end))
- INSERT(Connections, RS.Stepped:connect(function()
- if tick() - lastBeat > (Humanoid.Health / 75) then
- lastBeat = tick()
- HUD.Health.Tray.Beat:TweenPosition(
- UDim2.new(0, -21, 0, 0),
- Enum.EasingDirection.Out,
- Enum.EasingStyle.Linear,
- 0.7 - ((100 - Humanoid.Health) / 400),
- false,
- function()
- HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
- end
- )
- end
- end))
- INSERT(Connections, RS.RenderStepped:connect(function()
- --Main animation
- local animC0, animC1 = getAnimCF()
- animWeld.C0 = animC0
- animWeld.C1 = animC1
- --Camera updating
- renderCamera()
- end))
- --------------------[ ANIMATE GUN ]-------------------------------------------
- tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
- tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
- tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
- spawn(function()
- local T = tick()
- while true do
- if tick() - T > S.equipSettings.Time then break end
- if (not Selected) then break end
- wait()
- end
- equipAnimPlaying = false
- end)
- Animate()
- end
- end
- function onUnequipped(deleteTool)
- if Selected then
- Selected = false
- breakReload = true
- --------------------[ RUNNING PLUGINS ]---------------------------------------
- for _, Plugin in pairs(Plugins.OnUnEquipped) do
- spawn(function()
- Plugin()
- end)
- end
- --------------------[ MODIFYING THE PLAYER ]----------------------------------
- Cam.FieldOfView = 70
- Cam.CameraType = Enum.CameraType.Custom
- UIS.MouseBehavior = Enum.MouseBehavior.Default
- UIS.MouseIconEnabled = true
- Player.CameraMode = Enum.CameraMode.Classic
- if armTable then
- armTable[1].Model:Destroy()
- armTable[2].Model:Destroy()
- elseif armModel then
- armModel:Destroy()
- end
- LLegWeld:Destroy()
- RLegWeld:Destroy()
- changePlayerTrans(Char, 0)
- mainGUI.Parent = script
- Shoulders.Right.Part1 = RArm
- Shoulders.Left.Part1 = LArm
- neckClone.Parent = Torso
- headWeld:Destroy()
- Humanoid.WalkSpeed = 16
- Humanoid.AutoRotate = true
- --------------------[ RESETING THE TOOL ]-------------------------------------
- gunIgnore:Destroy()
- mouseSensitivity = S.sensitivitySettings.Default
- MB1Down = false
- playerMass = 0
- Aimed = false
- camOffsets = {
- guiScope = {
- Rot = V3();
- };
- Reload = {
- Rot = V3();
- Code = nil;
- };
- Recoil = {
- Rot = V3();
- Code = nil;
- };
- }
- recoilAnim = {
- Pos = V3();
- Rot = V3();
- Code = nil;
- }
- --Setting the aim variables to unaimed
- spreadZoom = "unAimed"
- scopeMain.Visible = false
- scopeSteady.Visible = false
- aimAlpha = 0
- aimHeadOffset = 0
- jumpAnimMultiplier = 1
- translationDivisor = 7
- rotationMultiplier = S.momentumSettings.Amplitude.unAimed
- armTiltMultiplier = 1
- Scope.BackgroundTransparency = 1
- if S.guiScope then
- spawn(function()
- for _, Obj in pairs(Gun:GetChildren()) do
- if Obj:IsA("BasePart") then
- Obj.LocalTransparencyModifier = 0
- end
- end
- end)
- end
- onGround = true
- for _, Tab in pairs(gunParts) do
- Tab.Weld:Destroy()
- Tab.Weld = nil
- end
- for _,c in pairs(Connections) do
- c:disconnect()
- end
- Connections = {}
- if deleteTool then
- Cam:ClearAllChildren()
- Gun:Destroy()
- end
- wait() --This is here in case you dolphin dived and deselected the tool instantly
- if S.stanceSettings.standOnDeselect and Stance ~= 0 then
- crawlCamRot = 0
- isCrawling = false
- stanceSway = 1
- spreadStance = "Stand"
- Stand(true)
- end
- baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
- end
- end
- Gun.Equipped:connect(onEquipped)
- Gun.Unequipped:connect(function() onUnequipped(false) end)
- --------------------------------------------------------------------------------------
- --------------------[ END PROGRAM ]---------------------------------------------------
- --------------------------------------------------------------------------------------
- end))
- IntValue209.Name = "ignoreCode"
- IntValue209.Parent = LocalScript208
- Folder210.Name = "Server_Scripts"
- Folder210.Parent = LocalScript208
- ScreenGui211.Name = "mainGUI"
- ScreenGui211.Parent = LocalScript208
- ImageLabel212.Name = "hitMarker"
- ImageLabel212.Parent = ScreenGui211
- ImageLabel212.Transparency = 1
- ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
- ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
- ImageLabel212.Visible = false
- ImageLabel212.BackgroundTransparency = 1
- ImageLabel212.ZIndex = 10
- ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
- NumberValue213.Name = "lastMark"
- NumberValue213.Parent = ImageLabel212
- Frame214.Name = "crossHair"
- Frame214.Parent = ScreenGui211
- Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
- Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame214.BorderColor3 = Color3.new(0, 0, 0)
- Frame214.BorderSizePixel = 0
- ImageLabel215.Parent = Frame214
- ImageLabel215.Transparency = 1
- ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
- ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
- ImageLabel215.Visible = false
- ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel215.BackgroundTransparency = 1
- ImageLabel215.ZIndex = 2
- ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
- TextLabel216.Name = "Reload"
- TextLabel216.Parent = Frame214
- TextLabel216.Transparency = 1
- TextLabel216.Size = UDim2.new(0, 100, 0, 20)
- TextLabel216.Text = "RELOADING..."
- TextLabel216.Position = UDim2.new(0, -50, 0, 70)
- TextLabel216.Visible = false
- TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel216.BackgroundTransparency = 1
- TextLabel216.ZIndex = 2
- TextLabel216.Font = Enum.Font.SourceSansBold
- TextLabel216.FontSize = Enum.FontSize.Size18
- TextLabel216.TextColor3 = Color3.new(1, 1, 1)
- TextLabel216.TextStrokeTransparency = 0.5
- Frame217.Name = "C"
- Frame217.Parent = Frame214
- Frame217.Transparency = 1
- Frame217.Size = UDim2.new(0, 4, 0, 500)
- Frame217.Position = UDim2.new(0, -2, 0, 0)
- Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame217.BackgroundTransparency = 1
- Frame217.ClipsDescendants = true
- TextLabel218.Name = "Line"
- TextLabel218.Parent = Frame217
- TextLabel218.Size = UDim2.new(0, 2, 0, 15)
- TextLabel218.Text = ""
- TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
- TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel218.Font = Enum.Font.SourceSans
- TextLabel218.FontSize = Enum.FontSize.Size14
- Frame219.Name = "A"
- Frame219.Parent = Frame214
- Frame219.Transparency = 1
- Frame219.Size = UDim2.new(0, 4, 0, 500)
- Frame219.Position = UDim2.new(0, -2, 0, -500)
- Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame219.BackgroundTransparency = 1
- Frame219.ClipsDescendants = true
- TextLabel220.Name = "Line"
- TextLabel220.Parent = Frame219
- TextLabel220.Size = UDim2.new(0, 2, 0, 15)
- TextLabel220.Text = ""
- TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
- TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel220.Font = Enum.Font.SourceSans
- TextLabel220.FontSize = Enum.FontSize.Size14
- Frame221.Name = "B"
- Frame221.Parent = Frame214
- Frame221.Transparency = 1
- Frame221.Size = UDim2.new(0, 500, 0, 4)
- Frame221.Position = UDim2.new(0, 0, 0, -2)
- Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame221.BackgroundTransparency = 1
- Frame221.ClipsDescendants = true
- TextLabel222.Name = "Line"
- TextLabel222.Parent = Frame221
- TextLabel222.Size = UDim2.new(0, 15, 0, 2)
- TextLabel222.Text = ""
- TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
- TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel222.Font = Enum.Font.SourceSans
- TextLabel222.FontSize = Enum.FontSize.Size14
- Frame223.Name = "D"
- Frame223.Parent = Frame214
- Frame223.Transparency = 1
- Frame223.Size = UDim2.new(0, 500, 0, 4)
- Frame223.Position = UDim2.new(0, -500, 0, -2)
- Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame223.BackgroundTransparency = 1
- Frame223.ClipsDescendants = true
- TextLabel224.Name = "Line"
- TextLabel224.Parent = Frame223
- TextLabel224.Size = UDim2.new(0, 15, 0, 2)
- TextLabel224.Text = ""
- TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
- TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
- TextLabel224.Font = Enum.Font.SourceSans
- TextLabel224.FontSize = Enum.FontSize.Size14
- Frame225.Name = "HUD"
- Frame225.Parent = ScreenGui211
- Frame225.Transparency = 0.30000001192093
- Frame225.Size = UDim2.new(0, 175, 0, 90)
- Frame225.Position = UDim2.new(1, -200, 1, -165)
- Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame225.BackgroundTransparency = 0.30000001192093
- Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame225.BorderSizePixel = 5
- Frame225.ZIndex = 10
- Frame226.Name = "Ammo"
- Frame226.Parent = Frame225
- Frame226.Transparency = 1
- Frame226.Size = UDim2.new(0, 175, 0, 40)
- Frame226.Position = UDim2.new(0, 0, 0, 45)
- Frame226.BackgroundTransparency = 1
- Frame226.ZIndex = 10
- TextLabel227.Name = "Slash"
- TextLabel227.Parent = Frame226
- TextLabel227.Transparency = 1
- TextLabel227.Size = UDim2.new(0, 10, 0, 25)
- TextLabel227.Text = "/"
- TextLabel227.Position = UDim2.new(0, 90, 0, 0)
- TextLabel227.BackgroundTransparency = 1
- TextLabel227.ZIndex = 10
- TextLabel227.Font = Enum.Font.ArialBold
- TextLabel227.FontSize = Enum.FontSize.Size24
- TextLabel227.TextColor3 = Color3.new(1, 1, 1)
- TextLabel228.Name = "Stored"
- TextLabel228.Parent = Frame226
- TextLabel228.Transparency = 1
- TextLabel228.Size = UDim2.new(0, 70, 0, 25)
- TextLabel228.Text = "100"
- TextLabel228.Position = UDim2.new(0, 105, 0, 0)
- TextLabel228.BackgroundTransparency = 1
- TextLabel228.ZIndex = 10
- TextLabel228.Font = Enum.Font.ArialBold
- TextLabel228.FontSize = Enum.FontSize.Size24
- TextLabel228.TextColor3 = Color3.new(1, 1, 1)
- TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel229.Name = "Background"
- TextLabel229.Parent = TextLabel228
- TextLabel229.Transparency = 1
- TextLabel229.Size = UDim2.new(1, 0, 1, 0)
- TextLabel229.Text = "000"
- TextLabel229.BackgroundTransparency = 1
- TextLabel229.ZIndex = 10
- TextLabel229.Font = Enum.Font.ArialBold
- TextLabel229.FontSize = Enum.FontSize.Size24
- TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
- TextLabel229.TextTransparency = 0.80000001192093
- TextLabel229.TextWrapped = true
- TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel230.Name = "Clip"
- TextLabel230.Parent = Frame226
- TextLabel230.Transparency = 1
- TextLabel230.Size = UDim2.new(0, 85, 1, 0)
- TextLabel230.Text = "9"
- TextLabel230.BackgroundTransparency = 1
- TextLabel230.ZIndex = 10
- TextLabel230.Font = Enum.Font.ArialBold
- TextLabel230.FontSize = Enum.FontSize.Size48
- TextLabel230.TextColor3 = Color3.new(1, 1, 1)
- TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel231.Name = "Background"
- TextLabel231.Parent = TextLabel230
- TextLabel231.Transparency = 1
- TextLabel231.Size = UDim2.new(1, 0, 1, 0)
- TextLabel231.Text = "000"
- TextLabel231.BackgroundTransparency = 1
- TextLabel231.ZIndex = 10
- TextLabel231.Font = Enum.Font.ArialBold
- TextLabel231.FontSize = Enum.FontSize.Size48
- TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
- TextLabel231.TextTransparency = 0.80000001192093
- TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
- Frame232.Name = "Mode"
- Frame232.Parent = Frame225
- Frame232.Transparency = 1
- Frame232.Size = UDim2.new(0, 85, 0, 20)
- Frame232.Position = UDim2.new(0, 90, 0, 65)
- Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame232.BackgroundTransparency = 1
- Frame232.ZIndex = 10
- TextLabel233.Name = "Bracket"
- TextLabel233.Parent = Frame232
- TextLabel233.Transparency = 1
- TextLabel233.Size = UDim2.new(0, 5, 0, 20)
- TextLabel233.Text = "["
- TextLabel233.BackgroundTransparency = 1
- TextLabel233.ZIndex = 10
- TextLabel233.Font = Enum.Font.ArialBold
- TextLabel233.FontSize = Enum.FontSize.Size18
- TextLabel233.TextColor3 = Color3.new(1, 1, 1)
- TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel234.Name = "Bracket"
- TextLabel234.Parent = Frame232
- TextLabel234.Transparency = 1
- TextLabel234.Size = UDim2.new(0, 5, 0, 20)
- TextLabel234.Text = "]"
- TextLabel234.Position = UDim2.new(1, -5, 0, 0)
- TextLabel234.BackgroundTransparency = 1
- TextLabel234.ZIndex = 10
- TextLabel234.Font = Enum.Font.ArialBold
- TextLabel234.FontSize = Enum.FontSize.Size18
- TextLabel234.TextColor3 = Color3.new(1, 1, 1)
- TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
- TextLabel235.Name = "Main"
- TextLabel235.Parent = Frame232
- TextLabel235.Transparency = 1
- TextLabel235.Size = UDim2.new(1, 0, 0, 20)
- TextLabel235.Text = "Auto"
- TextLabel235.BackgroundTransparency = 1
- TextLabel235.ZIndex = 10
- TextLabel235.Font = Enum.Font.SourceSansBold
- TextLabel235.FontSize = Enum.FontSize.Size18
- TextLabel235.TextColor3 = Color3.new(1, 1, 1)
- TextLabel235.TextWrapped = true
- Frame236.Name = "Health"
- Frame236.Parent = Frame225
- Frame236.Transparency = 0.30000001192093
- Frame236.Size = UDim2.new(1, 0, 0, 25)
- Frame236.Position = UDim2.new(0, 0, 0, -40)
- Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame236.BackgroundTransparency = 0.30000001192093
- Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame236.BorderSizePixel = 5
- Frame236.ZIndex = 10
- TextLabel237.Name = "Num"
- TextLabel237.Parent = Frame236
- TextLabel237.Transparency = 1
- TextLabel237.Size = UDim2.new(0, 50, 1, 0)
- TextLabel237.Text = "100%"
- TextLabel237.Position = UDim2.new(1, -50, 0, 0)
- TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
- TextLabel237.BackgroundTransparency = 1
- TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
- TextLabel237.BorderSizePixel = 0
- TextLabel237.ZIndex = 10
- TextLabel237.Font = Enum.Font.ArialBold
- TextLabel237.FontSize = Enum.FontSize.Size24
- TextLabel237.TextColor3 = Color3.new(1, 1, 1)
- TextLabel237.TextStrokeTransparency = 0
- TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
- Frame238.Name = "Tray"
- Frame238.Parent = Frame236
- Frame238.Transparency = 1
- Frame238.Size = UDim2.new(1, -60, 0, 20)
- Frame238.Position = UDim2.new(0, 2, 0.5, -10)
- Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame238.BackgroundTransparency = 1
- Frame238.BorderColor3 = Color3.new(0, 0, 0)
- Frame238.BorderSizePixel = 0
- Frame238.ZIndex = 10
- Frame238.ClipsDescendants = true
- Frame239.Name = "Beat"
- Frame239.Parent = Frame238
- Frame239.Transparency = 1
- Frame239.Size = UDim2.new(0, 21, 1, 0)
- Frame239.Position = UDim2.new(1, 0, 0, 0)
- Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame239.BackgroundTransparency = 1
- Frame239.BorderColor3 = Color3.new(0, 0, 0)
- Frame239.BorderSizePixel = 0
- Frame239.ZIndex = 10
- Frame240.Name = "00"
- Frame240.Parent = Frame239
- Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
- Frame240.Position = UDim2.new(0, 0, 0.5, -2)
- Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame240.BorderColor3 = Color3.new(0, 0, 0)
- Frame240.BorderSizePixel = 0
- Frame240.ZIndex = 10
- Frame241.Name = "01"
- Frame241.Parent = Frame239
- Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
- Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame241.BorderColor3 = Color3.new(0, 0, 0)
- Frame241.BorderSizePixel = 0
- Frame241.ZIndex = 10
- Frame242.Name = "02"
- Frame242.Parent = Frame239
- Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
- Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame242.BorderColor3 = Color3.new(0, 0, 0)
- Frame242.BorderSizePixel = 0
- Frame242.ZIndex = 10
- Frame243.Name = "03"
- Frame243.Parent = Frame239
- Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
- Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame243.BorderColor3 = Color3.new(0, 0, 0)
- Frame243.BorderSizePixel = 0
- Frame243.ZIndex = 10
- Frame244.Name = "04"
- Frame244.Parent = Frame239
- Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
- Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame244.BorderColor3 = Color3.new(0, 0, 0)
- Frame244.BorderSizePixel = 0
- Frame244.ZIndex = 10
- Frame245.Name = "05"
- Frame245.Parent = Frame239
- Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
- Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame245.BorderColor3 = Color3.new(0, 0, 0)
- Frame245.BorderSizePixel = 0
- Frame245.ZIndex = 10
- Frame246.Name = "06"
- Frame246.Parent = Frame239
- Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
- Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame246.BorderColor3 = Color3.new(0, 0, 0)
- Frame246.BorderSizePixel = 0
- Frame246.ZIndex = 10
- Frame247.Name = "07"
- Frame247.Parent = Frame239
- Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
- Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame247.BorderColor3 = Color3.new(0, 0, 0)
- Frame247.BorderSizePixel = 0
- Frame247.ZIndex = 10
- Frame248.Name = "08"
- Frame248.Parent = Frame239
- Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
- Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame248.BorderColor3 = Color3.new(0, 0, 0)
- Frame248.BorderSizePixel = 0
- Frame248.ZIndex = 10
- Frame249.Name = "09"
- Frame249.Parent = Frame239
- Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
- Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame249.BorderColor3 = Color3.new(0, 0, 0)
- Frame249.BorderSizePixel = 0
- Frame249.ZIndex = 10
- Frame250.Name = "10"
- Frame250.Parent = Frame239
- Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
- Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame250.BorderColor3 = Color3.new(0, 0, 0)
- Frame250.BorderSizePixel = 0
- Frame250.ZIndex = 10
- Frame251.Name = "11"
- Frame251.Parent = Frame239
- Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
- Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame251.BorderColor3 = Color3.new(0, 0, 0)
- Frame251.BorderSizePixel = 0
- Frame251.ZIndex = 10
- Frame252.Name = "12"
- Frame252.Parent = Frame239
- Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
- Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame252.BorderColor3 = Color3.new(0, 0, 0)
- Frame252.BorderSizePixel = 0
- Frame252.ZIndex = 10
- Frame253.Name = "13"
- Frame253.Parent = Frame239
- Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
- Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame253.BorderColor3 = Color3.new(0, 0, 0)
- Frame253.BorderSizePixel = 0
- Frame253.ZIndex = 10
- Frame254.Name = "14"
- Frame254.Parent = Frame239
- Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
- Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame254.BorderColor3 = Color3.new(0, 0, 0)
- Frame254.BorderSizePixel = 0
- Frame254.ZIndex = 10
- Frame255.Name = "15"
- Frame255.Parent = Frame239
- Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
- Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame255.BorderColor3 = Color3.new(0, 0, 0)
- Frame255.BorderSizePixel = 0
- Frame255.ZIndex = 10
- Frame256.Name = "16"
- Frame256.Parent = Frame239
- Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
- Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame256.BorderColor3 = Color3.new(0, 0, 0)
- Frame256.BorderSizePixel = 0
- Frame256.ZIndex = 10
- Frame257.Name = "17"
- Frame257.Parent = Frame239
- Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
- Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame257.BorderColor3 = Color3.new(0, 0, 0)
- Frame257.BorderSizePixel = 0
- Frame257.ZIndex = 10
- Frame258.Name = "18"
- Frame258.Parent = Frame239
- Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
- Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame258.BorderColor3 = Color3.new(0, 0, 0)
- Frame258.BorderSizePixel = 0
- Frame258.ZIndex = 10
- Frame259.Name = "19"
- Frame259.Parent = Frame239
- Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
- Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame259.BorderColor3 = Color3.new(0, 0, 0)
- Frame259.BorderSizePixel = 0
- Frame259.ZIndex = 10
- Frame260.Name = "20"
- Frame260.Parent = Frame239
- Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
- Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
- Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame260.BorderColor3 = Color3.new(0, 0, 0)
- Frame260.BorderSizePixel = 0
- Frame260.ZIndex = 10
- Frame261.Name = "Line"
- Frame261.Parent = Frame239
- Frame261.Size = UDim2.new(0, 200, 0, 3)
- Frame261.Position = UDim2.new(1, 0, 0.5, -2)
- Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame261.BorderColor3 = Color3.new(0, 0, 0)
- Frame261.BorderSizePixel = 0
- Frame261.ZIndex = 10
- Frame262.Name = "Line"
- Frame262.Parent = Frame239
- Frame262.Size = UDim2.new(0, 200, 0, 3)
- Frame262.Position = UDim2.new(0, -200, 0.5, -2)
- Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame262.BorderColor3 = Color3.new(0, 0, 0)
- Frame262.BorderSizePixel = 0
- Frame262.ZIndex = 10
- Frame263.Name = "Controls"
- Frame263.Parent = Frame225
- Frame263.Transparency = 0.30000001192093
- Frame263.Size = UDim2.new(1, 0, 0, 120)
- Frame263.Position = UDim2.new(0, 0, 0, -200)
- Frame263.Visible = false
- Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame263.BackgroundTransparency = 0.30000001192093
- Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
- Frame263.BorderSizePixel = 5
- Frame263.ZIndex = 10
- TextLabel264.Name = "Title"
- TextLabel264.Parent = Frame263
- TextLabel264.Transparency = 1
- TextLabel264.Size = UDim2.new(1, 0, 0, 15)
- TextLabel264.Text = "CONTROLS"
- TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel264.BackgroundTransparency = 1
- TextLabel264.ZIndex = 10
- TextLabel264.Font = Enum.Font.SourceSansBold
- TextLabel264.FontSize = Enum.FontSize.Size14
- TextLabel264.TextColor3 = Color3.new(1, 1, 1)
- TextLabel265.Name = "Line"
- TextLabel265.Parent = TextLabel264
- TextLabel265.Size = UDim2.new(1, 0, 0, 2)
- TextLabel265.Text = ""
- TextLabel265.Position = UDim2.new(0, 0, 1, 1)
- TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
- TextLabel265.BorderSizePixel = 0
- TextLabel265.ZIndex = 10
- TextLabel265.Font = Enum.Font.SourceSans
- TextLabel265.FontSize = Enum.FontSize.Size14
- Frame266.Name = "Grenades"
- Frame266.Parent = Frame225
- Frame266.Transparency = 1
- Frame266.Size = UDim2.new(0, 175, 0, 25)
- Frame266.Position = UDim2.new(0, 0, 0, 90)
- Frame266.Visible = false
- Frame266.BackgroundTransparency = 1
- Frame266.ZIndex = 10
- Frame267.Name = "Lethals"
- Frame267.Parent = Frame266
- Frame267.Transparency = 0.80000001192093
- Frame267.Size = UDim2.new(0.5, -2, 1, 0)
- Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame267.BackgroundTransparency = 0.80000001192093
- Frame267.BorderSizePixel = 0
- Frame267.ZIndex = 10
- ImageLabel268.Name = "Icon"
- ImageLabel268.Parent = Frame267
- ImageLabel268.Transparency = 1
- ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
- ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
- ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel268.BackgroundTransparency = 1
- ImageLabel268.ZIndex = 10
- TextLabel269.Name = "Mult"
- TextLabel269.Parent = Frame267
- TextLabel269.Transparency = 1
- TextLabel269.Size = UDim2.new(0, 20, 1, 0)
- TextLabel269.Text = "X"
- TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
- TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel269.BackgroundTransparency = 1
- TextLabel269.BorderSizePixel = 0
- TextLabel269.ZIndex = 10
- TextLabel269.Font = Enum.Font.ArialBold
- TextLabel269.FontSize = Enum.FontSize.Size18
- TextLabel269.TextColor3 = Color3.new(1, 1, 1)
- TextLabel270.Name = "Num"
- TextLabel270.Parent = Frame267
- TextLabel270.Transparency = 1
- TextLabel270.Size = UDim2.new(0, 0, 1, 0)
- TextLabel270.Text = "0"
- TextLabel270.Position = UDim2.new(1, -7, 0, 0)
- TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel270.BackgroundTransparency = 1
- TextLabel270.ZIndex = 10
- TextLabel270.Font = Enum.Font.ArialBold
- TextLabel270.FontSize = Enum.FontSize.Size18
- TextLabel270.TextColor3 = Color3.new(1, 1, 1)
- TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
- Frame271.Name = "Tacticals"
- Frame271.Parent = Frame266
- Frame271.Transparency = 0.80000001192093
- Frame271.Size = UDim2.new(0.5, -2, 1, 0)
- Frame271.Position = UDim2.new(0.5, 2, 0, 0)
- Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame271.BackgroundTransparency = 0.80000001192093
- Frame271.BorderSizePixel = 0
- Frame271.ZIndex = 10
- ImageLabel272.Name = "Icon"
- ImageLabel272.Parent = Frame271
- ImageLabel272.Transparency = 1
- ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
- ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
- ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel272.BackgroundTransparency = 1
- ImageLabel272.ZIndex = 10
- TextLabel273.Name = "Num"
- TextLabel273.Parent = Frame271
- TextLabel273.Transparency = 1
- TextLabel273.Size = UDim2.new(0, 0, 1, 0)
- TextLabel273.Text = "0"
- TextLabel273.Position = UDim2.new(1, -7, 0, 0)
- TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel273.BackgroundTransparency = 1
- TextLabel273.ZIndex = 10
- TextLabel273.Font = Enum.Font.ArialBold
- TextLabel273.FontSize = Enum.FontSize.Size18
- TextLabel273.TextColor3 = Color3.new(1, 1, 1)
- TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
- TextLabel274.Name = "Mult"
- TextLabel274.Parent = Frame271
- TextLabel274.Transparency = 1
- TextLabel274.Size = UDim2.new(0, 20, 1, 0)
- TextLabel274.Text = "X"
- TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
- TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel274.BackgroundTransparency = 1
- TextLabel274.BorderSizePixel = 0
- TextLabel274.ZIndex = 10
- TextLabel274.Font = Enum.Font.ArialBold
- TextLabel274.FontSize = Enum.FontSize.Size18
- TextLabel274.TextColor3 = Color3.new(1, 1, 1)
- Frame275.Name = "gunName"
- Frame275.Parent = Frame225
- Frame275.Transparency = 1
- Frame275.Size = UDim2.new(1, 0, 0, 36)
- Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
- Frame275.BackgroundTransparency = 1
- Frame275.ZIndex = 10
- TextLabel276.Name = "Line"
- TextLabel276.Parent = Frame275
- TextLabel276.Size = UDim2.new(0, 2, 1, 0)
- TextLabel276.Text = ""
- TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel276.BorderSizePixel = 0
- TextLabel276.ZIndex = 10
- TextLabel276.Font = Enum.Font.SourceSans
- TextLabel276.FontSize = Enum.FontSize.Size14
- TextLabel277.Name = "Line"
- TextLabel277.Parent = Frame275
- TextLabel277.Size = UDim2.new(1, 0, 0, 2)
- TextLabel277.Text = ""
- TextLabel277.Position = UDim2.new(0, 0, 1, 0)
- TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel277.BorderSizePixel = 0
- TextLabel277.ZIndex = 10
- TextLabel277.Font = Enum.Font.SourceSans
- TextLabel277.FontSize = Enum.FontSize.Size14
- TextLabel278.Name = "Title"
- TextLabel278.Parent = Frame275
- TextLabel278.Transparency = 1
- TextLabel278.Size = UDim2.new(1, -7, 1, 0)
- TextLabel278.Text = "Gun"
- TextLabel278.Position = UDim2.new(0, 7, 0, 0)
- TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel278.BackgroundTransparency = 1
- TextLabel278.ZIndex = 10
- TextLabel278.Font = Enum.Font.SourceSansBold
- TextLabel278.FontSize = Enum.FontSize.Size36
- TextLabel278.TextColor3 = Color3.new(1, 1, 1)
- TextLabel278.TextStrokeTransparency = 0
- TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
- Frame279.Name = "fireSelect"
- Frame279.Parent = ScreenGui211
- Frame279.Transparency = 1
- Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
- Frame279.Visible = false
- Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame279.BackgroundTransparency = 1
- Frame280.Name = "Modes"
- Frame280.Parent = Frame279
- Frame280.Transparency = 1
- Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame280.BackgroundTransparency = 1
- ImageLabel281.Name = "Circle"
- ImageLabel281.Parent = Frame279
- ImageLabel281.Transparency = 1
- ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
- ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
- ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel281.BackgroundTransparency = 1
- ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
- ImageLabel281.ImageTransparency = 0.5
- ImageLabel282.Name = "Arrow"
- ImageLabel282.Parent = Frame279
- ImageLabel282.Transparency = 1
- ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
- ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
- ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
- ImageLabel282.BackgroundTransparency = 1
- ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
- Frame283.Name = "Scope"
- Frame283.Parent = ScreenGui211
- Frame283.Transparency = 1
- Frame283.Size = UDim2.new(1, 0, 1, 36)
- Frame283.Position = UDim2.new(0, 0, 0, -36)
- Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame283.BackgroundTransparency = 1
- TextLabel284.Name = "Steady"
- TextLabel284.Parent = Frame283
- TextLabel284.Transparency = 1
- TextLabel284.Size = UDim2.new(0, 120, 0, 20)
- TextLabel284.Text = ""
- TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
- TextLabel284.Visible = false
- TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel284.BackgroundTransparency = 1
- TextLabel284.ZIndex = 9
- TextLabel284.Font = Enum.Font.ArialBold
- TextLabel284.FontSize = Enum.FontSize.Size14
- TextLabel284.TextColor3 = Color3.new(1, 1, 0)
- TextLabel284.TextStrokeTransparency = 0
- Frame285.Name = "Main"
- Frame285.Parent = Frame283
- Frame285.Transparency = 1
- Frame285.Size = UDim2.new(1, 0, 1, 0)
- Frame285.Visible = false
- Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
- Frame285.BackgroundTransparency = 1
- ImageLabel286.Name = "ScopeImg2"
- ImageLabel286.Parent = Frame285
- ImageLabel286.Transparency = 1
- ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
- ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
- ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
- ImageLabel286.BackgroundTransparency = 1
- ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
- ImageLabel287.Name = "ScopeImg1"
- ImageLabel287.Parent = Frame285
- ImageLabel287.Transparency = 1
- ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
- ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
- ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
- ImageLabel287.BackgroundTransparency = 1
- ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
- Frame288.Name = "F2"
- Frame288.Parent = Frame285
- Frame288.Size = UDim2.new(0, 0, 1, 20)
- Frame288.Position = UDim2.new(0, -10, 0, -10)
- Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame288.BorderColor3 = Color3.new(0, 0, 0)
- Frame288.BorderSizePixel = 0
- Frame289.Name = "F1"
- Frame289.Parent = Frame285
- Frame289.Size = UDim2.new(0, 0, 1, 20)
- Frame289.Position = UDim2.new(0, -10, 0, -10)
- Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
- Frame289.BorderColor3 = Color3.new(0, 0, 0)
- Frame289.BorderSizePixel = 0
- LocalScript290.Name = "Update"
- LocalScript290.Parent = Frame285
- table.insert(cors,sandbox(LocalScript290,function()
- local GUI = script.Parent
- function updateScopeDimension()
- GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
- GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
- GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
- GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
- GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
- GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
- GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
- end
- wait()
- GUI.Changed:connect(updateScopeDimension)
- updateScopeDimension()
- end))
- TextLabel291.Name = "Sens"
- TextLabel291.Parent = ScreenGui211
- TextLabel291.Transparency = 1
- TextLabel291.Size = UDim2.new(0, 100, 0, 20)
- TextLabel291.Text = "S: 0.3"
- TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
- TextLabel291.Visible = false
- TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
- TextLabel291.BackgroundTransparency = 1
- TextLabel291.ZIndex = 10
- TextLabel291.Font = Enum.Font.SourceSansBold
- TextLabel291.FontSize = Enum.FontSize.Size28
- TextLabel291.TextColor3 = Color3.new(1, 1, 1)
- TextLabel291.TextStrokeTransparency = 0
- Part292.Name = "ham"
- Part292.Parent = Tool0
- Part292.BrickColor = BrickColor.new("Mid gray")
- Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
- Part292.FormFactor = Enum.FormFactor.Plate
- Part292.Size = Vector3.new(1, 0.800000012, 1)
- Part292.CFrame = CFrame.new(1435.26599, 48.9021072, -1310.87195, -5.96046448e-08, 7.27595761e-11, 0.99999994, 0.000796274282, 0.999999642, -1.45519152e-11, -0.999999702, 0.000796274282, -1.1920929e-07)
- Part292.BottomSurface = Enum.SurfaceType.Smooth
- Part292.TopSurface = Enum.SurfaceType.Smooth
- Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
- Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
- Part292.Orientation = Vector3.new(0, 90, 0.049999997)
- Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
- SpecialMesh293.Parent = Part292
- SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
- SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
- SpecialMesh293.MeshType = Enum.MeshType.FileMesh
- Weld294.Parent = Part292
- Weld294.C0 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
- Weld294.C1 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
- Weld295.Parent = Part292
- Weld295.C0 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
- Weld295.C1 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
- Weld296.Parent = Part292
- Weld296.C0 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
- Weld296.C1 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
- Weld297.Parent = Part292
- Weld297.C0 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
- Weld297.C1 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
- Weld298.Parent = Part292
- Weld298.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld298.C1 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld299.Parent = Part292
- Weld299.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld299.C1 = CFrame.new(0.533214211, 4.09488493e-05, -0.399536163, -6.19143847e-10, 0.000817726948, -0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, 1, -8.15380652e-10, -6.19810758e-10)
- Weld300.Parent = Part292
- Weld300.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld300.C1 = CFrame.new(-1.12273511e-07, 2.60849974e-05, -0.533189535, 1, -8.33252689e-10, -3.96865235e-10, 8.3357371e-10, 0.999999702, 0.000809622463, 3.96190469e-10, -0.000809622463, 0.999999702)
- Weld301.Parent = Part292
- Weld301.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld301.C1 = CFrame.new(0.533214211, 0.373362005, -4.18045545e-08, -6.20301976e-10, 0.000817726948, -0.999999702, 8.56068161e-10, 0.999999702, 0.000817726948, 1, -8.55560567e-10, -6.21001806e-10)
- Weld302.Parent = Part292
- Weld302.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld302.C1 = CFrame.new(-5.43287024e-06, 0.132771105, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801041257, -6.20273943e-10, 0.000801041257, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
- Weld303.Parent = Part292
- Weld303.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld303.C1 = CFrame.new(-2.92850495e-06, -0.400390595, -0.132823572, 8.56068161e-10, 0.999999702, 0.000817726948, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817726948, 0.999999702)
- Weld304.Parent = Part292
- Weld304.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld304.C1 = CFrame.new(1.20404536e-07, 1.7940567e-05, 0.132805407, -1, 8.50133963e-10, 4.23458879e-10, 8.50476911e-10, 0.999999702, 0.000810576021, -4.22769625e-10, 0.000810576021, -0.999999702)
- Weld305.Parent = Part292
- Weld305.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld305.C1 = CFrame.new(5.96581813e-05, -0.400390744, 0.9335953, 8.14806722e-10, 0.999999702, 0.000811847276, 1, -8.1443452e-10, -4.58876631e-10, -4.58215271e-10, 0.000811847276, -0.999999702)
- Weld306.Parent = Part292
- Weld306.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld306.C1 = CFrame.new(2.33017072e-05, -0.933604836, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817726948, 6.19722884e-10, -0.000817726948, 0.999999702, 1, -8.35470693e-10, -6.20406282e-10)
- Weld307.Parent = Part292
- Weld307.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld307.C1 = CFrame.new(-1.52226988e-07, -0.373301029, -0.533214867, 1, -9.17886822e-10, -2.52556698e-10, 9.18089604e-10, 0.999999702, 0.000804378418, 2.51818288e-10, -0.000804378418, 0.999999702)
- Weld308.Parent = Part292
- Weld308.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld308.C1 = CFrame.new(-0.533214211, 4.09488493e-05, -0.400390595, 6.19143847e-10, -0.000817726948, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, -1, 8.15380652e-10, 6.19810758e-10)
- Weld309.Parent = Part292
- Weld309.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
- Weld309.C1 = CFrame.new(3.85732619e-08, 1.708794e-06, -0.933600962, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801041722, 3.36916911e-10, -0.000808192533, 0.999999702)
- Weld310.Parent = Part292
- Weld310.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld310.C1 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld311.Parent = Part292
- Weld311.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld311.C1 = CFrame.new(0.533207953, 4.02465412e-05, -0.399536252, -4.0660561e-10, 0.997999609, 0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, 1, 4.2794876e-10, -3.24059835e-10)
- Weld312.Parent = Part292
- Weld312.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld312.C1 = CFrame.new(-3.86806875e-07, 4.67300815e-05, -0.533184648, 1, 6.89605151e-10, -1.25792432e-09, 1.29899103e-09, -0.0631973371, 0.998001039, 6.08729123e-10, -0.998001099, -0.0631973371)
- Weld313.Parent = Part292
- Weld313.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld313.C1 = CFrame.new(0.533224404, 0.373393357, -3.90072529e-07, -8.32836911e-10, 0.998000622, 0.0632058904, 1.32148736e-09, -0.0632058978, 0.998000503, 1, 9.1469754e-10, -1.26620492e-09)
- Weld314.Parent = Part292
- Weld314.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld314.C1 = CFrame.new(-1.24499784e-05, 0.132795051, 0.400390744, 3.829842e-10, -0.0632034019, 0.998000741, -4.07727963e-10, 0.998000681, 0.0632034019, -1, -4.31118696e-10, 3.56448732e-10)
- Weld315.Parent = Part292
- Weld315.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld315.C1 = CFrame.new(9.7206248e-06, -0.400390506, -0.132816374, 3.90647487e-10, -0.0632200539, 0.997999668, -1, -4.31644803e-10, 3.64087233e-10, 4.07763739e-10, -0.997999609, -0.0632200539)
- Weld316.Parent = Part292
- Weld316.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld316.C1 = CFrame.new(1.12741731e-07, 1.47659775e-05, 0.132799253, -1, -2.34147424e-10, 3.70999564e-10, 3.85058263e-10, -0.0632105544, 0.998000205, -2.10228071e-10, 0.998000264, 0.0632105544)
- Weld317.Parent = Part292
- Weld317.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld317.C1 = CFrame.new(3.39694889e-05, -0.400390744, 0.933587611, 3.49388324e-10, -0.0632092953, 0.998000324, 1, 2.67267597e-10, -3.33160693e-10, -2.45674314e-10, 0.998000324, 0.0632092878)
- Weld318.Parent = Part292
- Weld318.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld318.C1 = CFrame.new(9.72479302e-06, -0.933596671, 0.400390506, 3.70557002e-10, -0.0632200539, 0.997999668, 4.07184675e-10, -0.997999609, -0.0632200539, 1, 4.29796781e-10, -3.44073547e-10)
- Weld319.Parent = Part292
- Weld319.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld319.C1 = CFrame.new(-9.38037488e-08, -0.37332812, -0.533202708, 1, 6.78072321e-11, -4.49284138e-10, 4.52671733e-10, -0.0632067397, 0.998000443, 3.92738446e-11, -0.998000562, -0.0632067248)
- Weld320.Parent = Part292
- Weld320.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld320.C1 = CFrame.new(-0.533207953, 4.02465412e-05, -0.400390506, 4.0660561e-10, -0.997999609, -0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, -1, -4.2794876e-10, 3.24059835e-10)
- Weld321.Parent = Part292
- Weld321.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
- Weld321.C1 = CFrame.new(-7.07679817e-08, 2.65414451e-06, -0.933581531, 1, 1.09589553e-10, 2.37319969e-10, 2.3550692e-10, -0.0632223934, 0.997999489, 3.36916911e-10, -0.997999012, -0.0632295236)
- Weld322.Parent = Part292
- Weld322.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld322.C1 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld323.Parent = Part292
- Weld323.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld323.C1 = CFrame.new(0.533212543, 4.33809255e-05, -0.399536133, -4.77452022e-10, 0.000812952989, -0.999999702, 5.0560689e-10, 0.999999702, 0.000812952989, 1, -5.05218589e-10, -4.77862916e-10)
- Weld324.Parent = Part292
- Weld324.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld324.C1 = CFrame.new(-2.3357552e-07, 5.55160077e-05, -0.533165157, 1, -1.76372972e-09, -8.22718005e-10, 1.76440684e-09, 0.999999702, 0.000823921058, 8.21264445e-10, -0.000823920942, 0.999999762)
- Weld325.Parent = Part292
- Weld325.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld325.C1 = CFrame.new(0.533225417, 0.37339133, -1.62893741e-07, -1.04536846e-09, 0.000832025486, -0.999999642, 1.78690496e-09, 0.999999702, 0.000832025427, 1, -1.78603476e-09, -1.04685483e-09)
- Weld326.Parent = Part292
- Weld326.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld326.C1 = CFrame.new(-4.40306758e-06, 0.132771388, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801038579, -6.20273943e-10, 0.000801038579, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
- Weld327.Parent = Part292
- Weld327.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld327.C1 = CFrame.new(1.28626851e-07, -0.400390595, -0.13282387, 8.56068161e-10, 0.999999702, 0.000817724678, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817724678, 0.999999702)
- Weld328.Parent = Part292
- Weld328.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld328.C1 = CFrame.new(1.20785018e-07, 3.03727884e-05, 0.132775158, -1, 8.50133963e-10, 4.23458851e-10, 8.50476911e-10, 0.999999702, 0.000810569618, -4.22769625e-10, 0.000810569618, -0.999999702)
- Weld329.Parent = Part292
- Weld329.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld329.C1 = CFrame.new(6.63429382e-05, -0.400390744, 0.933595598, 8.14806722e-10, 0.999999702, 0.000811841746, 1, -8.14434464e-10, -4.58876631e-10, -4.58215271e-10, 0.000811841746, -0.999999702)
- Weld330.Parent = Part292
- Weld330.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld330.C1 = CFrame.new(2.15904674e-05, -0.933605134, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817724678, 6.19722884e-10, -0.000817724678, 0.999999702, 1, -8.35470693e-10, -6.20406337e-10)
- Weld331.Parent = Part292
- Weld331.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld331.C1 = CFrame.new(-1.52702455e-07, -0.373297483, -0.533215165, 1, -9.17886822e-10, -2.52556753e-10, 9.18089604e-10, 0.999999702, 0.000804377254, 2.51818288e-10, -0.000804377254, 0.999999702)
- Weld332.Parent = Part292
- Weld332.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld332.C1 = CFrame.new(-0.533214509, 4.16217954e-05, -0.400390595, 6.19143847e-10, -0.000817724678, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817724678, -1, 8.15380652e-10, 6.19810814e-10)
- Weld333.Parent = Part292
- Weld333.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
- Weld333.C1 = CFrame.new(3.86851866e-08, 1.33582325e-05, -0.93360126, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801045971, 3.36916911e-10, -0.000808193639, 0.999999702)
- Weld334.Parent = Part292
- Weld334.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld334.C1 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld335.Parent = Part292
- Weld335.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld335.C1 = CFrame.new(0.533207655, 4.00506069e-05, -0.399536133, -2.64911593e-10, 0.997566879, -0.069715552, 4.01852024e-11, 0.0697179288, 0.9975667, 1, 1.98314268e-10, 2.08188033e-11)
- Weld336.Parent = Part292
- Weld336.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld336.C1 = CFrame.new(-4.09776021e-07, 5.64174661e-05, -0.533183694, 1, 5.16648224e-10, -1.33828371e-09, 1.29899103e-09, 0.0697453171, 0.997564912, 6.08729123e-10, -0.997564912, 0.0697453246)
- Weld337.Parent = Part292
- Weld337.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld337.C1 = CFrame.new(0.53322345, 0.373397857, -4.03579065e-07, -8.32836911e-10, 0.997565448, -0.0697367489, 1.32148736e-09, 0.0697367489, 0.997565448, 1, 7.38653139e-10, -1.37634937e-09)
- Weld338.Parent = Part292
- Weld338.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld338.C1 = CFrame.new(-9.81253652e-06, 0.132794693, 0.400390744, 3.829842e-10, 0.0697392747, 0.997565329, -4.07727963e-10, 0.997565329, -0.0697392747, -1, -3.80026233e-10, 4.10486423e-10)
- Weld339.Parent = Part292
- Weld339.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld339.C1 = CFrame.new(2.00291402e-06, -0.400390506, -0.132815465, 3.90647487e-10, 0.0697226226, 0.997566521, -1, -3.79534459e-10, 4.18127227e-10, 4.07763739e-10, -0.997566402, 0.0697226301)
- Weld340.Parent = Part292
- Weld340.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld340.C1 = CFrame.new(1.20755828e-07, 4.99412226e-06, 0.132797584, -1, -1.82865389e-10, 3.9878062e-10, 3.85058263e-10, 0.0697321221, 0.997565806, -2.10228071e-10, 0.997565746, -0.0697321221)
- Weld341.Parent = Part292
- Weld341.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld341.C1 = CFrame.new(4.74962835e-05, -0.400390744, 0.933588088, 3.49388324e-10, 0.0697333813, 0.997565746, 1, 2.20712254e-10, -3.65669495e-10, -2.45674314e-10, 0.997565746, -0.0697333887)
- Weld342.Parent = Part292
- Weld342.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld342.C1 = CFrame.new(2.00708268e-06, -0.933598638, 0.400390506, 3.70557002e-10, 0.0697226226, 0.997566521, 4.07184675e-10, -0.997566402, 0.0697226301, 1, 3.80357551e-10, -3.98045263e-10)
- Weld343.Parent = Part292
- Weld343.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld343.C1 = CFrame.new(-1.0609989e-07, -0.373298496, -0.533198833, 1, 7.61074016e-12, -4.54308563e-10, 4.52671733e-10, 0.0697359443, 0.997565567, 3.92738446e-11, -0.997565567, 0.0697359443)
- Weld344.Parent = Part292
- Weld344.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld344.C1 = CFrame.new(-0.533206105, 3.25288311e-05, -0.400390536, 4.0660561e-10, -0.997566402, 0.0697226301, 3.50466517e-10, 0.0697226226, 0.997566521, -1, -3.8118067e-10, 3.77963272e-10)
- Weld345.Parent = Part292
- Weld345.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
- Weld345.C1 = CFrame.new(-6.55530812e-08, 2.72896377e-05, -0.933581114, 1, 1.40101444e-10, 2.20685789e-10, 2.3550692e-10, 0.0697202981, 0.997566581, 3.36916911e-10, -0.997567058, 0.0697131678)
- Weld346.Parent = Part292
- Weld346.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld346.C1 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld347.Parent = Part292
- Weld347.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld347.C1 = CFrame.new(0.5332008, 8.52442608e-05, -0.399536431, -1.4692636e-09, 0.000846330251, -0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, 1, -2.67631073e-09, -1.47152912e-09)
- Weld348.Parent = Part292
- Weld348.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld348.C1 = CFrame.new(-3.54604822e-07, 7.10747918e-05, -0.533170998, 1, -2.69418865e-09, -1.24858379e-09, 2.69523404e-09, 0.999999702, 0.000838225707, 1.24632515e-09, -0.000838225707, 0.999999642)
- Weld349.Parent = Part292
- Weld349.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld349.C1 = CFrame.new(0.533231318, 0.373406291, -2.83906502e-07, -1.47042167e-09, 0.000846330251, -0.999999642, 2.71773581e-09, 0.999999702, 0.000846330193, 1, -2.71649037e-09, -1.47272128e-09)
- Weld350.Parent = Part292
- Weld350.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld350.C1 = CFrame.new(5.93345294e-06, 0.132752568, 0.400390923, 2.71005463e-09, 0.999999702, 0.000829644501, -1.47042467e-09, 0.000829644501, -0.999999642, -1, 2.70883382e-09, 1.47267265e-09)
- Weld351.Parent = Part292
- Weld351.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld351.C1 = CFrame.new(8.4651374e-06, -0.400390327, -0.132810175, 2.71773581e-09, 0.999999702, 0.000846330193, -1, 2.71649037e-09, 1.47272128e-09, 1.47042167e-09, -0.000846330251, 0.999999642)
- Weld352.Parent = Part292
- Weld352.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld352.C1 = CFrame.new(3.62762336e-07, 2.95230384e-05, 0.132817402, -1, 2.71106715e-09, 1.27517807e-09, 2.71213629e-09, 0.999999702, 0.000839179265, -1.27290256e-09, 0.000839179265, -0.999999642)
- Weld353.Parent = Part292
- Weld353.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld353.C1 = CFrame.new(0.000142092002, -0.400391012, 0.93360728, 2.67646505e-09, 0.999999702, 0.000840450521, 1, -2.6753646e-09, -1.31059485e-09, -1.30834588e-09, 0.000840450521, -0.999999642)
- Weld354.Parent = Part292
- Weld354.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld354.C1 = CFrame.new(0.000101452555, -0.933591425, 0.400390327, 2.69764522e-09, 0.999999702, 0.000846330193, 1.46984258e-09, -0.000846330251, 0.999999642, 1, -2.69640044e-09, -1.47212509e-09)
- Weld355.Parent = Part292
- Weld355.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld355.C1 = CFrame.new(-3.94687646e-07, -0.373256177, -0.533165812, 1, -2.77882695e-09, -1.10427789e-09, 2.77974577e-09, 0.999999702, 0.000832981663, 1.10196274e-09, -0.000832981663, 0.999999642)
- Weld356.Parent = Part292
- Weld356.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld356.C1 = CFrame.new(-0.5332008, 8.52442608e-05, -0.400390327, 1.4692636e-09, -0.000846330251, 0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, -1, 2.67631073e-09, 1.47152912e-09)
- Weld357.Parent = Part292
- Weld357.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
- Weld357.C1 = CFrame.new(-2.17958132e-08, 2.16124681e-05, -0.933588922, 1, -7.00479896e-10, -5.50027579e-10, 7.00928149e-10, 0.999999702, 0.000815343345, 5.49456258e-10, -0.000815343345, 0.999999702)
- Weld358.Parent = Part292
- Weld358.C0 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
- Weld358.C1 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
- Weld358.Part0 = Part292
- Weld358.Part1 = Part292
- Weld359.Parent = Part292
- Weld359.C0 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
- Weld359.C1 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
- Weld359.Part0 = Part292
- Weld359.Part1 = Part292
- Weld360.Parent = Part292
- Weld360.C0 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
- Weld360.C1 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
- Weld360.Part0 = Part292
- Weld360.Part1 = Part292
- Weld361.Parent = Part292
- Weld361.C0 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
- Weld361.C1 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
- Weld361.Part0 = Part292
- Weld361.Part1 = Part292
- Weld362.Parent = Part292
- Weld362.C0 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
- Weld362.C1 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
- Weld362.Part0 = Part292
- Weld362.Part1 = Part292
- Weld363.Parent = Part292
- Weld363.C0 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
- Weld363.C1 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
- Weld363.Part0 = Part292
- Weld363.Part1 = Part292
- Weld364.Parent = Part292
- Weld364.C0 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
- Weld364.C1 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
- Weld364.Part0 = Part292
- Weld364.Part1 = Part292
- Weld365.Parent = Part292
- Weld365.C0 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
- Weld365.C1 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
- Weld365.Part0 = Part292
- Weld365.Part1 = Part292
- Weld366.Parent = Part292
- Weld366.C0 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
- Weld366.C1 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
- Weld366.Part0 = Part292
- Weld366.Part1 = Part292
- Part367.Name = "BoltBack"
- Part367.Parent = Tool0
- Part367.BrickColor = BrickColor.new("Really black")
- Part367.Transparency = 1
- Part367.Rotation = Vector3.new(179.979996, 0, -180)
- Part367.Anchored = true
- Part367.CanCollide = false
- Part367.FormFactor = Enum.FormFactor.Custom
- Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
- Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
- Part367.BottomSurface = Enum.SurfaceType.Smooth
- Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part367.TopSurface = Enum.SurfaceType.Smooth
- Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
- Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
- Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Sound368.Name = "FireSound"
- Sound368.Parent = Part367
- Sound368.SoundId = "rbxassetid://135039581"
- Sound368.Volume = 1
- Sound369.Name = "ReloadSound"
- Sound369.Parent = Part367
- Sound369.SoundId = "rbxassetid://255061162"
- Sound369.Volume = 1
- Part370.Name = "Bolt"
- Part370.Parent = Tool0
- Part370.BrickColor = BrickColor.new("Really black")
- Part370.Transparency = 1
- Part370.Rotation = Vector3.new(179.979996, 0, -180)
- Part370.Anchored = true
- Part370.CanCollide = false
- Part370.FormFactor = Enum.FormFactor.Custom
- Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
- Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
- Part370.BottomSurface = Enum.SurfaceType.Smooth
- Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
- Part370.TopSurface = Enum.SurfaceType.Smooth
- Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
- Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
- Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
- Sound371.Name = "FireSound"
- Sound371.Parent = Part370
- Sound371.SoundId = "rbxassetid://135039581"
- Sound371.Volume = 1
- Sound372.Name = "ReloadSound"
- Sound372.Parent = Part370
- Sound372.SoundId = "rbxassetid://255061162"
- Sound372.Volume = 1
- Model373.Name = "Nigger"
- Model373.Parent = Tool0
- Part374.Name = "Right Leg"
- Part374.Parent = Model373
- Part374.BrickColor = BrickColor.new("Reddish brown")
- Part374.Rotation = Vector3.new(0, -90, 0)
- Part374.Anchored = true
- Part374.CanCollide = false
- Part374.FormFactor = Enum.FormFactor.Symmetric
- Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
- Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part374.BottomSurface = Enum.SurfaceType.Smooth
- Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
- Part374.Orientation = Vector3.new(0, -90, 0)
- Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Decal375.Parent = Part374
- Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
- Part376.Name = "Torso"
- Part376.Parent = Model373
- Part376.BrickColor = BrickColor.new("Reddish brown")
- Part376.Rotation = Vector3.new(0, -90, 0)
- Part376.Anchored = true
- Part376.FormFactor = Enum.FormFactor.Symmetric
- Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
- Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part376.LeftSurface = Enum.SurfaceType.Weld
- Part376.RightSurface = Enum.SurfaceType.Weld
- Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
- Part376.Orientation = Vector3.new(0, -90, 0)
- Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Decal377.Name = "roblox"
- Decal377.Parent = Part376
- Motor378.Name = "Right Shoulder"
- Motor378.Parent = Part376
- Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Motor378.Part0 = Part376
- Motor378.Part1 = Part383
- Motor378.MaxVelocity = 0.5
- Motor379.Name = "Left Shoulder"
- Motor379.Parent = Part376
- Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Motor379.Part0 = Part376
- Motor379.Part1 = Part385
- Motor379.MaxVelocity = 0.5
- Motor380.Name = "Right Hip"
- Motor380.Parent = Part376
- Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
- Motor380.Part0 = Part376
- Motor380.Part1 = Part374
- Motor380.MaxVelocity = 0.10000000149012
- Motor381.Name = "Left Hip"
- Motor381.Parent = Part376
- Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Motor381.Part0 = Part376
- Motor381.Part1 = Part384
- Motor381.MaxVelocity = 0.10000000149012
- Motor382.Name = "Neck"
- Motor382.Parent = Part376
- Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
- Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
- Motor382.Part0 = Part376
- Motor382.Part1 = Part386
- Motor382.MaxVelocity = 0.10000000149012
- Part383.Name = "Right Arm"
- Part383.Parent = Model373
- Part383.BrickColor = BrickColor.new("Reddish brown")
- Part383.Rotation = Vector3.new(0, -90, 0)
- Part383.Anchored = true
- Part383.CanCollide = false
- Part383.FormFactor = Enum.FormFactor.Symmetric
- Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
- Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
- Part383.Orientation = Vector3.new(0, -90, 0)
- Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part384.Name = "Left Leg"
- Part384.Parent = Model373
- Part384.BrickColor = BrickColor.new("Reddish brown")
- Part384.Rotation = Vector3.new(0, -90, 0)
- Part384.Anchored = true
- Part384.CanCollide = false
- Part384.FormFactor = Enum.FormFactor.Symmetric
- Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
- Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part384.BottomSurface = Enum.SurfaceType.Smooth
- Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
- Part384.Orientation = Vector3.new(0, -90, 0)
- Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part385.Name = "Left Arm"
- Part385.Parent = Model373
- Part385.BrickColor = BrickColor.new("Reddish brown")
- Part385.Rotation = Vector3.new(0, -90, 0)
- Part385.Anchored = true
- Part385.CanCollide = false
- Part385.FormFactor = Enum.FormFactor.Symmetric
- Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
- Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
- Part385.Orientation = Vector3.new(0, -90, 0)
- Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part386.Name = "Head"
- Part386.Parent = Model373
- Part386.BrickColor = BrickColor.new("Reddish brown")
- Part386.Rotation = Vector3.new(0, -90, 0)
- Part386.Anchored = true
- Part386.FormFactor = Enum.FormFactor.Symmetric
- Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
- Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
- Part386.TopSurface = Enum.SurfaceType.Smooth
- Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
- Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
- Part386.Orientation = Vector3.new(0, -90, 0)
- Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
- SpecialMesh387.Parent = Part386
- SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
- SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
- Decal388.Parent = Part386
- Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
- Decal389.Parent = Part386
- Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
- Humanoid390.Parent = Model373
- Humanoid390.RightLeg = Part374
- Humanoid390.LeftLeg = Part384
- Humanoid390.Torso = Part376
- Humanoid390.MaxHealth = 0
- Script391.Name = "Humaniod"
- Script391.Parent = Model373
- table.insert(cors,sandbox(Script391,function()
- local Model = script.Parent
- local Backup = Model:clone()
- function Respawn()
- Model:breakJoints()
- wait(5)
- script.Parent = Model.Parent
- Model:remove()
- Model = Backup:clone()
- Model.Parent = script.Parent
- Model:makeJoints()
- script:remove()
- end
- Model.Humanoid.Died:connect(Respawn)
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then
- return child
- end
- while true do
- print(childName)
- child = parent.ChildAdded:wait()
- if child.Name==childName then
- return child
- end
- end
- end
- -- declarations
- local Figure = script.Parent
- local Head = waitForChild(Figure, "Head")
- local Humanoid = waitForChild(Figure, "Humanoid")
- Figure.PrimaryPart = Head
- -- ANIMATION
- function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
- local Motor = Instance.new("Motor")
- Motor.C0 = C0
- Motor.C1 = C1
- Motor.MaxVelocity = MaxVelocity
- Motor.Name = Name
- Motor.Parent = Part0
- Motor.Part0 = Part0
- Motor.Part1 = Part1
- end
- -- declarations
- local Torso = waitForChild(Figure, "Torso")
- local LeftArm = waitForChild(Figure, "Left Arm")
- local LeftLeg = waitForChild(Figure, "Left Leg")
- local RightArm = waitForChild(Figure, "Right Arm")
- local RightLeg = waitForChild(Figure, "Right Leg")
- local Joints = {
- {"Right Shoulder", Torso, RightArm, CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.5},
- {"Left Shoulder", Torso, LeftArm, CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.5},
- {"Right Hip", Torso, RightLeg, CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.10000000149012},
- {"Left Hip", Torso, LeftLeg, CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.10000000149012},
- {"Neck", Torso, Head, CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), 0.10000000149012}}
- Torso:breakJoints()
- for _, v in pairs(Joints) do
- Joint(unpack(v))
- end
- local RightShoulder = waitForChild(Torso, "Right Shoulder")
- local LeftShoulder = waitForChild(Torso, "Left Shoulder")
- local RightHip = waitForChild(Torso, "Right Hip")
- local LeftHip = waitForChild(Torso, "Left Hip")
- local Neck = waitForChild(Torso, "Neck")
- local Humanoid = waitForChild(Figure, "Humanoid")
- local pose = "Standing"
- local toolAnim = "None"
- local toolAnimTime = 0
- -- functions
- function onRunning(speed)
- if speed>0 then
- pose = "Running"
- else
- pose = "Standing"
- end
- end
- function onDied()
- pose = "Dead"
- end
- function onJumping()
- pose = "Jumping"
- end
- function onClimbing()
- pose = "Climbing"
- end
- function onGettingUp()
- pose = "GettingUp"
- end
- function onFreeFall()
- pose = "FreeFall"
- end
- function onFallingDown()
- pose = "FallingDown"
- end
- function onSeated()
- pose = "Seated"
- end
- function onPlatformStanding()
- pose = "PlatformStanding"
- end
- function moveJump()
- RightShoulder.MaxVelocity = 0.5
- LeftShoulder.MaxVelocity = 0.5
- RightShoulder.DesiredAngle = 3.14
- LeftShoulder.DesiredAngle = -3.14
- RightHip.DesiredAngle = 0
- LeftHip.DesiredAngle = 0
- end
- -- same as jump for now
- function moveFreeFall()
- RightShoulder.MaxVelocity = 0.5
- LeftShoulder.MaxVelocity = 0.5
- RightShoulder.DesiredAngle = 3.14
- LeftShoulder.DesiredAngle = -3.14
- RightHip.DesiredAngle = 0
- LeftHip.DesiredAngle = 0
- end
- function moveSit()
- RightShoulder.MaxVelocity = 0.15
- LeftShoulder.MaxVelocity = 0.15
- RightShoulder.DesiredAngle = 3.14 /2
- LeftShoulder.DesiredAngle = -3.14 /2
- RightHip.DesiredAngle = 3.14 /2
- LeftHip.DesiredAngle = -3.14 /2
- end
- function getTool()
- for _, kid in ipairs(Figure:GetChildren()) do
- if kid.className == "Tool" then return kid end
- end
- return nil
- end
- function getToolAnim(tool)
- for _, c in ipairs(tool:GetChildren()) do
- if c.Name == "toolanim" and c.className == "StringValue" then
- return c
- end
- end
- return nil
- end
- function animateTool()
- if (toolAnim == "None") then
- RightShoulder.DesiredAngle = 1.57
- return
- end
- if (toolAnim == "Slash") then
- RightShoulder.MaxVelocity = 0.5
- RightShoulder.DesiredAngle = 0
- return
- end
- if (toolAnim == "Lunge") then
- RightShoulder.MaxVelocity = 0.5
- LeftShoulder.MaxVelocity = 0.5
- RightHip.MaxVelocity = 0.5
- LeftHip.MaxVelocity = 0.5
- RightShoulder.DesiredAngle = 1.57
- LeftShoulder.DesiredAngle = 1.0
- RightHip.DesiredAngle = 1.57
- LeftHip.DesiredAngle = 1.0
- return
- end
- end
- function move(time)
- local amplitude
- local frequency
- if (pose == "Jumping") then
- moveJump()
- return
- end
- if (pose == "FreeFall") then
- moveFreeFall()
- return
- end
- if (pose == "Seated") then
- moveSit()
- return
- end
- local climbFudge = 0
- if (pose == "Running") then
- RightShoulder.MaxVelocity = 0.15
- LeftShoulder.MaxVelocity = 0.15
- amplitude = 1
- frequency = 9
- elseif (pose == "Climbing") then
- RightShoulder.MaxVelocity = 0.5
- LeftShoulder.MaxVelocity = 0.5
- amplitude = 1
- frequency = 9
- climbFudge = 3.14
- else
- amplitude = 0.1
- frequency = 1
- end
- desiredAngle = amplitude * math.sin(time*frequency)
- RightShoulder.DesiredAngle = desiredAngle + climbFudge
- LeftShoulder.DesiredAngle = desiredAngle - climbFudge
- RightHip.DesiredAngle = -desiredAngle
- LeftHip.DesiredAngle = -desiredAngle
- local tool = getTool()
- if tool then
- animStringValueObject = getToolAnim(tool)
- if animStringValueObject then
- toolAnim = animStringValueObject.Value
- -- message recieved, delete StringValue
- animStringValueObject.Parent = nil
- toolAnimTime = time + .3
- end
- if time > toolAnimTime then
- toolAnimTime = 0
- toolAnim = "None"
- end
- animateTool()
- else
- toolAnim = "None"
- toolAnimTime = 0
- end
- end
- -- connect events
- Humanoid.Died:connect(onDied)
- Humanoid.Running:connect(onRunning)
- Humanoid.Jumping:connect(onJumping)
- Humanoid.Climbing:connect(onClimbing)
- Humanoid.GettingUp:connect(onGettingUp)
- Humanoid.FreeFalling:connect(onFreeFall)
- Humanoid.FallingDown:connect(onFallingDown)
- Humanoid.Seated:connect(onSeated)
- Humanoid.PlatformStanding:connect(onPlatformStanding)
- -- util
- function waitForChild(parent, childName)
- local child = parent:findFirstChild(childName)
- if child then return child end
- while true do
- child = parent.ChildAdded:wait()
- if child.Name==childName then return child end
- end
- end
- function newSound(id)
- local sound = Instance.new("Sound")
- sound.SoundId = id
- sound.archivable = false
- sound.Parent = script.Parent.Head
- return sound
- end
- -- declarations
- local sDied = newSound("rbxasset://sounds/uuhhh.wav")
- local sFallingDown = newSound("rbxasset://sounds/splat.wav")
- local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
- local sGettingUp = newSound("rbxasset://sounds/hit.wav")
- local sJumping = newSound("rbxasset://sounds/button.wav")
- local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
- sRunning.Looped = true
- -- functions
- function onSoundDied()
- sDied:Play()
- end
- function onState(state, sound)
- if state then
- sound:Play()
- else
- sound:Pause()
- end
- end
- function onSoundRunning(speed)
- if speed>0 then
- sRunning:Play()
- else
- sRunning:Pause()
- end
- end
- -- connect up
- Humanoid.Died:connect(onSoundDied)
- Humanoid.Running:connect(onSoundRunning)
- Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
- Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
- Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
- Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
- local runService = game:service("RunService");
- delay(0, function()
- while Figure.Parent~=nil do
- local _, time = wait(0.1)
- move(time)
- end
- end)
- -- regeneration
- while true do
- local s = wait(1)
- local health = Humanoid.Health
- if health > 0 and health < Humanoid.MaxHealth then
- health = health + 0.01 * s * Humanoid.MaxHealth
- if health * 1.05 < Humanoid.MaxHealth then
- Humanoid.Health = health
- else
- Humanoid.Health = Humanoid.MaxHealth
- end
- end
- end
- end))
- Shirt392.Name = "Shirt"
- Shirt392.Parent = Model373
- Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
- Pants393.Parent = Model373
- Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
- Part394.Name = "hanger"
- Part394.Parent = Model373
- Part394.Material = Enum.Material.Fabric
- Part394.BrickColor = BrickColor.new("Brick yellow")
- Part394.Rotation = Vector3.new(0, 90, 0)
- Part394.Anchored = true
- Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
- Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
- Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
- Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
- Part394.Orientation = Vector3.new(0, 90, 0)
- Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
- for i,v in pairs(mas:GetChildren()) do
- v.Parent = game:GetService("Players").LocalPlayer.Backpack
- pcall(function() v:MakeJoints() end)
- end
- mas:Destroy()
- for i,v in pairs(cors) do
- spawn(function()
- pcall(v)
- end)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement