EasyDev | Grape Studio
63 subscribers
11 photos
4 links
Вопросы, запросы, предложения, сотрудничество — @IliaGrape

Канал для разработчиков игр в Roblox Studio, Unity, Scratch

Индивидуальные занятия для любого уровня. Практика, механики, скрипты, игры
Download Telegram
Channel photo updated
⭐️ Что такое Lua и зачем он нужен в Roblox Studio

Lua — это язык программирования, на котором создаются скрипты в Roblox Studio. Он нужен, чтобы игра ожила: персонажи двигались, объекты реагировали на игрока, появлялись эффекты, срабатывали диалоги и механики.

Lua — простой или сложный?
Lua считается одним из самых простых языков для новичков.
*️⃣ короткий и понятный, нет лишних сложностей
*️⃣ легко читать и писать даже тем, кто только начал изучать программирование
*️⃣подходит для быстрых экспериментов в Roblox Studio

✔️ Почему это плюс для начинающего?
*️⃣начинающий пользователь не пугается сложного синтаксиса
*️⃣можно быстро видеть результат своих действий прямо в Roblox Studio
*️⃣Lua помогает понять основы программирования, которые потом пригодятся в других языках

✔️ Сравнение с другими языками
*️⃣Другие языки (C++, Java) сложнее для новичков — больше правил, точек с запятой, фигурных скобок и типов данных.
*️⃣Python — тоже простой и популярный язык. Lua похож на Python: оба читаются почти как обычный текст, нет лишних символов. Это значит, что переход на Python потом будет легче, если захочешь изучать другие языки.
Please open Telegram to view this post
VIEW IN TELEGRAM
4111
⭐️ Что такое скрипт? Регистр, пробелы и переносы строк

📝 Скрипт(Script) — это набор команд, которые мы пишем в Roblox Studio на языке Lua. 🧠 Команды говорят игре, что делать: двигать объект, изменять скорость, открывать дверь или запускать эффект.
Мы как будто объясняем Roblox, как должна вести себя игра.

✏️ Для кого мы пишем команды?
Мы пишем команды для игры(компьютера) и объектов в ней. Игра(компьютер) “читает” скрипт и выполняет команды точно так, как мы их написали.

❗️Когда пишем скрипты в Roblox Studio на Lua, важно следить за регистром букв(БОЛЬШИМИ и маленькими), пробелами и переносами строк. Это помогает коду работать правильно и быть читаемым.

🟣Регистр букв. Lua чувствителен к регистру — это значит, что заглавные и строчные буквы имеют разное значение.
Например: Part и part — это не одно и то же слово. Для нас они выглядят почти одинаково, но Roblox читает их как два разных объекта.
💡 Ошибки в регистре — одна из самых частых причин, почему скрипт не работает.

🟣Пробелы и переносы строк. Roblox (а точнее, язык Lua) не обращает внимания на количество пробелов и пустых строк.
Это значит, что можно писать команды подряд, а можно — оставлять между ними расстояние. Но пробелы и пропуски строкони делают код понятным Разбивая команды на отдельные блоки, легче понять, что делает скрипт.
Please open Telegram to view this post
VIEW IN TELEGRAM
411
⭐️ Знаки препинания в скриптах Roblox Studio (Lua)

Когда ты пишешь код в Roblox Studio, ты используешь язык Lua.
А значит — знаки препинания здесь не просто «украшения», а важные символы, которые говорят компьютеру, что именно ты хочешь сделать.

Сегодня разберём основные знаки препинания,
а про них более подробно — и про другие, которые пока не упомянули — поговорим в следующих постах ✏️

Точка (.)
Используется, чтобы обратиться к содержимому объекта — его дочерним элементам или свойствам.

Например:
game.Workspace.Part

🔜 Из game мы заходим в Workspace, а из него — в Part.
Как будто открываем папку внутри папки 📁📂


А если написать:
part.Transparency = 0.5

🔜 Мы обращаемся к свойству Transparency(невидимость) и меняем его значение.

Кавычки (" " и ' ')
Обе пары — работают одинаково. Lua понимает и " " и ' ' как строку (текст).

Пример:
print("Привет, мир!")
print('Привет, мир!')

🔜 Оба варианта верны.

Чаще всего кавычки нужны для:

🔘написания текста (например, для вывода сообщений);
🔘указания имён объектов в коде:
workspace:FindFirstChild("Door")

🔜 Здесь "Door" — имя объекта, к которому мы обращаемся.

