Here's my script
local char = script.Parent --the npc
local hum = char:WaitForChild("Humanoid") --the npc's humanoid
local animation = hum:LoadAnimation(script.Animation) --finds the animation inside the script and loads it in the npc's humanoid
if char ~= nil then --this just checks if the npc exists
animation:Play() --plays the animation
wait(1)
game.StarterGui.ScreenGui.Frame.BackgroundTransparency = 0
end
Why won't the background appear after the animation?

2 comments
That is because you're using the StarterGui and not the PlayerGui. The StarterGui is what the PlayerGui clones out of, so the player's GUI is in the PlayerGui, not the StarterGui. If this is for an NPC i am assuming this is in a server script, meaning you'll need remotes.
Can you expand upon this, I know very little about scripting and that stuff...