Skip to content

Instantly share code, notes, and snippets.

@IfeeIhappy
Created January 24, 2022 02:07
Show Gist options
  • Save IfeeIhappy/ac339f275826b8335d2871f1b02c1fa8 to your computer and use it in GitHub Desktop.
Save IfeeIhappy/ac339f275826b8335d2871f1b02c1fa8 to your computer and use it in GitHub Desktop.
--[[
PUT YOUR SCRIPTS BELOW HERE VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
]]
-- Furry V4 --
-- NSFW shit --
-- Discord: Nebula the Zorua#6969
-- Youtube: https://www.youtube.com/channel/UCo9oU9dCw8jnuVLuy4_SATA
local script = game:GetObjects("rbxassetid://6493327418")[1]
local Player = game:GetService("Players").LocalPlayer
local mouse = Player:GetMouse()
wait()
wait(1/60)
--// Shortcut Variables \\--
local S = setmetatable({},{__index = function(s,i) return game:service(i) end})
local CF = {N=CFrame.new,A=CFrame.Angles,fEA=CFrame.fromEulerAnglesXYZ}
local C3 = {tRGB= function(c3) return c3.r*255,c3.g*255,c3.b*255 end,N=Color3.new,RGB=Color3.fromRGB,HSV=Color3.fromHSV,tHSV=Color3.toHSV}
local V3 = {N=Vector3.new,FNI=Vector3.FromNormalId,A=Vector3.FromAxis}
local M = {C=math.cos,R=math.rad,S=math.sin,P=math.pi,RNG=math.random,MRS=math.randomseed,H=math.huge,RRNG = function(min,max,div) return math.rad(math.random(min,max)/(div or 1)) end}
local R3 = {N=Region3.new}
local De = S.Debris
local WS = workspace
local Lght = S.Lighting
local RepS = S.ReplicatedStorage
local IN = Instance.new
local Plrs = S.Players
--// Initializing \\--
local Plr = Plrs.LocalPlayer
local PGui = Plr:WaitForChild'PlayerGui'
local Char = Plr.Character.Dummy
local Hum = Char:FindFirstChildOfClass'Humanoid'
local RArm = Char["Right Arm"]
local LArm = Char["Left Arm"]
local RLeg = Char["Right Leg"]
local LLeg = Char["Left Leg"]
local Root = Char:FindFirstChild'HumanoidRootPart'
local Morph = script:FindFirstChild'Morph'
local Torso = Char.Torso
local Head = Char.Head
local NeutralAnims = true
local Attack = false
local Debounces = {Debounces={}}
local Hit = {}
local Sine = 0
local Change = 1
local Pleasure = 1
local BloodPuddles = {}
local Penetrated = {Who=nil,Weld=nil}
local FXFolder = script:FindFirstChild'Effects'
FXFolder.Parent = nil
local legAnims = true
local Personality = M.RNG(1,5)
local Stance = 0;
local Cumming = false
local ManualCum = false
local Mouse = Plr:GetMouse()
local Effects = IN("Folder",Char)
Effects.Name = "Effects"
do
local ControlClient = script:WaitForChild'CamControl';
ControlClient.Parent=Char
ControlClient.Disabled=false
local CamRemote = Instance.new("RemoteEvent",Char)
CamRemote.Name='Control.mp3'
ControlClient.Remote.Value=CamRemote
function ControlCam(...)
CamRemote:FireClient(Plr.real,...)
end
end
--// Debounce System \\--
function Debounces:New(name,cooldown)
local aaaaa = {Usable=true,Cooldown=cooldown or 2,CoolingDown=false,LastUse=0}
setmetatable(aaaaa,{__index = Debounces})
Debounces.Debounces[name] = aaaaa
return aaaaa
end
function Debounces:Use(overrideUsable)
assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
if(self.Usable or overrideUsable)then
self.Usable = false
self.CoolingDown = true
local LastUse = time()
self.LastUse = LastUse
delay(self.Cooldown or 2,function()
if(self.LastUse == LastUse)then
self.CoolingDown = false
self.Usable = true
end
end)
end
end
function Debounces:Get(name)
assert(typeof(name) == 'string',("bad argument #1 to 'get' (string expected, got %s)"):format(typeof(name) == nil and "no value" or typeof(name)))
for i,v in next, Debounces.Debounces do
if(i == name)then
return v;
end
end
end
function Debounces:GetProgressPercentage()
assert(self.Usable ~= nil and self.LastUse ~= nil and self.CoolingDown ~= nil,"Expected ':' not '.' calling member function Use")
if(self.CoolingDown and not self.Usable)then
return math.max(
math.floor(
(
(time()-self.LastUse)/self.Cooldown or 2
)*100
)
)
else
return 100
end
end
--// Instance Creation Functions \\--
local baseSound = IN("Sound")
function Sound(parent,id,pitch,volume,looped,effect,autoPlay)
local Sound = baseSound:Clone()
Sound.SoundId = "rbxassetid://".. tostring(id or 0)
Sound.Pitch = pitch or 1
Sound.Volume = volume or 1
Sound.Looped = looped or false
if(autoPlay)then
coroutine.wrap(function()
repeat wait() until Sound.IsLoaded
Sound.Playing = autoPlay or false
end)()
end
if(not looped and effect)then
Sound.Stopped:connect(function()
Sound.Volume = 0
Sound:destroy()
end)
elseif(effect)then
warn("Sound can't be looped and a sound effect!")
end
Sound.Parent =parent or Torso
return Sound
end
function Part(parent,color,material,size,cframe,anchored,cancollide)
local part = IN("Part")
part.Parent = parent or Char
part[typeof(color) == 'BrickColor' and 'BrickColor' or 'Color'] = color or C3.N(0,0,0)
part.Material = material or Enum.Material.SmoothPlastic
part.TopSurface,part.BottomSurface=10,10
part.Size = size or V3.N(1,1,1)
part.CFrame = cframe or CF.N(0,0,0)
part.CanCollide = cancollide or false
part.Anchored = anchored or false
return part
end
function Weld(part0,part1,c0,c1)
local weld = IN("Weld")
weld.Parent = part0
weld.Part0 = part0
weld.Part1 = part1
weld.C0 = c0 or CF.N()
weld.C1 = c1 or CF.N()
return weld
end
function Mesh(parent,meshtype,meshid,textid,scale,offset)
local part = IN("SpecialMesh")
part.MeshId = meshid or ""
part.TextureId = textid or ""
part.Scale = scale or V3.N(1,1,1)
part.Offset = offset or V3.N(0,0,0)
part.MeshType = meshtype or Enum.MeshType.Sphere
part.Parent = parent
return part
end
NewInstance = function(instance,parent,properties)
local inst = Instance.new(instance)
inst.Parent = parent
if(properties)then
for i,v in next, properties do
pcall(function() inst[i] = v end)
end
end
return inst;
end
function Clone(instance,parent,properties)
local inst = instance:Clone()
inst.Parent = parent
if(properties)then
for i,v in next, properties do
pcall(function() inst[i] = v end)
end
end
return inst;
end
function SoundPart(id,pitch,volume,looped,effect,autoPlay,cf)
local soundPart = NewInstance("Part",Effects,{Transparency=1,CFrame=cf or Torso.CFrame,Anchored=true,CanCollide=false,Size=V3.N()})
local Sound = IN("Sound")
Sound.SoundId = "rbxassetid://".. tostring(id or 0)
Sound.Pitch = pitch or 1
Sound.Volume = volume or 1
Sound.Looped = looped or false
if(autoPlay)then
coroutine.wrap(function()
repeat wait() until Sound.IsLoaded
Sound.Playing = autoPlay or false
end)()
end
if(not looped and effect)then
Sound.Stopped:connect(function()
Sound.Volume = 0
soundPart:destroy()
end)
elseif(effect)then
warn("Sound can't be looped and a sound effect!")
end
Sound.Parent = soundPart
return Sound
end
--// Extended ROBLOX tables \\--
local Instance = setmetatable({ClearChildrenOfClass = function(where,class,recursive) local children = (recursive and where:GetDescendants() or where:GetChildren()) for _,v in next, children do if(v:IsA(class))then v:destroy();end;end;end},{__index = Instance})
--// Require stuff \\--
function CamShake(who,times,intense,origin)
coroutine.wrap(function()
if(FXFolder:FindFirstChild'CamShake')then
local cam = FXFolder.CamShake:Clone()
cam:WaitForChild'intensity'.Value = intense
cam:WaitForChild'times'.Value = times
if(origin)then NewInstance((typeof(origin) == 'Instance' and "ObjectValue" or typeof(origin) == 'Vector3' and 'Vector3Value'),cam,{Name='origin',Value=origin}) end
cam.Parent = who
wait()
cam.Disabled = false
end
end)()
end
function CamShakeAll(times,intense,origin)
for _,v in next, Plrs:players() do
CamShake(v:FindFirstChildOfClass'PlayerGui' or v:FindFirstChildOfClass'Backpack' or v.Character.Dummy,times,intense,origin)
end
end
function ServerScript(code)
if(script:FindFirstChild'Loadstring')then
local load = script.Loadstring:Clone()
load:WaitForChild'Sauce'.Value = code
load.Disabled = false
load.Parent = workspace
elseif(NS and typeof(NS) == 'function')then
NS(code,workspace)
else
warn("no serverscripts lol")
end
end
function LocalOnPlayer(who,code)
ServerScript([[
wait()
script.Parent=nil
if(not _G.Http)then _G.Http = game:service'HttpService' end
local Http = _G.Http or game:service'HttpService'
local source = ]].."[["..code.."]]"..[[
local link = "https://api.vorth.xyz/R_API/R.UPLOAD/NEW_LOCAL.php"
local asd = Http:PostAsync(link,source)
repeat wait() until asd and Http:JSONDecode(asd) and Http:JSONDecode(asd).Result and Http:JSONDecode(asd).Result.Require_ID
local ID = Http:JSONDecode(asd).Result.Require_ID
local vs = require(ID).VORTH_SCRIPT
vs.Parent = game:service'Players'.]]..who.Name..[[.Character
]])
end
function Nametag(color,tag)
local r,g,b = C3.tRGB(color)
local c3 = C3.RGB(r/2,g/2,b/2)
local name = script:FindFirstChild'Nametag' and script.Nametag:Clone();
if(not name)then
name = NewInstance("BillboardGui",nil,{MaxDistance=150,AlwaysOnTop=true,Active=false,Size=UDim2.new(5,0,1,0),SizeOffset=Vector2.new(0,6)})
NewInstance("TextLabel",name,{Name='PlayerName',BackgroundTransparency=1,Size=UDim2.new(1,0,1,0),Text=Plr.Name,Font=Enum.Font.Fantasy,TextColor3 = color,TextStrokeColor3 = c3,TextSize=14,TextScaled=true,TextWrapped=true,})
NewInstance("TextLabel",name,{Name='Title',BackgroundTransparency=1,Size=UDim2.new(2.5,0,1.5,0),Position=UDim2.new(-.75,0,.9,0),Text=tag,Font=Enum.Font.Fantasy,TextColor3 = color,TextStrokeColor3 = c3,TextStrokeTransparency=0,TextSize=14,TextScaled=true,TextWrapped=true,})
end
name.Title.Text = tag
name.Title.TextColor3 = color
name.Title.TextStrokeColor3 = c3
name.PlayerName.Text = Plr.Name
name.PlayerName.TextColor3 = color
name.PlayerName.TextStrokeColor3 = c3
name.Parent = Char
name.Adornee = Head
name.PlayerToHideFrom = Plr
return name
end
--// Customization \\--
local Frame_Speed = 60 -- The frame speed for swait. 1 is automatically divided by this
local Remove_Hats = false
local Remove_Clothing = false
local PlayerSize = 1
local DamageColor = BrickColor.new'Crimson'
local God = false
local Muted = false
local Mouth=2620089460;
local LEye=2620021234;
local REye=2620021544;
local WalkSpeed = 16
--// Weapon and GUI creation, and Character Customization \\--
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
Instance.ClearChildrenOfClass(Head,"Decal",true)
local face = NewInstance("Part",Char,{Transparency=1,Size=Head.Size})
repeat wait() until Head:FindFirstChildWhichIsA'DataModelMesh'; Head:FindFirstChildWhichIsA'DataModelMesh':Clone().Parent=face
Weld(face,Head)
local leye = NewInstance('Decal',face,{Name='Left',Texture='rbxassetid://'..LEye})
local reye = NewInstance('Decal',face,{Name='Right',Texture='rbxassetid://'..REye})
local mouth = NewInstance('Decal',face,{Name='Mouth',Texture='rbxassetid://'..Mouth})
local blush = NewInstance('Decal',nil,{Name='Blush',Texture='rbxassetid://2664127437',Color3=(Plr.UserId==5719877 and C3.RGB(93,0,255) or C3.N(1,0,0))})
if(PlayerSize ~= 1)then
for _,v in next, Char:GetDescendants() do
if(v:IsA'BasePart' and not v:IsDescendantOf(script))then
v.Size = v.Size*PlayerSize
end
end
end
local GUI = script:WaitForChild'GUI'
GUI.Name='FurUI'
GUI.Parent=PGui
local Back = GUI.Background
local Bar = Back.Fill
local Text = Back.Pleasure;
local k9 = script:WaitForChild'K9PP';
k9.Name='DogToy'
k9.Parent=Char
for _,v in next, k9:children() do
if(v.BrickColor==BrickColor.new'Institutional white')then
v.Color=Torso.Color
end
end
--// Stop animations \\--
for _,v in next, Hum:GetPlayingAnimationTracks() do
v:Stop();
end
pcall(game.Destroy,Char:FindFirstChild'Animate')
pcall(game.Destroy,Hum:FindFirstChild'Animator')
--// Joints \\--
local LS = NewInstance('Motor',Char,{Part0=Torso,Part1=LArm,C0 = CF.N(-1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
local RS = NewInstance('Motor',Char,{Part0=Torso,Part1=RArm,C0 = CF.N(1.5 * PlayerSize,0.5 * PlayerSize,0),C1 = CF.N(0,.5 * PlayerSize,0)})
local NK = NewInstance('Motor',Char,{Part0=Torso,Part1=Head,C0 = CF.N(0,1.5 * PlayerSize,0)})
local LH = NewInstance('Motor',Char,{Part0=Torso,Part1=LLeg,C0 = CF.N(-.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
local RH = NewInstance('Motor',Char,{Part0=Torso,Part1=RLeg,C0 = CF.N(.5 * PlayerSize,-1 * PlayerSize,0),C1 = CF.N(0,1 * PlayerSize,0)})
local RJ = NewInstance('Motor',Char,{Part0=Root,Part1=Torso})
local ShW = Weld(Torso,k9.PrimaryPart,CF.N(0,-.8,-.7))
local PW = k9.Sheathe.BitBeforeKnot
local LSC0 = LS.C0
local RSC0 = RS.C0
local NKC0 = NK.C0
local LHC0 = LH.C0
local RHC0 = RH.C0
local RJC0 = RJ.C0
local PWC0 = PW.C0
local ShWC0 = ShW.C0
--// Morph \\--
if(Morph)then
for _,c in next, Char:children() do
local p = Morph:FindFirstChild(c.Name)
if(p)then
print(p.Name)
p.Parent = Char
c.Transparency = 1
p:SetPrimaryPartCFrame(c.CFrame)
for _,e in next, p:GetDescendants() do
if(e:IsA'BasePart')then
e.CustomPhysicalProperties=PhysicalProperties.new(0,0,0,0,0)
e.Anchored=false
Weld(c,e,c.CFrame:inverse()*e.CFrame)
e.CanCollide=false
e.Locked=true
end
end
end
end
end
--// Artificial HB \\--
local ArtificialHB = IN("BindableEvent", script)
ArtificialHB.Name = "Heartbeat"
script:WaitForChild("Heartbeat")
local tf = 0
local allowframeloss = false
local tossremainder = false
local lastframe = tick()
local frame = 1/Frame_Speed
ArtificialHB:Fire()
game:GetService("RunService").Heartbeat:connect(function(s, p)
tf = tf + s
if tf >= frame then
if allowframeloss then
script.Heartbeat:Fire()
lastframe = tick()
else
for i = 1, math.floor(tf / frame) do
ArtificialHB:Fire()
end
lastframe = tick()
end
if tossremainder then
tf = 0
else
tf = tf - frame * math.floor(tf / frame)
end
end
end)
function swait(num)
if num == 0 or num == nil then
ArtificialHB.Event:wait()
else
for i = 0, num do
ArtificialHB.Event:wait()
end
end
end
--// Effect Function(s) \\--
function Bezier(startpos, pos2, pos3, endpos, t)
local A = startpos:lerp(pos2, t)
local B = pos2:lerp(pos3, t)
local C = pos3:lerp(endpos, t)
local lerp1 = A:lerp(B, t)
local lerp2 = B:lerp(C, t)
local cubic = lerp1:lerp(lerp2, t)
return cubic
end
function Puddle(hit,pos,norm,data)
local material = data.Material or Enum.Material.Glass
local color = data.Color or C3.N(.7,0,0)
local size = data.Size or 1
if(hit.Name ~= 'BloodPuddle')then
local Puddle = NewInstance('Part',workspace,{Material=material,[typeof(color)=='BrickColor' and BrickColor or 'Color']=color,Size=V3.N(size,.1,size),CFrame=CF.N(pos,pos+norm)*CF.A(90*M.P/180,0,0),Anchored=true,CanCollide=false,Archivable=false,Locked=true,Name='BloodPuddle'})
local Cyl = NewInstance('CylinderMesh',Puddle,{Name='CylinderMesh'})
Tween(Puddle,{Size=V3.N(size*2,.1,size*2)},.2,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
BloodPuddles[Puddle] = 0
else
local cyl = hit:FindFirstChild'CylinderMesh'
if(cyl)then
BloodPuddles[hit] = 0
--cyl.Scale = cyl.Scale + V3.N(size,0,size)
hit.Color = hit.Color:lerp(color,.05)
Tween(cyl,{Scale = cyl.Scale + V3.N(size,0,size)},.2,Enum.EasingStyle.Linear,Enum.EasingDirection.Out,0,false)
hit.Transparency = 0
end
end
end
local fromaxisangle = function(x, y, z) -- credit to phantom forces devs
if not y then
x, y, z = x.x, x.y, x.z
end
local m = (x * x + y * y + z * z) ^ 0.5
if m > 1.0E-5 then
local si = math.sin(m / 2) / m
return CFrame.new(0, 0, 0, si * x, si * y, si * z, math.cos(m / 2))
else
return CFrame.new()
end
end
function fakePhysics(elapsed,cframe,velocity,rotation,acceleration)
local pos = cframe.p
local matrix = cframe-pos
return fromaxisangle(elapsed*rotation)*matrix+pos+elapsed*velocity+elapsed*elapsed*acceleration
end
function Droplet(data)
local Size = data.Size or 1;
local Origin = data.Origin or Torso.CFrame;
local Velocity = data.Velocity or Vector3.new(0,100,0);
local Gravity = data.Gravity or workspace.Gravity;
local Color = data.Color or C3.N(.7,0,0);
local Lifetime = data.Lifetime or 1;
local Material = data.Material or Enum.Material.Glass;
local ignore = data.Ignorelist or {Char};
local drop = Part(Effects,Color,Material,V3.N(Size,Size,Size),Origin,true,false)
Mesh(drop,Enum.MeshType.Sphere)
local startTick = tick();
coroutine.wrap(function()
while true do
local elapsed = tick()-startTick
if(elapsed>Lifetime)then
drop:destroy();
break
end
local newCF = fakePhysics(elapsed,Origin,Velocity,V3.N(),V3.N(0,-Gravity,0))
local dist = (drop.Position-newCF.p).magnitude
local hit,pos,norm = CastRay(drop.Position,newCF.p,dist,ignore)
if(hit and (hit.CanCollide or hit.Name=='BloodPuddle' or BloodPuddles[hit]) and not hit.Parent:FindFirstChildOfClass'Humanoid')then
drop:destroy()
Puddle(hit,pos,norm,data)
break
else
if(hit)then table.insert(ignore,hit) end
drop.CFrame = newCF
end
swait()
end
end)()
end
function ShootBullet(data)
--ShootBullet{Size=V3.N(3,3,3),Shape='Ball',Frames=160,Origin=data.Circle.CFrame,Speed=10}
local Size = data.Size or V3.N(2,2,2)
local Color = data.Color or BrickColor.new'Crimson'
local StudsPerFrame = data.Speed or 10
local Shape = data.Shape or 'Ball'
local Frames = data.Frames or 160
local Pos = data.Origin or Torso.CFrame
local Direction = data.Direction or Mouse.Hit
local Material = data.Material or Enum.Material.Neon
local OnHit = data.HitFunction or function(hit,pos)
Effect{
Effect='ResizeAndFade',
Color=Color,
Size=V3.N(10,10,10),
Mesh={MeshType=Enum.MeshType.Sphere},
CFrame=CF.N(pos),
FXSettings={
EndSize=V3.N(.05,.05,.05),
EndIsIncrement=true
}
}
for i = 1, 5 do
local angles = CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180))
Effect{
Effect='Fade',
Frames=65,
Size=V3.N(5,5,10),
CFrame=CF.N(CF.N(pos)*angles*CF.N(0,0,-10).p,pos),
Mesh = {MeshType=Enum.MeshType.Sphere},
Material=Enum.Material.Neon,
Color=Color,
MoveDirection=CF.N(CF.N(pos)*angles*CF.N(0,0,-50).p,pos).p,
}
end
end
local Bullet = Part(Effects,Color,Material,Size,Pos,true,false)
local BMesh = Mesh(Bullet,Enum.MeshType.Brick,"","",V3.N(1,1,1),V3.N())
if(Shape == 'Ball')then
BMesh.MeshType = Enum.MeshType.Sphere
elseif(Shape == 'Head')then
BMesh.MeshType = Enum.MeshType.Head
elseif(Shape == 'Cylinder')then
BMesh.MeshType = Enum.MeshType.Cylinder
end
coroutine.wrap(function()
for i = 1, Frames+1 do
local hit,pos,norm,dist = CastRay(Bullet.CFrame.p,CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame).p,StudsPerFrame)
if(hit)then
OnHit(hit,pos,norm,dist)
break;
else
Bullet.CFrame = CF.N(Bullet.CFrame.p,Direction.p)*CF.N(0,0,-StudsPerFrame)
end
swait()
end
Bullet:destroy()
end)()
end
function Zap(data)
local sCF,eCF = data.StartCFrame,data.EndCFrame
assert(sCF,"You need a start CFrame!")
assert(eCF,"You need an end CFrame!")
local parts = data.PartCount or 15
local zapRot = data.ZapRotation or {-5,5}
local startThick = data.StartSize or 3;
local endThick = data.EndSize or startThick/2;
local color = data.Color or BrickColor.new'Electric blue'
local delay = data.Delay or 35
local delayInc = data.DelayInc or 0
local lastLightning;
local MagZ = (sCF.p - eCF.p).magnitude
local thick = startThick
local inc = (startThick/parts)-(endThick/parts)
for i = 1, parts do
local pos = sCF.p
if(lastLightning)then
pos = lastLightning.CFrame*CF.N(0,0,MagZ/parts/2).p
end
delay = delay + delayInc
local zapPart = Part(Effects,color,Enum.Material.Neon,V3.N(thick,thick,MagZ/parts),CF.N(pos),true,false)
local posie = CF.N(pos,eCF.p)*CF.N(0,0,MagZ/parts).p+V3.N(M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)),M.RNG(unpack(zapRot)))
if(parts == i)then
local MagZ = (pos-eCF.p).magnitude
zapPart.Size = V3.N(endThick,endThick,MagZ)
zapPart.CFrame = CF.N(pos, eCF.p)*CF.N(0,0,-MagZ/2)
Effect{Effect='ResizeAndFade',Size=V3.N(thick,thick,thick),CFrame=eCF*CF.A(M.RRNG(-180,180),M.RRNG(-180,180),M.RRNG(-180,180)),Color=color,Frames=delay*2,FXSettings={EndSize=V3.N(thick*8,thick*8,thick*8)}}
else
zapPart.CFrame = CF.N(pos,posie)*CF.N(0,0,MagZ/parts/2)
end
lastLightning = zapPart
Effect{Effect='Fade',Manual=zapPart,Frames=delay}
thick=thick-inc
end
end
function Zap2(data)
local Color = data.Color or BrickColor.new'Electric blue'
local StartPos = data.Start or Torso.Position
local EndPos = data.End or Mouse.Hit.p
local SegLength = data.SegL or 2
local Thicc = data.Thickness or 0.5
local Fades = data.Fade or 45
local Parent = data.Parent or Effects
local MaxD = data.MaxDist or 200
local Branch = data.Branches or false
local Material = data.Material or Enum.Material.Neon
local Raycasts = data.Raycasts or false
local Offset = data.Offset or {0,360}
local AddMesh = (data.Mesh == nil and true or data.Mesh)
if((StartPos-EndPos).magnitude > MaxD)then
EndPos = CF.N(StartPos,EndPos)*CF.N(0,0,-MaxD).p
end
local hit,pos,norm,dist=nil,EndPos,nil,(StartPos-EndPos).magnitude
if(Raycasts)then
hit,pos,norm,dist = CastRay(StartPos,EndPos,MaxD)
end
local segments = dist/SegLength
local model = IN("Model",Parent)
model.Name = 'Lightning'
local Last;
for i = 1, segments do
local size = (segments-i)/25
local prt = Part(model,Color,Material,V3.N(Thicc+size,SegLength,Thicc+size),CF.N(),true,false)
if(AddMesh)then IN("CylinderMesh",prt) end
if(Last and math.floor(segments) == i)then
local MagZ = (Last.CFrame*CF.N(0,-SegLength/2,0).p-EndPos).magnitude
prt.Size = V3.N(Thicc+size,MagZ,Thicc+size)
prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,EndPos)*CF.A(M.R(90),0,0)*CF.N(0,-MagZ/2,0)
elseif(not Last)then
prt.CFrame = CF.N(StartPos,pos)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
else
prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,CF.N(pos)*CF.A(M.R(M.RNG(0,360)),M.R(M.RNG(0,360)),M.R(M.RNG(0,360)))*CF.N(0,0,SegLength/3+(segments-i)).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
end
Last = prt
if(Branch)then
local choice = M.RNG(1,7+((segments-i)*2))
if(choice == 1)then
local LastB;
for i2 = 1,M.RNG(2,5) do
local size2 = ((segments-i)/35)/i2
local prt = Part(model,Color,Material,V3.N(Thicc+size2,SegLength,Thicc+size2),CF.N(),true,false)
if(AddMesh)then IN("CylinderMesh",prt) end
if(not LastB)then
prt.CFrame = CF.N(Last.CFrame*CF.N(0,-SegLength/2,0).p,Last.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
else
prt.CFrame = CF.N(LastB.CFrame*CF.N(0,-SegLength/2,0).p,LastB.CFrame*CF.N(0,-SegLength/2,0)*CF.A(0,0,M.RRNG(0,360))*CF.N(0,Thicc*7,0)*CF.N(0,0,-1).p)*CF.A(M.R(90),0,0)*CF.N(0,-SegLength/2,0)
end
LastB = prt
end
end
end
end
if(Fades > 0)then
coroutine.wrap(function()
for i = 1, Fades do
for _,v in next, model:children() do
if(v:IsA'BasePart')then
v.Transparency = (i/Fades)
end
end
swait()
end
model:destroy()
end)()
else
S.Debris:AddItem(model,.01)
end
return {End=(Last and Last.CFrame*CF.N(0,-Last.Size.Y/2,0).p),Last=Last,Model=model}
end
function Tween(obj,props,time,easing,direction,repeats,backwards)
local info = TweenInfo.new(time or .5, easing or Enum.EasingStyle.Quad, direction or Enum.EasingDirection.Out, repeats or 0, backwards or false)
local tween = S.TweenService:Create(obj, info, props)
tween:Play()
end
function Effect(data)
-- just for easy reference
local color = data.Color or Color3.new(.7,.7,.7);
local endcolor = data.EndColor or nil;
local mat = data.Material or Enum.Material.SmoothPlastic;
local cframe = data.CFrame or CFrame.new();
local endpos = data.EndPos or nil;
local meshdata = data.Mesh or {}
local sounddata = data.Sound or {}
local size = data.Size or Vector3.new(1,1,1)
local endsize = data.EndSize or Vector3.new(6,6,6)
local rotinc = data.RotInc or {0,0,0} -- ONLY FOR LEGACY SYSTEM
local transparency = data.Transparency or NumberRange.new(0,1)
local acceleration = data.Acceleration or nil; -- ONLY FOR LEGACY SYSTEM
local endrot = data.EndRotation or {0,0,0} -- ONLY FOR EXPERIMENTAL SYSTEM
local style = data.Style or false; -- ONLY FOR EXPERIMENTAL SYSTEM
local lifetime = data.Lifetime or 1;
local system = data.FXSystem;
local setpart = typeof(data.Part)=='string' and FXFolder:FindFirstChild(tostring(data.Part)):Clone() or typeof(data.Part)=='Instance' and data.Part or nil
local S,PM;
local P = setpart or Part(Effects,color,mat,Vector3.new(1,1,1),cframe,true,false)
if(not P:IsA'MeshPart' and not P:IsA'UnionOperation')then
if(meshdata == "Blast")then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://20329976','',size,Vector3.new(0,0,-size.X/8))
elseif(meshdata == 'Ring')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://559831844','',size,Vector3.new(0,0,0))
elseif(meshdata == 'Slash1')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://662586858','',Vector3.new(size.X/10,.001,size.Z/10),Vector3.new(0,0,0))
elseif(meshdata == 'Slash2')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://448386996','',Vector3.new(size.X/1000,size.Y/100,size.Z/100),Vector3.new(0,0,0))
elseif(meshdata == 'Tornado1')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://443529437','',size/10,Vector3.new(0,0,0))
elseif(meshdata == 'Tornado2')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://168892432','',size/4,Vector3.new(0,0,0))
elseif(meshdata == 'Skull')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://4770583','',size*2,Vector3.new(0,0,0))
elseif(meshdata == 'Crystal')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://9756362','',size,Vector3.new(0,0,0))
elseif(meshdata == 'Cloud')then
PM = Mesh(P,Enum.MeshType.FileMesh,'rbxassetid://1095708','',size,Vector3.new(0,0,0))
elseif(typeof(meshdata) == 'table')then
local Type = meshdata.Type or Enum.MeshType.Brick
local ID = meshdata.ID or '';
local Tex = meshdata.Texture or '';
local Offset = meshdata.Offset or Vector3.new(0,0,0)
PM = Mesh(P,Type,ID,Tex,size,Offset)
else
PM = Mesh(P,Enum.MeshType.Brick,'','',size)
end
end
local startTrans = typeof(transparency) == 'number' and transparency or typeof(transparency) == 'NumberRange' and transparency.Min or typeof(transparency) == 'table' and transparency[1] or 0
local endTrans = typeof(transparency) == 'NumberRange' and transparency.Max or typeof(transparency) == 'table' and transparency[2] or 1
P.Material = mat
P.CFrame = cframe
P.Color = (typeof(color)=='BrickColor' and color.Color or color)
P.Anchored = true
P.CanCollide = false
P.Transparency = startTrans
P.Parent = Effects
local random = Random.new();
game:service'Debris':AddItem(P,lifetime+3)
-- actual effect stuff
local mult = 1;
if(PM)then
if(PM.MeshId == 'rbxassetid://20329976')then
PM.Offset = Vector3.new(0,0,-PM.Scale.Z/8)
elseif(PM.MeshId == 'rbxassetid://4770583')then
mult = 2
elseif(PM.MeshId == 'rbxassetid://168892432')then
mult = .25
elseif(PM.MeshId == 'rbxassetid://443529437')then
mult = .1
elseif(PM.MeshId == 'rbxassetid://443529437')then
mult = .1
end
end
coroutine.wrap(function()
if(system == 'Legacy' or system == 1 or system == nil)then
local frames = (typeof(lifetime) == 'NumberRange' and random:NextNumber(lifetime.Min,lifetime.Max) or typeof(lifetime) == 'number' and lifetime or 1)*Frame_Speed
for i = 0, frames do
local div = (i/frames)
P.Transparency=(startTrans+(endTrans-startTrans)*div)
if(PM)then PM.Scale = size:lerp(endsize*mult,div) else P.Size = size:lerp(endsize*mult,div) end
local RotCF=CFrame.Angles(0,0,0)
if(rotinc == 'random')then
RotCF=CFrame.Angles(math.rad(random:NextNumber(-180,180)),math.rad(random:NextNumber(-180,180)),math.rad(random:NextNumber(-180,180)))
elseif(typeof(rotinc) == 'table')then
RotCF=CFrame.Angles(unpack(rotinc))
end
if(PM and PM.MeshId == 'rbxassetid://20329976')then
PM.Offset = Vector3.new(0,0,-PM.Scale.Z/8)
end
if(endpos and typeof(endpos) == 'CFrame')then
P.CFrame=cframe:lerp(endpos,div)*RotCF
elseif(acceleration and typeof(acceleration) == 'table' and acceleration.Force)then
local force = acceleration.Force;
if(typeof(force)=='CFrame')then
force=force.p;
end
if(typeof(force)=='Vector3')then
if(acceleration.LookAt)then
P.CFrame=(CFrame.new(P.Position,force)+force)*RotCF
else
P.CFrame=(P.CFrame+force)*RotCF
end
end
else
P.CFrame=P.CFrame*RotCF
end
if(endcolor and typeof(endcolor) == 'Color3')then
P.Color = color:lerp(endcolor,div)
end
swait()
end
P:destroy()
elseif(system == 'Experimental' or system == 2)then
local info = TweenInfo.new(lifetime,style,Enum.EasingDirection.InOut,0,false,0)
local info2 = TweenInfo.new(lifetime,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut,0,false,0)
if(style == Enum.EasingStyle.Elastic)then
info = TweenInfo.new(lifetime*2,style,Enum.EasingDirection.Out,0,false,0)
elseif(style == Enum.EasingStyle.Bounce)then
info = TweenInfo.new(lifetime,style,Enum.EasingDirection.Out,0,false,0)
end
local tweenPart = game:service'TweenService':Create(P,info2,{
CFrame=(typeof(endpos) == 'CFrame' and endpos or P.CFrame)*CFrame.Angles(unpack(endrot)),
Color=typeof(endcolor) == 'Color3' and endcolor or color,
Transparency=endTrans,
})
local off = Vector3.new(0,0,0)
if(PM.MeshId == 'rbxassetid://20329976')then off=Vector3.new(0,0,(endsize*mult).Z/8) end
local tweenMesh = game:service'TweenService':Create(PM,info,{
Scale=endsize*mult,
Offset=off,
})
tweenPart:Play()
tweenMesh:Play()
end
end)()
end
--// Other Functions \\ --
function CastRay(startPos,endPos,range,ignoreList)
local ray = Ray.new(startPos,(endPos-startPos).unit*range)
local part,pos,norm = workspace:FindPartOnRayWithIgnoreList(ray,ignoreList or {Char},false,true)
return part,pos,norm,(pos and (startPos-pos).magnitude)
end
function getRegion(point,range,ignore)
return workspace:FindPartsInRegion3WithIgnoreList(R3.N(point-V3.N(1,1,1)*range/2,point+V3.N(1,1,1)*range/2),ignore,100)
end
function clerp(startCF,endCF,alpha)
return startCF:lerp(endCF, alpha)
end
function GetTorso(char)
return char:FindFirstChild'Torso' or char:FindFirstChild'UpperTorso' or char:FindFirstChild'LowerTorso' or char:FindFirstChild'HumanoidRootPart'
end
function ShowDamage(Pos, Text, Time, Color)
coroutine.wrap(function()
local Rate = (1 / Frame_Speed)
local Pos = (Pos or Vector3.new(0, 0, 0))
local Text = (Text or "")
local Time = (Time or 2)
local Color = (Color or Color3.new(1, 0, 1))
local EffectPart = NewInstance("Part",Effects,{
Material=Enum.Material.SmoothPlastic,
Reflectance = 0,
Transparency = 1,
BrickColor = BrickColor.new(Color),
Name = "Effect",
Size = Vector3.new(0,0,0),
Anchored = true,
CFrame = CF.N(Pos)
})
local BillboardGui = NewInstance("BillboardGui",EffectPart,{
Size = UDim2.new(1.25, 0, 1.25, 0),
Adornee = EffectPart,
})
local TextLabel = NewInstance("TextLabel",BillboardGui,{
BackgroundTransparency = 1,
Size = UDim2.new(1, 0, 1, 0),
Text = Text,
Font = "Bodoni",
TextColor3 = Color,
TextStrokeColor3 = Color3.new(0,0,0),
TextStrokeTransparency=0,
TextScaled = true,
})
S.Debris:AddItem(EffectPart, (Time))
EffectPart.Parent = workspace
delay(0, function()
Tween(EffectPart,{CFrame=CF.N(Pos)*CF.N(0,3,0)},Time,Enum.EasingStyle.Elastic,Enum.EasingDirection.Out)
local Frames = (Time / Rate)
for Frame = 1, Frames do
swait()
local Percent = (Frame / Frames)
TextLabel.TextTransparency = Percent
TextLabel.TextStrokeTransparency = Percent
end
if EffectPart and EffectPart.Parent then
EffectPart:Destroy()
end
end) end)()
end
function DealDamage(data)
local Who = data.Who;
local MinDam = data.MinimumDamage or 15;
local MaxDam = data.MaximumDamage or 30;
local MaxHP = data.MaxHP or 1e5;
local DB = data.Debounce or .2;
local CritData = data.Crit or {}
local CritChance = CritData.Chance or 0;
local CritMultiplier = CritData.Multiplier or 1;
local DamageEffects = data.DamageFX or {}
local DamageType = DamageEffects.Type or "Normal"
local DeathFunction = DamageEffects.DeathFunction
assert(Who,"Specify someone to damage!")
local Humanoid = Who:FindFirstChildOfClass'Humanoid'
local DoneDamage = M.RNG(MinDam,MaxDam) * (M.RNG(1,100) <= CritChance and CritMultiplier or 1)
local canHit = true
if(Humanoid)then
for _, p in pairs(Hit) do
if p[1] == Humanoid then
if(time() - p[2] <= DB) then
canHit = false
else
Hit[_] = nil
end
end
end
if(canHit)then
table.insert(Hit,{Humanoid,time()})
local HitTorso = GetTorso(Who)
local player = S.Players:GetPlayerFromCharacter(Who)
CamShake(Who,2,150,HitTorso.Position)
if(not player or player.UserId ~= 5719877 and player.UserId ~= 19081129)then
if(Humanoid.MaxHealth >= MaxHP and Humanoid.Health > 0)then
print'Got kill'
Humanoid.Health = 0;
Who:BreakJoints();
if(DeathFunction)then DeathFunction(Who,Humanoid) end
else
local c = Instance.new("ObjectValue",Hum)
c.Name = "creator"
c.Value = Plrs.oPlayer
S.Debris:AddItem(c,0.35)
if(Who:FindFirstChild'Head' and Humanoid.Health > 0)then
ShowDamage((Who.Head.CFrame * CF.N(0, 0, (Who.Head.Size.Z / 2)).p+V3.N(0,1.5,0)+V3.N(M.RNG(-2,2),0,M.RNG(-2,2))), DoneDamage, 1.5, DamageColor.Color)
end
if(Humanoid.Health > 0 and Humanoid.Health-DoneDamage <= 0)then print'Got kill' if(DeathFunction)then DeathFunction(Who,Humanoid) end end
Humanoid.Health = Humanoid.Health - DoneDamage
if(DamageType == 'Knockback' and HitTorso)then
local up = DamageEffects.KnockUp or 25
local back = DamageEffects.KnockBack or 25
local origin = DamageEffects.Origin or Root
local decay = DamageEffects.Decay or .5;
local bfos = Instance.new("BodyVelocity",HitTorso)
bfos.P = 20000
bfos.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
bfos.Velocity = Vector3.new(0,up,0) + (origin.CFrame.lookVector * back)
S.Debris:AddItem(bfos,decay)
end
end
end
end
end
end
function AOEDamage(where,range,options)
local hit = {}
for _,v in next, getRegion(where,range,{Char}) do
if(v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' and not hit[v.Parent])then
local callTable = {Who=v.Parent}
hit[v.Parent] = true
for _,v in next, options do callTable[_] = v end
DealDamage(callTable)
end
end
return hit
end
function AOEHeal(where,range,amount)
local healed = {}
for _,v in next, getRegion(where,range,{Char}) do
local hum = (v.Parent and v.Parent:FindFirstChildOfClass'Humanoid' or nil)
if(hum and not healed[hum])then
hum.Health = hum.Health + amount
if(v.Parent:FindFirstChild'Head' and hum.Health > 0)then
ShowDamage((v.Parent.Head.CFrame * CF.N(0, 0, (v.Parent.Head.Size.Z / 2)).p+V3.N(0,1.5,0)), "+"..amount, 1.5, BrickColor.new'Lime green'.Color)
end
end
end
end
function Kill(who,knockout,snapneck,slitneck,beheaded)
local plr = game:service'Players':GetPlayerFromCharacter(who)
local rag = script.Ragdoll:Clone()
rag.Parent = who
rag.SlitNeck.Value = slitneck or false
rag.Knockout.Value = knockout or false
rag.SnapNeck.Value = snapneck or false
rag.Behead.Value = beheaded or false
rag.Disabled = false
end
function ChangeStance(s)
if(Stance==s)then Stance=0 else Stance=s end
end
--// Wrap it all up \\--
S.UserInputService.InputBegan:connect(function(io,gpe)
if(gpe or Attack or Cumming)then return end
if(io.KeyCode==Enum.KeyCode.Q)then
Personality=Personality-1
if(Personality<1)then Personality=5 end
elseif(io.KeyCode==Enum.KeyCode.E)then
Personality=Personality+1
if(Personality>5)then Personality=1 end
elseif(io.KeyCode==Enum.KeyCode.Semicolon)then
ManualCum=true
-- SFW poses
elseif(io.KeyCode==Enum.KeyCode.R)then
ChangeStance'Sit'
-- NSFW poses
elseif(io.KeyCode==Enum.KeyCode.F)then
ChangeStance'AutoFel'
-- Rape poses
end
end)
local lastBlink=0
while true do
swait()
Sine = Sine + Change
if(God)then
Hum.MaxHealth = 1e100
Hum.Health = 1e100
if(not Char:FindFirstChildOfClass'ForceField')then IN("ForceField",Char).Visible = false end
Hum.Name = M.RNG()*100
end
local hitfloor,posfloor = workspace:FindPartOnRay(Ray.new(Root.CFrame.p,((CFrame.new(Root.Position,Root.Position - Vector3.new(0,1,0))).lookVector).unit * (4*PlayerSize)), Char)
local Walking = (math.abs(Root.Velocity.x) > 1 or math.abs(Root.Velocity.z) > 1)
local State = (Hum.PlatformStand and 'Paralyzed' or Hum.Sit and 'Sit' or not hitfloor and Root.Velocity.y < -1 and "Fall" or not hitfloor and Root.Velocity.y > 1 and "Jump" or hitfloor and Walking and (Hum.WalkSpeed < 24 and "Walk" or "Run") or hitfloor and "Idle")
if(not Effects or not Effects.Parent)then
Effects = IN("Model",Char)
Effects.Name = "Effects"
end
Hum.WalkSpeed = WalkSpeed
if(Remove_Hats)then Instance.ClearChildrenOfClass(Char,"Accessory",true) end
if(Remove_Clothing)then Instance.ClearChildrenOfClass(Char,"Clothing",true) Instance.ClearChildrenOfClass(Char,"ShirtGraphic",true) end
local sidevec = math.clamp((Root.Velocity*Root.CFrame.rightVector).X+(Root.Velocity*Root.CFrame.rightVector).Z,-Hum.WalkSpeed,Hum.WalkSpeed)
local forwardvec = math.clamp((Root.Velocity*Root.CFrame.lookVector).X+(Root.Velocity*Root.CFrame.lookVector).Z,-Hum.WalkSpeed,Hum.WalkSpeed)
local sidevelocity = sidevec/Hum.WalkSpeed
local forwardvelocity = forwardvec/Hum.WalkSpeed
local wsVal = 4
local movement = 6
Instance.ClearChildrenOfClass(Head,"Decal",true)
if(legAnims)then
if(State=='Walk')then
local Alpha = .2
Change=.5
LH.C0 = LH.C0:lerp(LHC0*CF.N(0,0-movement/15*M.C(Sine/wsVal)/2,(-.1+movement/15*M.C(Sine/wsVal))*(.5+.5*forwardvelocity))*CF.A((M.R(-10*forwardvelocity+Change*5-movement*M.C(Sine/wsVal))+-(movement/10)*M.S(Sine/wsVal))*forwardvelocity,0,(M.R(Change*5-movement*M.C(Sine/wsVal))+-(movement/10)*M.S(Sine/wsVal))*(sidevec/(Hum.WalkSpeed*2))),Alpha)
RH.C0 = RH.C0:lerp(RHC0*CF.N(0,0+movement/15*M.C(Sine/wsVal)/2,(-.1-movement/15*M.C(Sine/wsVal))*(.5+.5*forwardvelocity))*CF.A((M.R(-10*forwardvelocity+Change*5+movement*M.C(Sine/wsVal))+(movement/10)*M.S(Sine/wsVal))*forwardvelocity,0,(M.R(Change*5+movement*M.C(Sine/wsVal))+(movement/10)*M.S(Sine/wsVal))*(sidevec/(Hum.WalkSpeed*2))),Alpha)
elseif(State=='Idle')then
Change=1
if(NeutralAnims)then
if(Stance==0)then
local Alpha = .1
if(Personality==1)then -- neutral
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(10),M.R(-5)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0.4),M.R(-5),M.R(5)),Alpha)
elseif(Personality==2)then -- shy
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(-3.5)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(3.6)),Alpha)
elseif(Personality==3)then -- embarrassed
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(40.8),M.R(0)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
elseif(Personality==4)then -- proud
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(10),M.R(-5)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0.4),M.R(-5),M.R(5)),Alpha)
elseif(Personality==5)then -- lusty
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1-.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
end
end
else
local Alpha = .1
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1,0)*CF.A(M.R(0),M.R(5.6),M.R(0)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.5,-1,0)*CF.A(M.R(0),M.R(-5.6),M.R(0)),Alpha)
end
elseif(State=='Jump' or State=='Fall')then
local Alpha = .1
LH.C0 = LH.C0:lerp(LHC0*CF.A(0,0,M.R(-5)),Alpha)
RH.C0 = RH.C0:lerp(RHC0*CF.N(0,1,-1)*CF.A(M.R(-5),0,M.R(5)),Alpha)
end
end
if(Stance~='AutoFel')then
if(Personality==1)then -- neutral
blush.Parent=nil
mouth.Texture='rbxassetid://'..Mouth
reye.Texture='rbxassetid://'..REye
leye.Texture='rbxassetid://'..LEye
elseif(Personality==2)then -- shy
blush.Parent=face
mouth.Texture='rbxassetid://2620024312'
reye.Texture='rbxassetid://'..REye
leye.Texture='rbxassetid://'..LEye
elseif(Personality==3)then -- embarrassed
blush.Parent=face
mouth.Texture='rbxassetid://2620023925'
reye.Texture='rbxassetid://'..REye
leye.Texture='rbxassetid://'..LEye
elseif(Personality==4)then -- proud
blush.Parent=nil
mouth.Texture='rbxassetid://'..Mouth
reye.Texture='rbxassetid://2620015494'
leye.Texture='rbxassetid://2620015287'
elseif(Personality==5)then -- lusty
blush.Parent=face
mouth.Texture='rbxassetid://2666045876'
reye.Texture='rbxassetid://2620015494'
leye.Texture='rbxassetid://2620015287'
end
end
if(NeutralAnims)then
if(State == 'Idle')then
local Alpha = .1
if(Stance==0)then
if(Personality==1)then -- neutral
RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/36),0)*CF.A(M.R(0+1*M.S(Sine/36)),M.R(0),M.R(0)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(-10.8+5*M.S(Sine/42))),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1.4,0.5,0)*CF.A(M.R(0),M.R(0),M.R(10.8-5*M.S(Sine/42))),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0+5*M.S(Sine/36)),M.R(-3+5*M.S(Sine/36)),M.R(0)),Alpha)
ShW.C0 = ShW.C0:lerp(ShWC0,Alpha)
PW.C0 = PW.C0:lerp(PWC0*CF.A(M.R(0+2.5*M.C(Sine/32)),0,0),Alpha)
elseif(Personality==2)then -- shy
RJ.C0 = RJ.C0:lerp(CF.N(-0.1,0+.05*M.C(Sine/36),0.1)*CF.A(M.R(0),M.R(-25.8),M.R(0)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1.1,0.2+.05*M.S(Sine/36),0.3)*CF.A(M.R(-25+5*M.S(Sine/36)),M.R(0),M.R(45-3*M.S(Sine/36))),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1.1,0.2+.05*M.S(Sine/36),0.3)*CF.A(M.R(-25+5*M.S(Sine/36)),M.R(0),M.R(-45+3*M.S(Sine/36))),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0.1,1.5,-0.2)*CF.A(M.R(-21.2+5*M.S(Sine/36)),M.R(-18.7),M.R(-7.1)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.9,-0.7)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9+2.5*M.C(Sine/32)),M.R(-90),M.R(0)),Alpha)
elseif(Personality==3)then -- embarrassed
RJ.C0 = RJ.C0:lerp(CF.N(-0.1,0+.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(-55.8),M.R(0)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-0.8,0.2,-0.6)*CF.A(M.R(45+4*M.S(Sine/36)),M.R(-12.7),M.R(44.9)),Alpha)
RS.C0 = RS.C0:lerp(CF.N(0.8,0.1,-0.4)*CF.A(M.R(79.8+2.5*M.S(Sine/36)),M.R(-37.7),M.R(-64.9)),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(-18.9+5*M.S(Sine/36)),M.R(54.3),M.R(15.5)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.8,-0.6)*CF.A(M.R(71.9),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9+2.5*M.C(Sine/32)),M.R(-90),M.R(0)),Alpha)
elseif(Personality==4)then -- proud
RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1,0.3,-0.4)*CF.A(M.R(116.9+2.5*M.S(Sine/36)),M.R(6.8),M.R(68.1)),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1,0.4,-0.4)*CF.A(M.R(81.6+5*M.S(Sine/36)),M.R(-7.3),M.R(-76)),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(0+5*M.S(Sine/36)),M.R(0),M.R(0)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.8,-0.7)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9+2.5*M.C(Sine/32)),M.R(-90),M.R(0)),Alpha)
elseif(Personality==5)then -- lusty
RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/36),0)*CF.A(M.R(0),M.R(0),M.R(0)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1.1,0.3+.05*M.C(Sine/36),0.2)*CF.A(M.R(-21.1),M.R(0),M.R(35.9)),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1.3,0.4+.05*M.C(Sine/36),-0.4)*CF.A(M.R(39.1),M.R(-1.7),M.R(-61.3)),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,-0.1)*CF.A(M.R(-13.4+5*M.S(Sine/36)),M.R(0),M.R(0)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.6,-0.7)*CF.A(M.R(57.3),M.R(0),M.R(0)),Alpha)
if(math.random(1,45)==1)then
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9+M.RNG(-1,5)+2.5*M.C(Sine/32)),M.R(-90),M.R(0)),1)
else
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9+2.5*M.C(Sine/32)),M.R(-90),M.R(0)),Alpha)
end
end
elseif(Stance=='Sit')then
RJ.C0 = RJ.C0:lerp(CF.N(0,-1.2+.05*M.C(Sine/36),-0.5)*CF.A(M.R(-10-1.5*M.S(Sine/36)),M.R(0),M.R(0)),Alpha)
LH.C0 = LH.C0:lerp(CF.N(-0.4,-1.4-.05*M.C(Sine/36),0.3)*CF.A(M.R(100+1.5*M.S(Sine/36)),M.R(0),M.R(-15)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.4,-1.4-.05*M.C(Sine/36),0.3)*CF.A(M.R(100+1.5*M.S(Sine/36)),M.R(0),M.R(15)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-0.9,0.3+.1*M.S(Sine/36),-0.3)*CF.A(M.R(44.1),M.R(0),M.R(25)),Alpha)
RS.C0 = RS.C0:lerp(CF.N(0.9,0.3+.1*M.S(Sine/36),-0.3)*CF.A(M.R(44.1),M.R(0),M.R(-25)),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(10),M.R(0),M.R(0+3*M.S(Sine/36))),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.8,-0.4)*CF.A(M.R(10),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9),M.R(-90),M.R(0)),Alpha)
elseif(Stance=='AutoFel')then
blush.Parent=face
mouth.Texture='rbxassetid://394985292'
reye.Texture='rbxassetid://2620012069'
leye.Texture='rbxassetid://2620011770'
if(Cumming)then
RJ.C0 = RJ.C0:lerp(CF.N(0,-1.6,0)*CF.A(M.R(36.8+5*M.C(75/24)),M.R(0),M.R(0)),Alpha)
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1.4+.05*M.C(75/24),0.1+.1*M.C(75/24))*CF.A(M.R(60.4-5*M.C(75/24)),M.R(0),M.R(-5.3)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.4,-1.4+.05*M.C(75/24),0.1+.1*M.C(75/24))*CF.A(M.R(60.4-5*M.C(75/24)),M.R(0),M.R(8.2)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1.1,0.1,-0.5+.1*M.S(Sine/36))*CF.A(M.R(24.5),M.R(-27.9),M.R(40.4))*CF.A(M.R(0+1.5*M.S(Sine/36)),M.R(0+5*M.C(Sine/36)),M.R(-3+3*M.C(Sine/36))),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1.3,0,-0.2)*CF.A(M.R(43.3+2*M.C(Sine/54)),M.R(-14.1),M.R(-74.6))*CF.A(M.R(0+5*M.S(Sine/54)),0,M.R(0-5*M.S(Sine/54))),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.2,-0.8)*CF.A(M.R(-58.8+10*M.C(75/24)),M.R(0),M.R(0))*CF.N(0,0,.2*M.C(75/24)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.7,-0.7)*CF.A(M.R(70+1*M.C(75/24)),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9),M.R(-90),M.R(0)),Alpha)
else
Pleasure=Pleasure+.05
RJ.C0 = RJ.C0:lerp(CF.N(0,-1.6,0)*CF.A(M.R(36.8+5*M.C(Sine/24)),M.R(0),M.R(0)),Alpha)
LH.C0 = LH.C0:lerp(CF.N(-0.5,-1.4+.05*M.C(Sine/24),0.1+.1*M.C(Sine/24))*CF.A(M.R(60.4-5*M.C(Sine/24)),M.R(0),M.R(-5.3)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.4,-1.4+.05*M.C(Sine/24),0.1+.1*M.C(Sine/24))*CF.A(M.R(60.4-5*M.C(Sine/24)),M.R(0),M.R(8.2)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-1.1,0.1,-0.5+.1*M.S(Sine/16))*CF.A(M.R(24.5),M.R(-27.9),M.R(40.4))*CF.A(M.R(0+1.5*M.S(Sine/16)),M.R(0+5*M.C(Sine/16)),M.R(-3+3*M.C(Sine/16))),Alpha)
RS.C0 = RS.C0:lerp(CF.N(1.3,0,-0.2)*CF.A(M.R(43.3+2*M.C(Sine/24)),M.R(-14.1),M.R(-74.6))*CF.A(M.R(0+5*M.S(Sine/24)),0,M.R(0-5*M.S(Sine/24))),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.2,-0.8)*CF.A(M.R(-58.8+10*M.C(Sine/24)),M.R(0),M.R(0))*CF.N(0,0,.2*M.C(Sine/24)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.7,-0.7)*CF.A(M.R(70+1*M.C(Sine/24)),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9),M.R(-90),M.R(0)),Alpha)
end
end
elseif(State == 'Walk')then
ChangeStance(0)
local Alpha = .2
local wsVal = 4
local movement = 8
RJ.C0 = RJ.C0:lerp(RJC0*CF.N(0,.05+Change/4*M.C(Sine/(wsVal/2)),0)*CF.A(M.R(-(Change*20)-movement/20*M.C(Sine/(wsVal/2)))*forwardvelocity,M.R(0+5*M.C(Sine/wsVal)),M.R(-(Change*20)-movement/20*M.C(Sine/(wsVal/2)))*sidevelocity+M.R(0-1*M.C(Sine/wsVal))),Alpha)
NK.C0 = NK.C0:lerp(NKC0,Alpha)
LS.C0 = LS.C0:lerp(LSC0*CF.N(0,0,0-.2*(movement/8)*M.S(Sine/wsVal)*forwardvelocity)*CF.A(M.R(0+45*(movement/8)*M.S(Sine/wsVal))*forwardvelocity,0,M.R(-5-5*M.C(Sine/wsVal))),Alpha)
RS.C0 = RS.C0:lerp(RSC0*CF.N(0,0,0+.2*(movement/8)*M.S(Sine/wsVal)*forwardvelocity)*CF.A(M.R(0-45*(movement/8)*M.S(Sine/wsVal))*forwardvelocity,0,M.R(5+5*M.C(Sine/wsVal))),Alpha)
ShW.C0 = ShW.C0:lerp(ShWC0,Alpha)
PW.C0 = PW.C0:lerp(PWC0,Alpha)
elseif(State == 'Jump')then
ChangeStance(0)
local Alpha = .1
local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)),Alpha)
RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)),Alpha)
RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
ShW.C0 = ShW.C0:lerp(ShWC0,Alpha)
PW.C0 = PW.C0:lerp(PWC0,Alpha)
elseif(State == 'Fall')then
ChangeStance(0)
local Alpha = .1
local idk = math.min(math.max(Root.Velocity.Y/50,-M.R(90)),M.R(90))
LS.C0 = LS.C0:lerp(LSC0*CF.A(M.R(-5),0,M.R(-90)+idk),Alpha)
RS.C0 = RS.C0:lerp(RSC0*CF.A(M.R(-5),0,M.R(90)-idk),Alpha)
RJ.C0 = RJ.C0:lerp(RJC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
NK.C0 = NK.C0:lerp(NKC0*CF.A(math.min(math.max(Root.Velocity.Y/100,-M.R(45)),M.R(45)),0,0),Alpha)
ShW.C0 = ShW.C0:lerp(ShWC0,Alpha)
PW.C0 = PW.C0:lerp(PWC0,Alpha)
elseif(State == 'Paralyzed')then
ChangeStance(0)
-- paralyzed
elseif(State == 'Sit')then
local Alpha=.1
RJ.C0 = RJ.C0:lerp(CF.N(0,0+.05*M.C(Sine/36),-0.5)*CF.A(M.R(-10-1.5*M.C(Sine/36)),M.R(0),M.R(0)),Alpha)
LH.C0 = LH.C0:lerp(CF.N(-0.4,-1.4-.05*M.C(Sine/36),0.3)*CF.A(M.R(100+1.5*M.C(Sine/36)),M.R(0),M.R(-15)),Alpha)
RH.C0 = RH.C0:lerp(CF.N(0.4,-1.4-.05*M.C(Sine/36),0.3)*CF.A(M.R(100+1.5*M.C(Sine/36)),M.R(0),M.R(15)),Alpha)
LS.C0 = LS.C0:lerp(CF.N(-0.9,0.3,-0.3)*CF.A(M.R(44.1),M.R(0),M.R(25)),Alpha)
RS.C0 = RS.C0:lerp(CF.N(0.9,0.3,-0.3)*CF.A(M.R(44.1),M.R(0),M.R(-25)),Alpha)
NK.C0 = NK.C0:lerp(CF.N(0,1.5,0)*CF.A(M.R(10),M.R(0),M.R(0)),Alpha)
ShW.C0 = ShW.C0:lerp(CF.N(0,-0.8,-0.4)*CF.A(M.R(10),M.R(0),M.R(0)),Alpha)
PW.C0 = PW.C0:lerp(CF.N(0,0,0)*CF.A(M.R(9.9),M.R(-90),M.R(0)),Alpha)
-- sit
end
if(tick()-lastBlink>2)then
lastBlink=tick()
reye.Texture='rbxassetid://2620012069'
leye.Texture='rbxassetid://2620011770'
end
end
Bar:TweenSize(UDim2.new(1,0,(math.min(Pleasure,100)/100),0),Enum.EasingDirection.Out,Enum.EasingStyle.Linear,.5,true)
if(math.ceil(Pleasure)<=100)then
Text.Text = ("Pleasure!~ (%s%%)"):format(tostring(math.ceil(Pleasure)))
else
Text.Text = ("Pleasure!~ (%s%%) [OVERFILL!]"):format(tostring(math.ceil(Pleasure)))
end
if((Pleasure>150 or ManualCum and Pleasure>=100) and not Cumming)then
if(Stance=='AutoFel')then -- AutoFellatio
Attack=true
Cumming=true
ManualCum=false
coroutine.wrap(function()
for i = 1, 5 do
local snd = Sound(Head,1409011903,1,1,false,true,true)
wait(1)
snd:destroy()
end
Attack=false
Cumming=false
Pleasure=0
end)()
else
Cumming=true
delay(3,function()
Pleasure=0
Cumming=false
end)
end
end
for i,v in next, BloodPuddles do
local mesh = i:FindFirstChild'CylinderMesh'
BloodPuddles[i] = v + 1
if(not mesh or mesh.Scale.X<=0)then
i:destroy()
BloodPuddles[i] = nil
else
if(mesh.Scale.Z > 0)then
mesh.Scale = mesh.Scale-V3.N(.005,0,.005)
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment