Basically, when players touch "Red" they should join on a table, and if there is a player inside, the String's Value should change to Player's Name
local playersIn = {}
local string1 = game.Workspace.player1
game.Workspace.red.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
table.insert(playersIn, hit.Parent)
end
end)
for i, v in pairs(playersIn) do
if v[1] then
while true do
wait()
string1.Value = v[1].Name
end
end
end

4 comments
It works perfectly fine, It's just that I don't really like using couretines, Is there a way without using them?
You can use the spawn function it acts very similar to a coroutine.
Also youtubemaster theres no point of referencing the player who hit the part on line 9 because its already been referenced on line 8.
Yes I know. And, DO NOT USE THE SPAWN FUNCTION. It is a bad habit since there can be delays and you should really just use coroutines instead of spawn.