This is part of a larger script.
Everything in this works. pGui is defined earlier
local pGui = game.Players.LocalPlayer.PlayerGui
It should be mentioned that the first code snippet is in a remote event connection. Everything else about that script works.
I even tried parenting the icon to game.Workspace, which remarkably worked fine. When I put it in pGui, or anything related to it, however, nothing appears.
EDIT: There are no errors or anything saying that I tried to index nil with “row” or “personaCooldownInfo” implying that anything doesn’t exist at the point of this script running. I even replaced all the dots in that statement with WaitForChild() and nothing changed. No infinite yield possible warning either, so it seems like it found it.
Everything in the remote event functions correctly.
Heck, I can even do icon:GetFullName() and it says game.Players.iiCant_Read.PlayerGui.personaCooldownInfo.row.(move name).
For some reason, reset on spawn was the issue. I guess it makes sense, as this is triggering on characteradded, so maybe that event gets fired right before reset on spawn recognizes you spawned. Not sure.