The ServerScriptService seems to remove the items inside it when I test a fireball script in Studio.
Heres the code:
--StarterPlayerScripts
local UIS = game:GetService("UserInputService")
local mouse = game.Players.LocalPlayer:GetMouse()
local debounce = false
UIS.InputBegan:Connect(function(key, processed)
print("inputted")
if processed or debounce then return end
if key.KeyCode == Enum.KeyCode.Q then
debounce = true
print("q pressed")
game:GetService("ServerScriptService").FireballScript.RemoteEvent:FireServer(mouse.Hit.Position)
end
wait(1)
debounce = false
end)
--ServerScriptService (inside is a RemoteEvent called RemoteEvent)
script.RemoteEvent.OnServerEvent:Connect(function(Player, Mouse)
print("remote event fired")
local Fireball = game:GetService("ServerStorage").Fireball:Clone()
local Explosion = game:GetService("ServerStorage").Explosion:Clone()
local Character = Player.Character
Fireball.Position = Character.HumanoidRootPart.Position
Fireball.Parent = workspace
local velocity = Instance.new("BodyVelocity", Fireball)
velocity.Velocity = CFrame.new(Fireball.Position, Mouse).LookVector * 100
Fireball.Touched:Connect(function(Touched)
if Touched:IsDescendantOf(Character) then return end
Explosion.Position = Fireball.Position
Fireball:Destroy()
Explosion.Parent = workspace
if Touched.Parent:FindFirstChild("Humanoid") then
Touched.Parent:FindFirstChild("Humanoid"):TakeDamage(30)
end
wait(2)
for i = 1, 300 do
Explosion.Fire.Size = Explosion.Fire.Size - 0.08
Explosion.Fire.Heat = Explosion.Fire.Heat - 0.03
wait()
end
Explosion:Destroy()
end)
end)

2 comments
it dosent achually remove the contents inside SSS. It only appears that way because when you are testing you are in client mode. Change it to server mode and you will see the context. It is SERVER script service, which is a directory which stores scripts on the server. This is why you cannot see it when testing, only if you change the mode to the server.
glad you found your solution