The instant that the following conditions are met, a script's code is run in a new thread:
- Its Enabled property is true.
The script will continue to run until the above conditions are not met, it terminates, or it raises an error (unless that error is raised by a function connected to some event that is firing). Additionally, the thread will be stopped if the script or one of its ancestors is destroyed. A script will continue to run even if the Parent property is set to nil and the Script is not destroyed.
If you want to read or modify the source of a script that a user has open, use ScriptEditorService to interact with the Script Editor rather than directly modifying this property. Both ScriptEditorService:UpdateSourceAsync() and ScriptEditorService:GetEditorSource() can read or modify script content from the script editor if the script is opened. You can also read the source from the command line.