From 0fb1380735d601b4a8ced180c38d3470aa1b1916 Mon Sep 17 00:00:00 2001 From: James Onnen Date: Thu, 16 Jul 2026 17:41:04 -0700 Subject: [PATCH] feat: Datastore keys and error messages --- src/adorneedata/src/Shared/AdorneeDataValue.lua | 2 +- src/datastore/src/Server/GameDataStoreService.lua | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/adorneedata/src/Shared/AdorneeDataValue.lua b/src/adorneedata/src/Shared/AdorneeDataValue.lua index db98cea892..beb773d9e8 100644 --- a/src/adorneedata/src/Shared/AdorneeDataValue.lua +++ b/src/adorneedata/src/Shared/AdorneeDataValue.lua @@ -129,7 +129,7 @@ function AdorneeDataValue:__newindex(index, newValue) if attributeValues[key] then attributeValues[key].Value = value else - error("%s is not a valid member of AttributeValue") + error(string.format("%s is not a valid member of AttributeValue", key)) end end else diff --git a/src/datastore/src/Server/GameDataStoreService.lua b/src/datastore/src/Server/GameDataStoreService.lua index 8fd5977812..9bb9e3fd60 100644 --- a/src/datastore/src/Server/GameDataStoreService.lua +++ b/src/datastore/src/Server/GameDataStoreService.lua @@ -25,6 +25,7 @@ export type GameDataStoreService = typeof(setmetatable( _dataStorePromise: Promise.Promise?, _robloxDataStorePromise: Promise.Promise?, _bindToCloseService: any, + _key: string?, }, {} :: typeof({ __index = GameDataStoreService }) )) @@ -81,8 +82,15 @@ function GameDataStoreService._promiseRobloxDataStore(self: GameDataStoreService return self._robloxDataStorePromise end -function GameDataStoreService._getKey(_self: GameDataStoreService): string - return "version1" +function GameDataStoreService.SetDataStoreKey(self: GameDataStoreService, key: string): () + assert(type(key) == "string", "Bad key") + assert(not self._dataStorePromise, "Cannot set key after datastore has been promised") + + self._key = key +end + +function GameDataStoreService._getKey(self: GameDataStoreService): string + return self._key or "version1" end function GameDataStoreService.Destroy(self: GameDataStoreService)