← Все вопросы
Что значит nil в Lua и почему вылетает «attempt to index nil» в Roblox?
6
В Output красным: attempt to index nil with 'Position'. Гуглил — пишут что-то про nil. Что это вообще такое и почему мой скрипт падает на этой строке?
2 ответа
9
✓ Принятый ответ — помог автору
nil в Lua — это "ничего", "пусто", "такого объекта нет" (как None в Python или null). Ошибка attempt to index nil значит: ты пытаешься обратиться к свойству у того, чего не существует.
Типичный случай:
local part = workspace.MyPart -- если такой детали нет, part = nil
print(part.Position) -- БАХ: attempt to index nil with 'Position'
Почему part оказался nil:
- В Workspace нет объекта с именем
MyPart(опечатка в имени, или объект в другом месте дерева). - Объект ещё не создался к этому моменту.
Как чинить:
- Проверь имя в Explorer — оно регистрозависимо:
MyPart≠mypart. - Подстрахуйся проверкой:
local part = workspace:FindFirstChild("MyPart")
if part then
print(part.Position)
else
warn("деталь не найдена!")
end
FindFirstChild вернёт nil вместо краша, и ты сам решишь, что делать.
3
Быстрый способ найти причину: перед падающей строкой поставь print(part). Если в Output напечатается nil — значит проблема не в .Position, а в том, что сам part не нашёлся. Дальше ищи опечатку в имени или неправильный путь в дереве.
Ваш ответ
Войдите, чтобы ответить на вопрос.