Saving Instances without tables

To keep it short, I’m working on a Piggy game. And I ran into an issue with my code, where the error stated, “DataStoreService: CantStoreValue: Cannot store Instance in data store. Data stores can only accept valid UTF-8 characters. API: SetAsync, Data Store: Saves”.

--Setup--

--Services--
local ServerStorage = game:GetService("ServerStorage")

local ServerScriptService = game:GetService("ServerScriptService")

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local DataStoreService = game:GetService("DataStoreService")

local Players = game:GetService("Players")

--Remotes--
local Remotes = ReplicatedStorage:FindFirstChild("Remotes")

--Values--
local DataStore = DataStoreService:GetDataStore("Saves", "Saves")

--local NumPlrs = 0

--local NumberPlayers = 0

--local Mode = ""

--Stored--
local UI = ReplicatedStorage:FindFirstChild("UI")

--Module Functions--
--local Intermission = Round.Intermission()

---------

--Main Code--

local PlrAdded = Players.PlayerAdded:Connect(function(plr)
	local Values = ServerStorage.Stored.Values:Clone() or DataStore:GetAsync(plr.UserId, "Saves")
	
	Values.Parent = plr
end)

local PlrLeaving = Players.PlayerRemoving:Connect(function(plr)
	DataStore:SetAsync(plr.UserId, plr:FindFirstChild("Values"))
end)

-------------

I want to save the folders because it would just be easier and more straight-foward than making a mile-long table for a player’s skins. Is there any other way?

Edit: Sorry for the commented-out code, I just copied the main round script because I was lazy.

No, DataStores cannot store Instances. You will have to make a table with all the values you need and store it in the DataStore.

Dang, that stinks.

Thanks for clearing it up!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.