local tool = Instance.new("Tool")
tool.Name = "floppa cube"
tool.RequiresHandle = false
tool.ToolTip = "hold floppa. admire floppa. BE floppa."
tool.GripPos = Vector3.new(0,0,.5)
tool.Parent = owner.Backpack
script.Parent = tool
local chr = script.Parent.Parent.Parent.Character
local hum = chr.Humanoid
local root = chr.HumanoidRootPart
local textures = {}
local equipped = false
local canMorph = true
local isFloppa = false
local block = Instance.new("Part")
block.Name = "Handle"
block.Massless = true
block.Size = Vector3.new(1,1,1)
block.Transparency = 1
block.CanCollide = false
block.Massless = true
block.Parent = tool
local blockWeld = Instance.new("Weld")
blockWeld.Part0 = root
blockWeld.Part1 = block
blockWeld.Enabled = false
blockWeld.Parent = root
local BLC0 = blockWeld.C0
hum:UnequipTools()
for i = 1,6 do
local tx = Instance.new("Texture")
if i == 1 then
tx.Face = "Top"
elseif i == 2 then
tx.Face = "Bottom"
elseif i == 3 then
tx.Face = "Front"
elseif i == 4 then
tx.Face = "Back"
elseif i == 5 then
tx.Face = "Left"
elseif i == 6 then
tx.Face = "Right"
end
tx.Name = "floppaTexture"
tx.Texture = "http://www.roblox.com/asset/?id=5858524313"
tx.Parent = block
table.insert(textures,tx)
end
local song = Instance.new("Sound")
song.Name = "Big Floppa"
song.Parent = block
song.Looped = true
song.Volume = .5
song.SoundId = "rbxassetid://5523793612"
song:Play()
local frames = 20
local currentFrame = 1
local rows = 4
local columns = 5
local currentRow,currentColumn = 0,0
local fps = 60
local size = block.Size
for i,v in pairs(textures) do
v.StudsPerTileU = columns*size.X
v.StudsPerTileV = rows*size.Y
end
local currentScreen = 1
coroutine.wrap(function()
while true do
for i = 1, frames do
currentColumn = currentColumn + 1
if currentColumn > columns then
currentColumn = 1
currentRow = currentRow + 1
end
if currentFrame > frames then
currentRow,currentColumn,currentFrame = 1,1,1
currentScreen = currentScreen + 1
if currentScreen > 3 then
currentScreen = 1
end
if currentScreen == 1 then
for i,v in pairs(textures) do
v.Texture = "http://www.roblox.com/asset/?id=5858524313"
end
elseif currentScreen == 2 then
for i,v in pairs(textures) do
v.Texture = "http://www.roblox.com/asset/?id=5858532132"
end
elseif currentScreen == 3 then
for i,v in pairs(textures) do
v.Texture = "http://www.roblox.com/asset/?id=5858535246"
end
end
end
for i,v in pairs(textures) do
v.OffsetStudsU = size.X*(currentColumn-1)
v.OffsetStudsV = size.Y*(currentRow-1)
end
currentFrame = currentFrame+1
wait(1/fps)
end
wait(1/fps)
end
end)()
tool.Equipped:Connect(function()
equipped = true
if isFloppa == false then
song:Resume()
end
end)
tool.Unequipped:Connect(function()
equipped = false
if isFloppa == false then
song:Pause()
end
end)
tool.Activated:Connect(function()
if isFloppa == false then
local ra = chr:FindFirstChild("Right Arm") or chr:FindFirstChild("RightHand")
ra:FindFirstChild("RightGrip").Enabled = false
end
if canMorph == true and equipped == true then
canMorph = false
block.Parent = chr
blockWeld.Enabled = true
block.Name = 'floppa'
blockWeld.C0 = BLC0 * CFrame.new(1.5,.5,-1.5)
for i,v in pairs(chr:GetDescendants()) do
if (v.ClassName == "Part" or v:IsA("MeshPart") and v.Name ~= "HumanoidRootPart" and v.Name ~= "floppa") or ((v.ClassName == "Decal" or v.ClassName == "Texture") and v.Name ~= "floppaTexture") then
local transparencyTween
local floppaTween
local floppaWeldTween1
local floppaWeldTween2
local soundTween
if isFloppa == false then
transparencyTween = game:GetService("TweenService"):Create(v,TweenInfo.new(3),{Transparency = 1})
floppaTween = game:GetService("TweenService"):Create(block,TweenInfo.new(3),{Size = Vector3.new(5,5,5),Transparency = 0})
floppaWeldTween1 = game:GetService("TweenService"):Create(blockWeld,TweenInfo.new(3),{C0 = BLC0 * CFrame.new(1.5,2.5,0)})
floppaWeldTween2 = game:GetService("TweenService"):Create(blockWeld,TweenInfo.new(3),{C0 = BLC0 * CFrame.new(0,1.5,0)})
soundTween = game:GetService("TweenService"):Create(song,TweenInfo.new(3),{Volume = .75})
elseif isFloppa == true then
transparencyTween = game:GetService("TweenService"):Create(v,TweenInfo.new(3),{Transparency = 0})
floppaTween = game:GetService("TweenService"):Create(block,TweenInfo.new(3),{Size = Vector3.new(1,1,1),Transparency = 0})
floppaWeldTween1 = game:GetService("TweenService"):Create(blockWeld,TweenInfo.new(3),{C0 = BLC0 * CFrame.new(0,3.5,-1.5)})
floppaWeldTween2 = game:GetService("TweenService"):Create(blockWeld,TweenInfo.new(3),{C0 = BLC0 * CFrame.new(1.5,-1.5,0)})
soundTween = game:GetService("TweenService"):Create(song,TweenInfo.new(3),{Volume = .5})
end
transparencyTween:Play()
floppaTween:Play()
floppaWeldTween1:Play()
soundTween:Play()
task.spawn(function()
task.wait(3)
transparencyTween:Cancel()
floppaTween:Cancel()
floppaWeldTween1:Cancel()
floppaWeldTween2:Play()
task.wait(3)
floppaWeldTween2:Cancel()
end)
end
end
task.wait(6)
if isFloppa == false then
isFloppa = true
elseif isFloppa == true then
isFloppa = false
blockWeld.Enabled = false
block.Parent = tool
block.Name = 'Handle'
local ra = chr:FindFirstChild("Right Arm") or chr:FindFirstChild("RightHand")
ra:FindFirstChild("RightGrip").Enabled = true
end
canMorph = true
end
end)
local t = tick()
game:GetService("RunService").Heartbeat:Connect(function(delta)
t = t + delta*30
if script.Parent.Parent.Parent == workspace then
chr = script.Parent.Parent
hum = chr.Humanoid
root = chr.HumanoidRootPart
blockWeld.Part0 = root
blockWeld.Parent = root
end
size = block.Size
for i,v in pairs(textures) do
v.StudsPerTileU = columns*size.X
v.StudsPerTileV = rows*size.Y
end
if isFloppa == true then
blockWeld.C0 = blockWeld.C0:Lerp(BLC0 * CFrame.new(0,1.5 + math.sin(t/5)/2,0) * CFrame.Angles(math.sin(t/150)*10,math.cos(t/150)*10,-math.cos(t/150)*10),.3)
end
end)