Компонент | Назначение |
DataStore | Хранение данных между сессиями |
Серверный скрипт | Обработка логики валюты |
Локальный скрипт | Отображение интерфейса |
- Создайте серверный скрипт в ServerScriptService
- Импортируйте сервис DataStoreService
- Определите ключ для хранения данных игрока
- local DataStoreService = game:GetService("DataStoreService")
- local currencyStore = DataStoreService:GetDataStore("PlayerCurrency")
- Создайте функцию для загрузки данных при входе
- Обработайте возможные ошибки загрузки
- Установите значение по умолчанию при первом входе
- local function onPlayerAdded(player)
- local success, err = pcall(function()
- local data = currencyStore:GetAsync(player.UserId)
- if not data then data = {currency = 100} end
- player:SetAttribute("Currency", data.currency)
- end)
Событие | Действие |
Выход игрока | Сохранение текущего баланса |
Регулярные интервалы | Автосохранение каждые 5 минут |
- Создайте серверную функцию для добавления валюты
- Реализуйте проверку на отрицательные значения
- Обновите значение атрибута игрока
- function addCurrency(player, amount)
- local current = player:GetAttribute("Currency")
- player:SetAttribute("Currency", current + amount)
- end
- Создайте ScreenGui в StarterGui
- Добавьте TextLabel для отображения баланса
- Напишите локальный скрипт для обновления UI
- local player = game.Players.LocalPlayer
- player:GetAttributeChangedSignal("Currency"):Connect(function()
- script.Parent.Text = "Валюта: "..player:GetAttribute("Currency")
- end)
Проблема | Решение |
Эксплойты | Вся логика на сервере |
Потеря данных | Регулярное сохранение |
Производительность | Кэширование значений |
- Система премиум-валюты
- Ежедневные бонусы
- Трейдинг между игроками
- Аукционные системы
Создание системы валюты в Roblox Studio требует внимания к безопасности данных и производительности. Реализация через серверные скрипты и DataStore обеспечивает защиту от читерства и сохранность игрового прогресса. Для сложных систем рекомендуется использовать модульную структуру кода.