I have a script that is meant for a GUI that displays the value of a StringValue in the workspace, but I don't know if I should use a LocalScript or Script.
You should always use local scripts for tasks related to user input, including everything related to mouse or keyboard input as well as user interfaces and camera manipulation. Tasks directly dependent on user input (including actions performed by tools in result to user input) should also be done with local scripts. For everything else, scripts that run on the server should be used. The server and the clients can communicate using the RemoteFunction and RemoteEvent objects.
You should use a LocalScript if you plan on using the features that LocalScripts give you.
But, if you're afraid of the StringValue in workspace being edited for some reason by the client (exploiter?), you can always hide it by putting it in ServerStorage instead. Then, you would use a regular Script to access it.
However, if the script is only doing a small task like that, I would probably trust the client to handle it and have the code execute through a LocalScript.
Use local scripts if you want it to be apart of for example something in the StarterPack to customize that object. Its used for 1 thing only. And you can use the regular script if your using it for a simple part. Like changing the appearance or an event. So local script and regular script are kinda alike.