Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

I made a huge script and Studio is refusing to save..?

Asked by
AlphaY7 -3
4 years ago

So I recently worked on a huge script for my game and when I tried to save it so I could work on something else, I got errors saying it couldn't save and idk what to because I don't want to lose any progress..

0
I also made a map for the game :/ AlphaY7 -3 — 4y
0
sahre the script amaizing_01 0 — 4y
0
try publishing it instead User#34929 0 — 4y

1 answer

Log in to vote
0
Answered by 4 years ago

I have a save player data script

-- Set up table to return to any script that requires this module script local PlayerStatManager = {}

local DataStoreService = game:GetService("DataStoreService") local playerData = DataStoreService:GetDataStore("PlayerData")

-- Table to hold player information for the current session local sessionData = {}

local AUTOSAVE_INTERVAL = 60

-- Function that other scripts can call to change a player's stats function PlayerStatManager:ChangeStat(player, statName, value) local playerUserId = "Player_" .. player.UserId assert(typeof(sessionData[playerUserId][statName]) == typeof(value), "ChangeStat error: types do not match") if typeof(sessionData[playerUserId][statName]) == "number" then sessionData[playerUserId][statName] = sessionData[playerUserId][statName] + value else sessionData[playerUserId][statName] = value end end

-- Function to add player to the "sessionData" table local function setupPlayerData(player) local playerUserId = "Player_" .. player.UserId local success, data = pcall(function() return playerData:GetAsync(playerUserId) end) if success then if data then -- Data exists for this player sessionData[playerUserId] = data else -- Data store is working, but no current data for this player sessionData[playerUserId] = {Money=0, Experience=0} end else warn("Cannot access data store for player!") end end

-- Function to save player's data local function savePlayerData(playerUserId) if sessionData[playerUserId] then local success, err = pcall(function() playerData:SetAsync(playerUserId, sessionData[playerUserId]) end) if not success then warn("Cannot save data for player!") end end end

-- Function to save player data on exit local function saveOnExit(player) local playerUserId = "Player_" .. player.UserId savePlayerData(playerUserId) end

-- Function to periodically save player data local function autoSave() while wait(AUTOSAVE_INTERVAL) do for playerUserId, data in pairs(sessionData) do savePlayerData(playerUserId) end end end

-- Start running "autoSave()" function in the background spawn(autoSave)

-- Connect "setupPlayerData()" function to "PlayerAdded" event game.Players.PlayerAdded:Connect(setupPlayerData)

-- Connect "saveOnExit()" function to "PlayerRemoving" event game.Players.PlayerRemoving:Connect(saveOnExit)

return PlayerStatManager

Ad

Answer this question