I was using the shift lock in the camera script but instead of it being a key to toggle I made it check a value. And I’m using WaitForChild to wait for that value to appear.
The value is already there yet the script is still waiting.
It’s possible it’s just making (and destroying) the Backpack twice for whatever reason. Try to connect a ChildAdded to the player and check if the name is Backpack.
WaitForChild works fine, it’s just that they’re using WaitForChild on an old Backpack instance. It’s an undocumented(?) feature of Backpacks that on character creation a brand new Backpack instance is created.