Две черты (--)
Это комментарий. Код после них не выполняется — это просто пояснение для тебя или других разработчиков:
-- Это подсказка, а не код
Please open Telegram to view this post
VIEW IN TELEGRAM
5111
✔️ Точка
Точка ( . ) в Lua — это как «войти внутрь» объекта. Она показывает, что мы берём что-то, что принадлежит этому объекту: другой объект, свойство или событие.

🔵 Пример. Попадание в другие объекты:
game.Workspace.Part

🔘 game — это весь мир Roblox.
🔘 Workspace — это место, где лежат все части и модели.
🔘 Part — конкретный объект.
🔜 Точка помогает «спуститься» внутрь объектов: сначала из game попасть в Workspace, потом из Workspace — в Part.
Как будто открываем папку внутри папки 📁📂


🔵 Пример. Обращение к свойствам объекта:
part.Position = Vector3.new(0, 10, 0)
part.BrickColor = BrickColor.new("Bright red")
part.Transparency = 0.5

🔜 Через точку мы меняем свойства объекта:
🟡где он будет находиться (Position)
🟡какого цвета (BrickColor) он будет
🟡 задаём значение Transparency (невидимости)

🔵 Пример. Подключение событий:
part.Touched:Connect(function(hit)
print("Кто-то коснулся детали!")
end)

Touched — это событие, которое происходит, когда объект трогают.
Через тут точку мы берём событие, а через двоеточие : вызываем метод Connect, чтобы сказать: «Когда случится событие, выполни эту функцию».
🔜То есть точка сама по себе показывает, к чему мы обращаемся: объект, свойство или событие. А уже дальше, если нужно что-то выполнить, может идти двоеточие и метод.
Please open Telegram to view this post
VIEW IN TELEGRAM
311
👻 Что такое события в скриптах Roblox Studio

События (Events) — это сигналы, которые сообщают скрипту, что что-то произошло.
Например:
• игрок нажал кнопку,
• персонаж коснулся детали,
• объект появился в игре,
• время дошло до нужного момента и т.д.

✏️ Проще говоря: событие — это триггер (причина запуска реакции), который запускает код/скрипт.

Почему к событиям “подключаются” функции?
Сами события ничего не делают — они просто “сообщают”, что произошло.
Чтобы на это отреагировать, мы подключаем функцию (через :Connect()),
которая выполнится, когда событие сработает (после каких условий сработает).

Пример 👇
local part = script.Parent

part.Touched:Connect(function(hit)
print("Кто-то коснулся детали!")
end)


🔵 Здесь событие Touched сообщает, что парт был тронут.
🔵 Через :Connect() мы “подписываемся” на это событие и запускаем функцию.
🔵 Функция — это реакция: что именно произойдёт, когда событие случится.

🧠 Итого:
🔘 Событие = “Случилось что-то”.
🔘 Функция = “Что делаем, когда случилось”.
🔘 :Connect() = “Связываем одно с другим”.
Please open Telegram to view this post
VIEW IN TELEGRAM
311
⚡️ Cобытия взаимодействия (1 часть)

Разберём 🎮 события взаимодействия в Roblox Studio подробнее — с объяснением, когда именно они срабатывают, и понятными примерами кода.

1️⃣ MouseClick 🖱

🛠 Когда срабатывает?
Когда игрок кликает мышкой по объекту, у которого есть ClickDetector.

Пример:
local part = script.Parent
local click = part:WaitForChild("ClickDetector")

click.MouseClick:Connect(function(player)
print(player.Name .. " кликнул по детали!")
part.BrickColor = BrickColor.Random()
end)

⚙️ ClickDetector нужно вставить внутрь детали (Part).
Можно задать MaxActivationDistance в Properties, чтобы ограничить дистанцию, с которой можно кликать.

2️⃣ Touched 👉

🛠 Когда срабатывает?
Когда одна часть касается другой — например, игрок наступает на платформу или парт коснулся другого парта.

Пример:
local part = script.Parent

part.Touched:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
print(character.Name .. " наступил на платформу!")
part.BrickColor = BrickColor.new("Bright green")
end
end)

⚙️ hit — это объект, который коснулся детали.
Часто проверяют, есть ли в родителе Humanoid, чтобы убедиться, что это игрок.

3️⃣ Equipped / Unequipped 🔨

🛠 Когда срабатывает?
🔵Equipped — инструмент взяли в руку.
🔵Unequipped — инструмент убрали.

Пример:
local tool = script.Parent

tool.Equipped:Connect(function()
print("Игрок взял инструмент в руку!")
end)

tool.Unequipped:Connect(function()
print("Игрок убрал инструмент.")
end)

⚙️ Можно использовать, чтобы, например, включать анимацию или подсказку, когда оружие в руках.

4️⃣ Triggered ⌨️

