If i click the button that Fires PurchaseCar two times i don't get 'Player has car' in the output but it will print out 'Filipalla Purchased Car' for the first click.

This makes me think it does save it because otherwise it would print that as many times as i press the button and i don't understand why it won't print 'Player has car'.

Edit: Documentation of DataStore2 can be found here.

Edit: I made some changes to the code and now carDataStore:Get() is nil. Now i know it saves correctly because when i play again it's still nil.

OnCarPurchase

local DataStore2 = require(1936396537)

local CarsAPI = require(game.ServerStorage.CarsAPI)

local Money = 1000000000000--Where your money value is located

game.ReplicatedStorage.PurchaseCar.OnServerEvent:Connect(function(Player, CarModelName)

	local carDataStore = DataStore2("OwnedCars", Player)

	if CarsAPI.Cars[CarModelName] then

		if typeof(carDataStore:Get()) == "table" then

			local OwnedCars = carDataStore:Get()

			if OwnedCars[CarModelName] then

				warn("Player has car")

			else

				if Money > CarsAPI.Cars[CarModelName].Price then

					local TableWithAddedCar = table.insert(OwnedCars, #OwnedCars + 1, CarModelName)

					carDataStore:Set(TableWithAddedCar)

					print(Player.Name.." Purchased "..CarModelName)

				else

					warn(Player.Name.." Doesn't have enough money to buy "..CarModelName)

				end

			end

		end

	end

end)

DataStore2Script

local DataStore2 = require(1936396537)

local defaultvalue = {}

local OwnedCars

game.Players.PlayerAdded:Connect(function(plr)

	local carDataStore = DataStore2("OwnedCars", plr)

	local function carsUpdate(updatedValue)

		OwnedCars = carDataStore:Get(updatedValue)

	end

	carsUpdate(defaultvalue)

	carDataStore:OnUpdate(carsUpdate)

end)

2 comments

0

try table.insert(defaultvalue, carDataStore:GetChildren())

0

That won't work.