Система сохранений для Roblox (DataStore)
Модуль сохранения прогресса игрока: автосохранение, повторные попытки при сбоях DataStore, сохранение при падении сервера.
Писал этот модуль под свои проекты. DataStore в Roblox отказывает чаще, чем хотелось бы, а терять прогресс игроков нельзя. Подключается как ModuleScript в ServerScriptService. Структуру данных задаёте одной таблицей, сам модуль править не нужно. Что он делает. При сбое DataStore повторяет запрос с нарастающей паузой. Сохраняет прогресс, когда игрок выходит и когда сервер завершает работу через BindToClose. Держит профили в памяти, чтобы не упираться в лимиты запросов Roblox. Не даёт записать один профиль дважды одновременно. В комплекте документация по подключению и тестовое место, где всё уже собрано и работает.
Возможности
- Автосохранение по таймеру и при выходе игрока
- Повторные попытки при сбоях DataStore (экспоненциальная задержка)
- Сохранение при остановке сервера через BindToClose
- Кэш профилей в памяти — меньше запросов к DataStore
- Защита от одновременной записи одного профиля
- Схема данных задаётся одной таблицей, без правок модуля
В комплекте
- Исходный код модуля (.lua, без обфускации)
- Файл .rbxm для импорта в Roblox Studio
- Документация по подключению (PDF)
- Пример использования на тестовом месте