🛠 Когда срабатывает?
Когда игрок взаимодействует с ProximityPrompt (нажимает клавишу E рядом с объектом).

Пример:
local prompt = script.Parent:WaitForChild("ProximityPrompt")

prompt.Triggered:Connect(function(player)
print(player.Name .. " активировал подсказку!")
script.Parent.BrickColor = BrickColor.new("Really red")
end)

⚙️ В ProximityPromptProperties) можно задать:
🔘ActionText — надпись действия ("Открыть", "Взять", "Поговорить").
🔘ObjectText — подпись объекта ("Сундук", "NPC").
Please open Telegram to view this post
VIEW IN TELEGRAM
4221
🌟 Быстрые команды Roblox Studio - часть 1

🟣Alt + X — открыть / закрыть Explorer

🟢 Ctrl + D — дублировать выбранный объект
🟢 Ctrl + C / Ctrl + V — копировать / вставить выбранный объект
🟢 Ctrl + X / Ctrl + V — вырезать (объект удалиться) / вставить
🟢 Ctrl + A — выбрать всё (все объекты/весь текст)
🟢 Ctrl + Z — отменить действие
🟢 Ctrl + Y — вернуть действие (если случайно отменил)
🟢 Ctrl + G — сгруппировать выбранные объекты в Model
🟢 Ctrl + U — разбирает группу обратно на отдельные части
🟢 Ctrl + Shift + G — создать Union из выбранных объектов
🟢 Ctrl + Shift + U — разбирает Union обратно на отдельные части
🟢 Ctrl + Shift + N — Part/Union становится NegativePartом
Please open Telegram to view this post
VIEW IN TELEGRAM
411
Бег через Shift

🏃‍♂️ Как это работает 🏃‍♀️
Когда игрок зажимает клавишу Shift, персонаж начинает бежать быстрее, а когда отпускаетвозвращается к обычной скорости.

‼️ Важно ‼️
— Требуется создать LocalScript
— Скрипт нужно добавить в папку StarterCharacterScripts (Папка находится Explorer→ StarterPlayer)
— Работает только локально (для конкретного игрока)
— Можно менять значения скорости под себя

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local UserInputService = game:GetService("UserInputService")

local normalSpeed = 16 -- обычная скорость
local newSpeed = 35 -- скорость при беге

UserInputService.InputBegan:Connect(function(input, isProcessed)
if isProcessed then return end
if input.KeyCode == Enum.KeyCode.LeftShift then
humanoid.WalkSpeed = newSpeed
end
end)

UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Enum.KeyCode.LeftShift then
humanoid.WalkSpeed = normalSpeed
end
end)


Изменяй в скрипте строчку:
local newSpeed = X

где X - желаемая скорость

💡 На заметку: Стандартная скорость (WalkSpeed) персонажа в Roblox = 16
Please open Telegram to view this post
VIEW IN TELEGRAM
522
🎨 Парт меняет цвет 👨‍🎨

🛠 Как это работает 🛠
Коснулся парта → Парт меняет цвет

‼️Важно‼️
— Script необходимо добавить в Part.
— Эффект будет работать только при касании персонажа.
— Part в Properties должен иметь значения:
Anchored = ☑️ true

Парт меняет цвет навсегда:
local part = script.Parent

part.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid then
part.BrickColor = BrickColor.new("Bright red")
end
end)


Парт меняет цвет и через 2 секунды возвращается в исходный цвет:
local part = script.Parent
local touched = false
local originalColor = part.BrickColor

part.Touched:Connect(function(otherPart)
local humanoid = otherPart.Parent:FindFirstChild("Humanoid")
if humanoid then
if touched == false then
touched = true
part.BrickColor = BrickColor.new("Bright red")
wait(2) -- время до возврата
part.BrickColor = originalColor
touched = false
end
end
end)


Изменяй в скрипте строчку:
part.BrickColor = BrickColor.new("COLOR")

где COLOR - это название желаемого цвета.

💡 На заметку. Названия всех цветов можно выбрать через палитру (BrickColor) в свойствах парта в Roblox Studio.
Please open Telegram to view this post
VIEW IN TELEGRAM
4211
Супер-прыжок через Alt 💯

🛠 Как это работает 🛠
Когда игрок зажимает клавишу LeftAlt, персонаж супер-высоко прыгает

‼️ Важно ‼️
— LocalScript нужно добавить в папку StarterCharacterScripts (Папка находится Explorer→ StarterPlayer)
— Требуется создать именно LocalScript
— Работает только локально (для конкретного игрока)
— Можно менять высоту прыжка под себя

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRoot = character:WaitForChild("HumanoidRootPart")
local UIS = game:GetService("UserInputService")

