В вашем коде есть несколько ошибок, из-за которых счетчик ap не увеличивается при касании куба. Вот исправленная версия и объяснение проблем:
Основные ошибки:
Touched – это событие, а не свойство. Нужно использовать :Connect() для подписки на него.
game.StarterGui не используется для текущего интерфейса. Нужно обращаться к game.Players.LocalPlayer.PlayerGui.
Бесконечный цикл while true do не нужен для обработки касаний.
Исправленный код:
lua
Copy
local ap = 0
local part = workspace.Part -- Замените "Part" на имя вашей детали
-- Получаем интерфейс игрока
local player = game.Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui"

:WaitForChild("ScreenGui"
local textLabel = gui:WaitForChild("TextLabel"
-- Обновляем текст
textLabel.Text = tostring(ap)
-- Обработка касания
part.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid"

then -- Проверяем, что коснулся игрок
ap += 1
textLabel.Text = tostring(ap)
end
end)
Что изменилось:
Touched теперь правильно подключен через :Connect.
Добавлена проверка Humanoid, чтобы счетчик увеличивался только при касании игрока (а не других объектов).
Работа с GUI исправлена – используется PlayerGui, а не StarterGui.
Убран бесконечный цикл – он не нужен для обработки событий.
Дополнительные советы:
Убедитесь, что:
Скрипт находится в Script (а не LocalScript), если работает с серверной частью.
Часть workspace.Part имеет правильное имя (замените Part на имя вашего куба).
В вашем ScreenGui есть TextLabel с точно таким же именем.
Если скрипт всё равно не работает, проверьте вывод ошибок в консоли Roblox Studio (View → Output).
local ap = 0
local part = workspace.Part -- Замените "Part" на имя вашей детали
-- Получаем интерфейс игрока
local player = game.Players.LocalPlayer
local gui = player:WaitForChild("PlayerGui"

:WaitForChild("ScreenGui"
local textLabel = gui:WaitForChild("TextLabel"
-- Обновляем текст
textLabel.Text = tostring(ap)
-- Обработка касания
part.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid"

then -- Проверяем, что коснулся игрок
ap += 1
textLabel.Text = tostring(ap)
end
end)