View difference between Paste ID: VjLbcknS and nHiqHc3Q
SHOW: | | - or go back to the newest paste.
1-
-- tool useless too lazy to remove
1+
debounce = false
2-
local debris = game:GetService("Debris")
2+
owner.Character.Head.Transparency = 1
3-
Tool = Instance.new("Tool")
3+
owner.Character.Humanoid:RemoveAccessories()
4-
Part1 = Instance.new("Part")
4+
local function customExplosion(position, radius, maxDamage)
5-
Part1.Name = "Handle"
5+
	local explosion = Instance.new("Explosion")
6-
Part1.Parent = Tool
6+
	explosion.BlastPressure = 50 -- this could be set higher to still apply velocity to parts
7-
Tool.Parent = owner.Character
7+
	explosion.DestroyJointRadiusPercent = 0 -- joints are safe
8-
Tool.Name = "builder"
8+
	explosion.BlastRadius = radius
9-
local built = {} -- storing built parts
9+
	explosion.Position = position
10-
10+
	
11-
buildremote = Instance.new("RemoteEvent",owner.Character)
11+
	-- set up a table to track the models hit
12-
buildremote.Name = "The"
12+
	local modelsHit = {}
13-
buildremote.OnServerEvent:Connect(function(plr,action,pos)
13+
 
14-
if action == "Build" then -- placing part
14+
	-- listen for contact
15-
Brick = Instance.new("Part", workspace)
15+
	explosion.Hit:Connect(function(part, distance)
16-
Brick.Size = Vector3.new(2.5,2.5,2.5)
16+
		local parentModel = part.Parent
17-
Brick.Position = pos
17+
		if parentModel then 
18-
Brick.Anchored = true
18+
			-- check to see if this model has already been hit 
19
			if modelsHit[parentModel] then
20-
decal = Instance.new("Texture", Brick)
20+
				return
21-
decal.StudsPerTileU = 1.25
21+
			end
22-
decal.StudsPerTileV = 1.25
22+
			-- log this model as hit
23-
decal.Texture = "http://www.roblox.com/asset/?id=8346980490"
23+
			modelsHit[parentModel] = true
24-
decal.Face = Enum.NormalId.Front
24+
 
25-
local clone = decal:Clone()
25+
			-- look for a humanoid
26-
clone.Parent = Brick
26+
			local humanoid = parentModel:FindFirstChild("Humanoid")
27-
clone.Face = Enum.NormalId.Back
27+
			if humanoid and humanoid ~= owner.Character.Humanoid then
28-
local clone = decal:Clone()
28+
				local distanceFactor = distance / explosion.BlastRadius -- get the distance as a value between 0 and 1
29-
clone.Parent = Brick
29+
				distanceFactor = 1 - distanceFactor
30-
clone.Face = Enum.NormalId.Top
30+
				humanoid.Health = humanoid.Health - (maxDamage * distanceFactor)
31-
local clone = decal:Clone()
31+
			end	
32-
clone.Parent = Brick
32+
		end
33-
clone.Face = Enum.NormalId.Bottom
33+
	end)
34-
local clone = decal:Clone()
34+
 
35-
clone.Parent = Brick
35+
	explosion.Parent = game.Workspace
36-
clone.Face = Enum.NormalId.Left
36+
local part1 = Instance.new("Part", script)
37-
local clone = decal:Clone()
37+
part1.Size = Vector3.new(15, 15, 15)
38-
clone.Parent = Brick
38+
part1.Position = position
39-
clone.Face = Enum.NormalId.Right
39+
part1.CanCollide = false
40-
Brick.Color = Color3.fromRGB(30, 30, 30)
40+
part1.Anchored = true
41-
                table.insert(built,Brick) -- storing to delete them later if want
41+
part1.Material = "Neon"
42-
elseif action == "Destroy" then -- breaking part
42+
part1.BrickColor = BrickColor.new("New Yeller")
43-
if table.find(built,pos) then -- checking if part to break is a part you built
43+
part1.Transparency = 0.5
44-
oldcf = pos.CFrame
44+
game:GetService("Debris"):AddItem(part1,0.5)
45-
oldpartcolor = pos.Color
45+
for i = 1, 10 do
46-
pos:Destroy()
46+
wait(0.0885) 
47-
local mined = Instance.new("Sound", owner.Character.Head)
47+
part1.CFrame = part1.CFrame * CFrame.Angles(math.rad(math.random(-360,360)),math.rad(math.random(-360,360)),math.rad(math.random(-360,360)))
48-
mined.SoundId = "rbxassetid://6496157434"
48+
49-
mined.Volume = 1
49+
50-
mined:Play()
50+
Brick = Instance.new("Part", owner.Character)
51-
debris:AddItem(mined,1)
51+
Brick.Size = Vector3.new(1,1,2.5)
52-
for i = 1, 5 do
52+
53-
-- debris stuff
53+
Brick.CFrame = owner.Character.HumanoidRootPart.CFrame* CFrame.new(0,-0.25,5)
54-
local partdebris = Instance.new("Part",script)
54+
Brick:SetNetworkOwner(owner)
55-
partdebris.Shape = Enum.PartType.Ball
55+
Brick.Name = "Block"
56-
partdebris.Size = Vector3.new(0.25,0.25,0.25)
56+
Brick.CanCollide = false
57-
partdebris.Color = oldpartcolor
57+
Brick2 = Instance.new("Part", owner.Character)
58-
local Mesh = Instance.new("SpecialMesh")
58+
Brick2.Size = Vector3.new(1.5,2,1.5)
59-
Mesh.Parent = partdebris
59+
60-
Mesh.MeshType = "Brick"
60+
Brick2.CFrame = owner.Character.HumanoidRootPart.CFrame * CFrame.new(0,-1.25,5)
61-
Mesh.Scale = Vector3.new(1, 1, 1)
61+
Brick2:SetNetworkOwner(owner)
62-
partdebris.CanTouch = false
62+
Brick2.Name = "Block2"
63-
partdebris.Material = Enum.Material.SmoothPlastic
63+
Brick3 = Instance.new("Part", owner.Character)
64-
partdebris.CFrame = oldcf * CFrame.new(math.random(-1,1),math.random(-1,1),math.random(-1,1))
64+
Brick3.Size = Vector3.new(1,1,1)
65-
partdebris:ApplyImpulse(CFrame.new(oldcf.Position,partdebris.Position).lookVector * 0.0625)
65+
Brick3.Material = Enum.Material.SmoothPlastic
66-
debris:AddItem(partdebris,6)
66+
Brick3.CFrame = owner.Character.HumanoidRootPart.CFrame * CFrame.new(0,0.25,0.375)
67
Brick3:SetNetworkOwner(owner)
68
Brick3.Name = "Block3"
69
Brick3.CanCollide = false
70
Brick3.Transparency = 1
71
Brick3.Massless = true
72-
local Tool = owner.Character:WaitForChild("builder")
72+
Brick2.Massless = true
73-
local buildremote = owner.Character:WaitForChild("The")
73+
Brick.Massless = true
74
local density = 0.5
75-
local off = false
75+
local friction = 0.5
76-
local equipped = false
76+
local elasticity = 1
77-
local posx
77+
local frictionWeight = 0
78-
local posy
78+
local elasticityWeight = 100000000000
79-
local posz
79+
local physProperties = PhysicalProperties.new(density, friction, elasticity, frictionWeight, elasticityWeight)
80-
Brick2 = Instance.new("Part", owner.Character) -- cursor hover
80+
local b = Instance.new("BodyVelocity",Brick)
81-
Brick2.Size = Vector3.new(2.5,2.5,2.5)
81+
b.MaxForce = Vector3.new(500000,500000,500000)
82-
Brick2.Anchored = true
82+
b.Velocity = Vector3.new()
83
gun = Instance.new("RemoteEvent",owner.Character)
84-
Brick2.Transparency = 0.65
84+
gun.Name = "the thing you shoot"
85-
Brick2.CanCollide = false
85+
explodemode = false
86-
oldcolor = Brick2.Color
86+
gun.OnServerEvent:Connect(function(plr, action)
87-
local gridsize = 2.5
87+
if action == "explodemode" then
88-
88+
explodemode = true
89-
89+
elseif action == "Normal" then
90-
building = true
90+
explodemode = false
91-
		game:GetService("RunService").RenderStepped:Connect(function() -- constant mouse update
91+
92-
if building then
92+
if action == "shoot" then
93-
	posx = math.floor(mouse.Hit.X/gridsize + 0.5) * gridsize
93+
local bullet = Instance.new("SpawnLocation",script)
94-
	posy = math.floor(mouse.Hit.Y/gridsize + 0.5) * gridsize
94+
bullet.Enabled = false
95-
	posz = math.floor(mouse.Hit.Z/gridsize + 0.5) * gridsize
95+
bullet.CFrame = Brick.CFrame * CFrame.new(0,0,-5)
96-
	local pos2 = Vector3.new(posx,posy,posz)
96+
bullet.Size = Vector3.new(0.75,0.75,2.5)
97-
Brick2.Position = pos2
97+
bullet.Material = Enum.Material.SmoothPlastic
98-
elseif not building then
98+
bullet.CustomPhysicalProperties = physProperties
99-
Brick2.Position = mouse.Target.Position
99+
if explodemode then
100
bullet.BrickColor = BrickColor.new("Bright red")
101
game:GetService("Debris"):AddItem(bullet,5)
102
bullet:ApplyImpulse(bullet.CFrame.lookVector * 165)
103-
if building then
103+
elseif not explodemode then
104-
	local pos = Vector3.new(posx,posy,posz)
104+
bullet.BrickColor = BrickColor.new("New Yeller")
105-
		buildremote:FireServer("Build", pos)
105+
game:GetService("Debris"):AddItem(bullet,7.5)
106-
elseif not building then
106+
bullet:ApplyImpulse(bullet.CFrame.lookVector * 200)
107-
		buildremote:FireServer("Destroy", mouse.Target)
107+
108
bullet.Touched:Connect(function(partlol)
109
	local partParent3 = partlol.Parent
110
	local humanoid = partParent3:FindFirstChildWhichIsA("Humanoid")
111-
function buildswitch(key) -- switching from destroy to build or build to destroy
111+
	if humanoid ~= owner.Character.Humanoid and humanoid then
112-
    key = key:lower()
112+
if not debounce then
113-
    if key == "q" then
113+
debounce = true
114
if explodemode then
115
customExplosion(bullet.Position,15,100)
116-
building = false
116+
wait()
117-
Brick2.Color = Color3.fromRGB(184, 65, 65)
117+
bullet:Destroy()
118-
Brick2.Size = Vector3.new(2.6,2.6,2.6)
118+
debounce = false
119
elseif not explodemode then
120-
building = true
120+
humanoid.Health = humanoid.Health - 35
121-
Brick2.Color = oldcolor
121+
wait()
122-
Brick2.Size = Vector3.new(2.5,2.5,2.5)
122+
bullet:Destroy()
123
debounce = false
124
end
125
end
126
end
127
end)
128-
mouse.KeyDown:Connect(buildswitch)
128+
129-
]], owner.Character)
129+
130-
print([["Q is to change between
130+
Brickweld2 = Instance.new("NoCollisionConstraint",Brick2)
131-
building or destroying"]])
131+
Brickweld2.Part0 = Brick
132-
print("Click to make or break a part")
132+
Brickweld2.Part1 = Brick2
133-
warn("DIAMONDS AAAAAAAAAAAA")
133+
Brickweld = Instance.new("Weld",Brick2)
134-
warn("Made by Haker Man / Lucas_YT111")
134+
Brickweld.Part0 = Brick3
135
Brickweld.Part1 = Brick2
136
Brickweld.C0 = CFrame.new(0,-1,0.375)
137
  local attachment0 = Instance.new("Attachment")
138
                attachment0.Parent = Brick2
139
                local attachment1 = Instance.new("Attachment")
140
                attachment1.Parent = owner.Character.Head
141
                alignposition = Instance.new("HingeConstraint")
142
                alignposition.Parent = owner.Character.Head
143
alignposition.Attachment0 = attachment0
144
alignposition.Attachment1 = attachment1
145
attachment1.WorldCFrame = attachment1.Parent.CFrame * CFrame.new(0,0.75,0) * CFrame.Angles(0,0,math.rad(90))
146
attachment0.WorldCFrame = attachment0.Parent.CFrame * CFrame.Angles(0,0,math.rad(90))
147
NLS([[ 
148
gun = owner.Character:WaitForChild("the thing you shoot")
149
local mouse = owner:GetMouse()
150
Brick = owner.Character:WaitForChild("Block")
151
Brick2 = owner.Character:WaitForChild("Block2")
152
Brick3 = owner.Character:WaitForChild("Block3")
153
local bg = Instance.new("BodyGyro",Brick)
154
bg.D = 100
155
bg.P = 100000
156
bg.MaxTorque = Vector3.new(1000000,1000000,1000000)
157
		game:GetService("RunService").RenderStepped:Connect(function()
158
TweenService = game:GetService("TweenService")
159
spininfo = TweenInfo.new(0.125,Enum.EasingStyle.Linear)
160
spininfo2 = TweenInfo.new(0.125,Enum.EasingStyle.Linear)
161
Spin1 = TweenService:Create(Brick2,spininfo,{CFrame = CFrame.new(Brick2.Position,Vector3.new(mouse.Hit.p.x,Brick2.Position.y,mouse.Hit.p.z))})
162
Brick.Position = Brick3.Position
163
Spin2 = TweenService:Create(bg,spininfo2,{CFrame = CFrame.new(Brick3.Position,Vector3.new(mouse.Hit.p.x,mouse.Hit.p.y,mouse.Hit.p.z))})
164
Spin1:Play()
165
Spin2:Play()
166
		end)
167
MouseHold = false
168
count = 0
169
mouse.KeyDown:Connect(function(key)
170
        key = key:lower()
171
        if key == "e" then
172
count = count + 1
173
if count == 1 then
174
gun:FireServer("explodemode")
175
elseif count == 2 then
176
gun:FireServer("Normal")
177
task.wait()
178
count = 0
179
end
180
end
181
end)
182
mouse.Button1Down:Connect(function()
183
gun:FireServer("shoot")
184
MouseHold = true
185
end)
186
mouse.Button1Up:Connect(function()
187
MouseHold = false
188
end)
189
while true do
190
wait(0.0625)
191
if MouseHold then
192
gun:FireServer("shoot")
193
end
194
end
195
]], owner.Character)