I am new to roblox game development and for some reason the script I am about to show only works in roblox studio and not the actual game. I can't post the full local script due to word count. I renamed Sound Service to Soundscape. Please help:
plr = game.Players.LocalPlayer
char = plr.Character
hrp = plr.Character.HumanoidRootPart
mode = false
tors = char.Torso
m = plr:GetMouse()
hum = char.Humanoid
char.Head.face.Texture = "http://www.roblox.com/asset/?id=988802990"
function sp()
local S = Instance.new("Sound",game.Soundscape)
S.SoundId = "rbxassetid://532798812"
S.Volume = 0.6
S.Looped = true
S:Play()
end
sp()
local acos = math.acos
local sqrt = math.sqrt
local Vec3 = Vector3.new
local fromAxisAngle = CFrame.fromAxisAngle
local function toAxisAngle(CFr)
local X,Y,Z,R00,R01,R02,R10,R11,R12,R20,R21,R22 = CFr:components()
local Angle = math.acos((R00+R11+R22-1)/2)
local A = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
A = A == 0 and 0.00001 or A
local B = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
B = B == 0 and 0.00001 or B
local C = (R21-R12)^2+(R02-R20)^2+(R10-R01)^2
C = C == 0 and 0.00001 or C
local x = (R21-R12)/sqrt(A)
local y = (R02-R20)/sqrt(B)
local z = (R10-R01)/sqrt(C)
return Vec3(x,y,z),Angle
end
function ApplyTrig(Num,Func)
local Min,Max = Func(0),Func(1)
local i = Func(Num)
return (i-Min)/(Max-Min)
--[[if Func == "sin" then
return (math.sin((1-Num)*math.pi)+1)/2
elseif Func == "cos" then
return (math.cos((1-Num)*math.pi)+1)/2
end]]
end
function LerpCFrame(CFrame1,CFrame2,Num)
local Vec,Ang = toAxisAngle(CFrame1:inverse()*CFrame2)
return CFrame1*fromAxisAngle(Vec,Ang*Num) + (CFrame2.p-CFrame1.p)*Num
end
function Crater(Torso,Radius)
spawn(function()
local Ray = Ray.new(char.Torso.Position,Vector3.new(0,-1,0)*10)
local Ignore = {}
for i,v in pairs(game:GetService("Players"):GetPlayers()) do
if v.Character ~= nil then
Ignore[#Ignore+1] = v.Character
end
end
local Hit,Pos,SurfaceNorm = workspace:FindPartOnRayWithIgnoreList(Ray,Ignore)
if Hit == nil then return end
local Parts = {}
for i = 1,360,10 do
local P = Instance.new("Part",char.Torso.Parent)
P.Anchored = true
P.FormFactor = "Custom"
P.BrickColor = Hit.BrickColor
P.Material = Hit.Material
P.TopSurface = "Smooth"
P.BottomSurface = "Smooth"
P.Size = Vector3.new(5,10,10)*(math.random(80,100)/100)
P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,7,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50)))
Parts[#Parts+1] = {P,P.CFrame,((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,1,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-45)*CFrame.Angles(math.rad(math.random(-50,-20)),math.rad(math.random(-15,15)),math.rad(math.random(-15,15))),P.Size}
if math.random(0,5) == 0 then -- rubble
local P = Instance.new("Part",char.Torso.Parent)
P.Anchored = true
P.CanCollide = false
P.FormFactor = "Custom"
P.BrickColor = Hit.BrickColor
P.Material = Hit.Material
P.TopSurface = "Smooth"
P.BottomSurface = "Smooth"
P.Size = Vector3.new(2,2,2)*(math.random(80,100)/100)
P.CFrame = ((CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))-Vector3.new(0,2.5,0))*CFrame.Angles(math.rad(math.random(-50,50)),math.rad(math.random(-50,50)),math.rad(math.random(-50,50)))
P.CanCollide = true
Parts[#Parts+1] = {P,P.CFrame,(CFrame.new(Pos,Pos+SurfaceNorm)*CFrame.Angles(math.rad(90),0,0))*CFrame.Angles(0,math.rad(i),0)*CFrame.new(0,0,-50)*CFrame.Angles(math.rad(math.random(-90,90)),math.rad(math.random(-90,90)),math.rad(math.random(-90,90))),P.Size}
end
end
for i = 0,1,0.05 do
for i2,v in pairs(Parts) do
v[1].CFrame = LerpCFrame(v[2],v[3],ApplyTrig(i,math.cos))
end
wait(0.02)
end
for i,v in pairs(Parts) do
if v[1].Size.X > 2.1 then
v[1].CFrame = v[1].CFrame+Vector3.new(0,2,0)
end
v[1].Anchored = false
end
for i = 0,1,0.05 do
for i2,v in pairs(Parts) do
v[1].Transparency = i
if i == 1 then
v[1]:Destroy()
elseif i >= 0.25 then
v[1].CanCollide = false
end
end
wait(0.02)
end
Parts = nil
end)
end

10 comments
and why exactly did you rename it Soundscape?
Just cause
Why rename it to Soundscape...
Idk, this isn't my own script.
I would try waiting for all the variables you declared on the top of the script using :WaitForChild(), this is usually the cause for scripts only working in studio. Also it would be a good idea to make all the variables on the top local variables.
Moderated for non constructive. This isn’t even your own code...
Script is still not working, it works in studio PARTLY now.
Didn't you already say the script worked in studio in your question?
Yes.
But now I changed it back so all of it works in studio.