Блог школы Роблоппа — Роблокс Студио, обучение, познавательные статьи и новости школы

ValueObject в Роблокс Студио: что это и зачем они нужны

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

1. Назначение ValueObject

ValueObject применяются для:
  • хранения чисел, текстов, цветов, ссылок на объекты и других значений;
  • управления состоянием игровых объектов (двери, NPC, триггеры);
  • синхронизации информации между игроками и сервером;
  • построения систем квестов, инвентаря, статистики.
ValueObject не отображаются игроку, но доступны скриптам и могут изменяться в реальном времени.

2. Где используются ValueObject

Основные сценарии:

2.1. Игровые состояния

Примеры: дверь открыта/закрыта, квест активен, NPC ищет цель, выбран цвет предмета.

2.2. Статистика игрока

Пример: leaderstats использует IntValue, чтобы хранить монеты, уровень и другие числовые параметры.

2.3. Настройки объектов

Пример: скорость NPC, направление движения, текущий шаг алгоритма.

3. Основные типы ValueObject

В Roblox Studio существует несколько видов ValueObject. Каждый тип хранит определённый формат данных.

3.1. IntValue

Хранит целые числа.
Применение: монеты, очки, уровни, число жизней.

3.2. NumberValue

Хранит числа с плавающей точкой.
Применение: скорость, сила, таймеры, урон.

3.3. BoolValue

Хранит true/false.
Применение: состояние двери, активность события, доступность предмета.

3.4. StringValue

Хранит текст.
Применение: имена квестов, состояния NPC (“Idle”, “Follow”), описание предметов.

3.5. ObjectValue

Хранит ссылку на объект.
Применение: текущая цель NPC, выбранный предмет, объект-владелец.

3.6. Vector3Value

Хранит координаты Vector3.
Применение: точки пути, позиции спавна, направления.

3.7. CFrameValue

Хранит CFrame (позиция + ориентация).
Применение: точки телепортации, ориентация двери, позиция камеры.

3.8. Color3Value

Хранит Color3.
Применение: выбранный цвет элемента, настройки дизайна.

3.9. BrickColorValue

Хранит BrickColor.
Применение: материал цветных объектов.

3.9. BrickColorValue

Хранит луч (Ray) с направлением и длиной.
Используется для: проверок попадания, трассировки выстрелов, определения, во что “упёрся” луч.

4. Пример создания ValueObject

Через Explorer

  1. Правый клик по объекту → Insert Object
  2. Выбрать, например, IntValue
  3. Назначить имя (например, Coins)
  4. Указать начальное значение

Через скрипт

local coins = Instance.new("IntValue")
coins.Name = "Coins"
coins.Value = 10
coins.Parent = player

5. Использование события .Changed

Все ValueObject имеют событие Changed, позволяющее отслеживать изменение значения.
Пример:
local v = script.Parent.HealthValue

v.Changed:Connect(function(newValue)
print("Значение изменилось:", newValue)
end)
Используется для:
  • обновления GUI;
  • запуска анимаций;
  • проверки условий;
  • реакции на смену состояния.

6. Когда использовать ValueObject

Выберите ValueObject, если вам нужно:
  • хранить параметры NPC и дверей;
  • хранить игровые состояния;
  • строить системы диалогов и квестов;
  • сохранять параметры игрока и объекта.

Итоги

ValueObject — это удобный инструмент для хранения данных внутри Roblox Studio. Они обеспечивают передачу значений, отслеживание изменений и построение игровой логики.
С помощью разных видов ValueObject можно создавать:
  • системы статистики,
  • интерактивные объекты,
  • квесты,
  • настройки NPC,
  • сохранение состояния игры.
Это один из основных инструментов, которые должен освоить начинающий разработчик.
Made on
Tilda