It runs and does the Print "save data" and "Data saved part but it doesn't actually save the text.
DataStore = game:GetService("DataStoreService")
ds1 = DataStore:GetDataStore("WordLog")
NewWords = game.StarterGui.Value
Gui = game.StarterGui.Computer.Frame.TextLabel.Text
Data = game.StarterGui.Data.Value
Gui = ds1:GetAsync(Data) or "0"
ds1:SetAsync(game.StarterGui.Computer.Frame.TextLabel.Text,Data)
NewWords.Changed:connect(function()
print("Saving Data")
ds1:SetAsync(game.StarterGui.Computer.Frame.TextLabel.Text,Data)
print("DataSaved")
end)

2 comments
It's because you're reading off of the StarterGui, not the PlayerGui
I know im doing that, I have a script that when a player type something into a text box it changes the StarterGui TextLabel. Thats what I want to save