UIS.InputBegan:Connect(function(input, processed)
if processed then return end
if input.KeyCode == Enum.KeyCode.LeftAlt then
humanoidRoot.Velocity = Vector3.new(0, 100, 0) -- сила прыжка (можно менять)
end
end)


Изменяй в скрипте строчку:
humanoidRoot.Velocity = Vector3.new(0, X, 0)

где X - это желаемая высота супер-прыжка

Изменяй в скрипте строчку:
if input.KeyCode == Enum.KeyCode.Y

где Y - желаемая кнопка, которая будет супер-прыжка
4211
🔥 Горячие клавиши Roblox Studio - часть 2

📸 Камера:
🟡W / A / S / D — движение камерой Вперёд/Влево/Назад/Вправо
🟡Q / E — перемещение камеры Вверх/Вниз
🟡F — мгновенно перемещает камеру к выбранному объекту (Focus)

🔁 Инструменты и трансформация:
🟣1 / 2 / 3 / 4 — переключение инструментов:
🔘 1 — Select (выбор)
🔘 2 — Move (перемещение)
🔘 3 — Scale (масштаб)
🔘 4 — Rotate (поворот)
🟣Ctrl + R — поворот объекта на вертикальной оси
🟣Ctrl + T — наклон объект

✏️Работа с объектами:
🟢F2 (или fn+F2) — переименовать выбранный объект
Please open Telegram to view this post
VIEW IN TELEGRAM
4221
📕 Полезное. Советы. Информация 📕

🙂 Как устроен Roblox Studio 🙃
⭐️ Что такое Lua?
⭐️ Что такое скрипт?
⭐️ Знаки в скрипте = символы синтаксиса:
✔️ Точка ( . ) — это как «войти внутрь» объекта
✔️ Кавычки (" " и ' ') — указание имени объекта в коде, текст
✔️ Две черты (--) — комментарии
⭐️ Что такое события?
⚡️ Cобытия взаимодействия:
🟡 MouseClick 🖱
🟡 Touched 👉
🟡 Equipped / Unequipped 🔨
🟡 Triggered ⌨️

📎 Горячие клавиши (часть 1)
📎 Горячие клавиши (часть 2)

📎 Каталог скриптов 📎
Взаимодействие(коснулся парта):
🔘 Парт меняет цвет 🎨
Передвижение и физика мира:
🔘Бег через Shift (Без анимации) 🏃‍➡️
🔘Супер-прыжок через Alt

📌Список будет периодически пополняться📌
Please open Telegram to view this post
VIEW IN TELEGRAM
5311
💙 Эволюция Roblox: 2006 — 2016 — 2026

🐊 «Доисторические» скриншоты интерфейса. В этом году игре исполняется 20 лет 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
3211
🚪 Телепорт при касании в Roblox

Хочешь сделать портал или быстрый переход по карте? Вот самый простой вариант 👇

local teleportPosition = workspace.TeleportPart.Position

script.Parent.Touched:Connect(function(hit)
local character = hit.Parent
local humanoid = character:FindFirstChild("Humanoid")

if humanoid then
character:MoveTo(teleportPosition)
end
end)


📌 Как использовать:
— Вставь скрипт в Part
— Создай объект с именем TeleportPart
— Игрок будет телепортироваться при касании

💡 Используется для порталов, ловушек и быстрых перемещений
Please open Telegram to view this post
VIEW IN TELEGRAM
211
💥 Урон при касании в Roblox

Хочешь сделать лаву или опасную зону? Вот базовый скрипт 👇

script.Parent.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")

if humanoid then
humanoid:TakeDamage(20)
end
end)


📌 Как использовать:
— Вставь в Part
— При касании игрок получает урон
— Меняй значение в TakeDamage(20), чтобы изменить уровень урона

💡 Отлично подходит для ловушек, лавы и шипов
Please open Telegram to view this post
VIEW IN TELEGRAM
1111
⬆️ Высокий прыжок в Roblox

Делаем супер-прыжок для игроков 👇

game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.JumpPower = 100
end)
end)


📌 Как работает:
— Скрипт автоматически применяется ко всем игрокам
— Увеличивает силу прыжка

💡 Можно использовать для режимов с паркуром
Please open Telegram to view this post
VIEW IN TELEGRAM
2111
↗️ Увеличение скорости в Roblox

Хочешь ускорить игроков? Делается одной строкой 👇

game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.WalkSpeed = 32
end)
end)


📌 По умолчанию скорость = 16
📌 Здесь мы делаем её в 2 раза быстрее

💡 Подходит для динамичных режимов и мини-игр
Please open Telegram to view this post
VIEW IN TELEGRAM
2111