Hi there!
I am in the middle of converting my game to StreamingEnabled. It appears that mobile has an issue with rendering something from ServerStorage that I'm trying to get. I changed my script from FindFirstChild to WaitForChild, with no avail.
The reason I know it's because of StreamingEnabled and potentially a "rendering" issue is because my script works fine in a blank baseplate with nothing there except for stuff in ServerStorage and streamingenabled turned on. In my super packed game, however, it does not work.
What is a reliable way of getting this to work? Would ReplicatedStorage be more reliable? Perhaps ReplicatedFirst, as this would cause these objects to render first into the workspace? Is there something I can change within my script? (I tried both ReplicatedStorage and ReplicatedFirst, neither of these work)
local ServerStorage = game:GetService("ServerStorage")
game.ReplicatedStorage.keys.animal.OnServerEvent:Connect(function(plrWhoFiredEvent)
local guy = plrWhoFiredEvent
guy.TeamColor = BrickColor.new("1031")
game.ServerStorage.powers:WaitForChild("AnimalConnection")
local AnimalConnection = game.ServerStorage.powers.AnimalConnection:clone()
AnimalConnection.Parent = guy.Backpack
I am also using MouseButton1Down in a GUI for this function. I know that not all functions are reliable for StreamingEnabled, I'm trying to get the hang of it. Maybe this is the problem?
Thanks!

2 comments
Assuming that you have a localscript that fires an event to a serverscript (and the script you have is the server script). You can put that script inside ServerScriptService and place the so called "powers" (the model or folder that stores the tool) in ServerScriptService. Now what you can do is script.Parent.powers:WaitForChild("AnimalConnection"). So you can just access an easier path
ohhh neat thank you Hakurem I like the way you think! Never thought of putting models in serverscriptservice.