I want to change all players GUIs text using a script in the workspace. I think it has something to do with getPlayers()?
Yes, it does.
You should use :GetPlayers() to loop through the players and change their GUI's respectively.
Here is an example:
for _,v in pairs(game:GetService("Players"):GetPlayers()) do v.PlayerGui:WaitForChild("ScreenGui").Frame.Text = "Text changed!" end