1 | local Me = game.Players.LocalPlayer |
2 | bin = Instance.new("HopperBin") |
3 | bin.Name = "Fap (Q and E)" |
4 | bin.Parent = Me.Backpack |
5 | |
6 | local SIZE = 1 |
7 | local DISTANCE = 1 |
8 | local RAISE = 0.03 |
9 | local INCLINE = 0.001 |
10 | local ChaneOfEnjoyment = 10 |
11 | local Auto = false |
12 | local AutoAmout = 1 |
13 | |
14 | local char = Me.Character |
15 | local Torsoz = char:findFirstChild("Torso") |
16 | local RA = char:findFirstChild("Right Arm") |
17 | local LA = char:findFirstChild("Left Arm") |
18 | local H = char:findFirstChild("Head") |
19 | local RS = Torsoz:findFirstChild("Right Shoulder") |
20 | local LS = Torsoz:findFirstChild("Left Shoulder") |
21 | local N = Torsoz:findFirstChild("Neck") |
22 | local Joint1 |
23 | local Joint2 |
24 | local Fap = 1 |
25 | local FapCount = Instance.new("Part") |
26 | local FapCountM = Instance.new("Model") |
27 | local Points = 0 |
28 | local Dks = {} |
29 | local InTenPoints = 0 |
30 | local RaiseOrg = RAISE |
31 | local Tickup = false |
32 | |
33 | Me:ClearCharacterAppearance() |
34 | wait(0.1) |
35 | Me.Character.Head.BrickColor = BrickColor.new("Cool yellow") |
36 | Me.Character.Torso.BrickColor = BrickColor.new("Cool yellow") |
37 | Me.Character["Right Arm"].BrickColor = BrickColor.new("Cool yellow") |
38 | Me.Character["Right Leg"].BrickColor = BrickColor.new("Cool yellow") |
39 | Me.Character["Left Leg"].BrickColor = BrickColor.new("Cool yellow") |
40 | Me.Character["Left Arm"].BrickColor = BrickColor.new("Cool yellow") |
41 | pcall(function() Me.Character.Torso.roblox:Destroy() end) |
42 | |
43 | local P = Instance.new("Part") |
44 | P.Anchored = false |
45 | P.CanCollide = false |
46 | P.Name = "Part" |
47 | P.formFactor = "Custom" |
48 | P.Size = Vector3.new(0.5,0.5,0.5) |
49 | P.Locked = true |
50 | P.TopSurface = 0 |
51 | P.BottomSurface = 0 |
52 | |
53 | local Model = Instance.new("Model", char) |
54 | Model.Name = "Troll" |
55 | |
56 | local B1 = Instance.new("Part", Model) |
57 | B1.Name = "Di-ck" |
58 | B1.Size = Vector3.new(1,1,1) |
59 | B1.TopSurface = "Smooth" |
60 | B1.BottomSurface = "Smooth" |
61 | B1.Position = Vector3.new(0,10,0) |
62 | B1.BrickColor = BrickColor.new("Cool yellow") |
63 | B1.CanCollide = true |
64 | B1.Locked = true |
65 | local Mesh1 = Instance.new("SpecialMesh", B1) |
66 | Mesh1.MeshType = "Sphere" |
67 | Mesh1.Scale = Vector3.new(SIZE+0.3,SIZE+0.3,SIZE+0.3) |
68 | local Weld1 = Instance.new("Weld", B1) |
69 | Weld1.Part0 = Torsoz |
70 | Weld1.Part1 = B1 |
71 | Weld1.C0 = CFrame.new(-0.2,-1,-0.6) |
72 | |
73 | local B2 = Instance.new("Part", Model) |
74 | B2.Name = "Di-ck" |
75 | B2.Size = Vector3.new(1,1,1) |
76 | B2.TopSurface = "Smooth" |
77 | B2.BottomSurface = "Smooth" |
78 | B2.Position = Vector3.new(0,10,0) |
79 | B2.BrickColor = BrickColor.new("Cool yellow") |
80 | B2.CanCollide = true |
81 | B2.Locked = true |
82 | local Mesh2 = Instance.new("SpecialMesh", B2) |
83 | Mesh2.MeshType = "Sphere" |
84 | Mesh2.Scale = Vector3.new(SIZE+0.3,SIZE+0.3,SIZE+0.3) |
85 | local Weld2 = Instance.new("Weld", B2) |
86 | Weld2.Part0 = Torsoz |
87 | Weld2.Part1 = B2 |
88 | Weld2.C0 = CFrame.new(0.2,-1,-0.6) |
89 | |
90 | function FapPos() |
91 | Joint1.C0 = CFrame.new(0.8,-0.1,-0.3) * CFrame.Angles(0.3,0,-math.pi/4.4) |
92 | Joint2.C0 = CFrame.new(-0.8,-0.1,-0.3) * CFrame.Angles(0.3,0,math.pi/4.4) |
93 | end |
94 | function DoTheFap(Motherload) |
95 | FapPos() |
96 | Points = Points + 1 |
97 | local Dk = Instance.new("Part", Model) |
98 | Dk.Name = "Di-ck" |
99 | Dk.Size = Vector3.new(1,1,1) |
100 | Dk.TopSurface = "Smooth" |
101 | Dk.BottomSurface = "Smooth" |
102 | Dk.Position = Vector3.new(0,10,0) |
103 | Dk.BrickColor = BrickColor.new("Pink") |
104 | Dk.CanCollide = true |
105 | Dk.Locked = true |
106 | local Mesh = Instance.new("SpecialMesh", Dk) |
107 | Mesh.MeshType = "Sphere" |
108 | Mesh.Scale = Vector3.new(SIZE,SIZE,SIZE) |
109 | local Weld = Instance.new("Weld", Dk) |
110 | Weld.Part0 = Torsoz |
111 | Weld.Part1 = Dk |
112 | Weld.C0 = CFrame.new(0,-0.9 * (((#Dks+1)*(RAISE * -1))+1),-0.7 * ((#Dks+1)*(DISTANCE))) |
113 | if RAISE < 0.25 and TickUp == false then |
114 | RAISE = RAISE + INCLINE |
115 | else |
116 | TickUp = true |
117 | RAISE = (RAISE + INCLINE)-0.0005 |
118 | end |
119 | table.insert(Dks, Dk) |
120 | if math.random(1,ChaneOfEnjoyment) == 1 or Motherload == true then |
121 | local Sound = Instance.new("Sound", H) |
122 | Sound.Name = "Uhhhh yah" |
123 | Sound.Volume = 5 |
124 | Sound.Pitch = math.random(85,105)/100 |
125 | Sound.SoundId = "rbxasset://sounds/uuhhh.wav" |
126 | local Num = 1 |
127 | if Motherload == false then |
128 | Num = math.random(3,15) |
129 | else |
130 | Num = math.random(15,70) |
131 | end |
132 | for i = 0,Num do |
133 | coroutine.wrap(function() |
134 | local Cm = Instance.new("Part", Model) |
135 | Cm.Name = "Cu-m" |
136 | Cm.Size = Vector3.new(1,1,1) |
137 | Cm.TopSurface = "Smooth" |
138 | Cm.BottomSurface = "Smooth" |
139 | Cm.Position = Dks[#Dks].Position + Vector3.new(math.random(-1,1),math.random(-1,1),math.random(-1,1)) |
140 | Cm.BrickColor = BrickColor.new("White") |
141 | Cm.Shape = "Ball" |
142 | Cm.Locked = true |
143 | local Mesh = Instance.new("SpecialMesh", Cm) |
144 | Mesh.MeshType = "Sphere" |
145 | Mesh.Scale = Vector3.new(0.45,0.45,0.45) |
146 | wait(math.random(10,60)) |
147 | Cm:Destroy() |
148 | end)() |
149 | end |
150 | wait() |
151 | Sound:Play() |
152 | wait() |
153 | Sound:remove() |
154 | wait() |
155 | end |
156 | end |
157 | |
158 | function UnFap() |
159 | Joint1.C0 = CFrame.new(0.8,-0.1,-0.5) * CFrame.Angles(0.7,0,-math.pi/4.4) |
160 | Joint2.C0 = CFrame.new(-0.8,-0.1,-0.5) * CFrame.Angles(0.7,0,math.pi/4.4) |
161 | end |
162 | |
163 | function onKeyDown(key, mouse) |
164 | if key ~= nil then |
165 | key:lower() |
166 | if Auto == false then |
167 | if key == "e" then |
168 | if Fap == 1 then |
169 | UnFap() |
170 | Fap = 0 |
171 | end |
172 | elseif key == "q" then |
173 | if Fap == 0 then |
174 | Fap = 1 |
175 | if Points == 100 then |
176 | DoTheFap(true) |
177 | else |
178 | DoTheFap(false) |
179 | end |
180 | end |
181 | elseif key == "m" then |
182 | if Fap == 1 then |
183 | UnFap() |
184 | Fap = 0 |
185 | end |
186 | elseif key == "n" then |
187 | if Fap == 0 then |
188 | if #Dks > 1 then |
189 | Fap = 1 |
190 | FapPos() |
191 | Points = Points - 1 |
192 | for Num,Dk in pairs(Dks) do |
193 | if Num == #Dks then |
194 | table.remove(Dks, Num) |
195 | Dk:Destroy() |
196 | end |
197 | end |
198 | end |
199 | end |
200 | end |
201 | end |
202 | end |
203 | end |
204 | |
205 | function Equip() |
206 | local joint = Instance.new("Motor", Torsoz) |
207 | joint.Part0 = Torsoz |
208 | joint.Part1 = RA |
209 | joint.C0 = CFrame.new(0.8,-0.1,-0.3) * CFrame.Angles(0.3,0,-math.pi/4.4) |
210 | Joint1 = joint |
211 | local joint = Instance.new("Motor", Torsoz) |
212 | joint.Part0 = Torsoz |
213 | joint.Part1 = LA |
214 | joint.C0 = CFrame.new(-0.8,-0.1,-0.3) * CFrame.Angles(0.3,0,math.pi/4.4) |
215 | Joint2 = joint |
216 | |
217 | local m = Instance.new("Model", char) |
218 | m.Name = "Fap Points: "..Points |
219 | FapCountM = m |
220 | local p = P:Clone() |
221 | p.Parent = m |
222 | p.Name = "Head" |
223 | p.Anchored = true |
224 | p.CFrame = H.CFrame + Vector3.new(0,2,0) |
225 | FapCount = p |
226 | local h = Instance.new("Humanoid", m) |
227 | h.MaxHealth = 0 |
228 | h.Name = "Durr" |
229 | end |
230 | |
231 | function Unequip() |
232 | for i, v in pairs(Torsoz:children()) do |
233 | if v.className == "Motor" then |
234 | v:remove() |
235 | end |
236 | end |
237 | RS.Parent = Torsoz |
238 | RS.Part0 = Torsoz |
239 | RS.Part1 = RA |
240 | LS.Parent = Torsoz |
241 | LS.Part0 = Torsoz |
242 | LS.Part1 = LA |
243 | for i, v in pairs(char:children()) do |
244 | if v.className == "Model" and string.find(v.Name, "Fap") then |
245 | v:remove() |
246 | end |
247 | end |
248 | end |
249 | |
250 | bin.Selected:connect(function(mouse) |
251 | mouse.Icon = "rbxasset://textures\\GunCursor.png" |
252 | mouse.Button1Down:connect(function() onButton1Down(mouse) end) |
253 | mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end) |
254 | Equip() |
255 | end) |
256 | |
257 | bin.Deselected:connect(function() |
258 | Unequip() |
259 | end) |
260 | |
261 | if Auto == true then |
262 | coroutine.wrap(function() |
263 | Equip() |
264 | wait(0.1) |
265 | while true do |
266 | if Points == 100 then |
267 | DoTheFap(true) |
268 | else |
269 | DoTheFap(false) |
270 | end |
271 | wait() |
272 | UnFap() |
273 | wait() |
274 | end |
275 | end)() |
276 | end |
277 | |
278 | if AutoAmout ~= 0 then |
279 | coroutine.wrap(function() |
280 | Equip() |
281 | wait(0.1) |
282 | for i = 1,AutoAmout do |
283 | if Points == 100 then |
284 | DoTheFap(true) |
285 | else |
286 | DoTheFap(false) |
287 | end |
288 | wait() |
289 | UnFap() |
290 | wait() |
291 | end |
292 | end)() |
293 | end |
294 | |
295 | |
296 | coroutine.wrap(function() |
297 | while true do |
298 | FapCount.CFrame = H.CFrame + Vector3.new(0,2,0) |
299 | FapCountM.Name = "Fap Points: "..Points |
300 | if #Dks ~= 0 then |
301 | for Num,Get in pairs(Dks) do |
302 | pcall(function() |
303 | if Num == #Dks then |
304 | Get.BrickColor = BrickColor.new("Pink") |
305 | else |
306 | Get.BrickColor = BrickColor.new("Cool yellow") |
307 | end |
308 | end) |
309 | end |
310 | end |
311 | wait(0.03) |
312 | end |
313 | end)() |