Hoi there (Please don't downvote, just tell me what is the problem and I will fix it) So, I have attempted to make a script that saves an items position, it has has a variable which tells it's data store value and before I load it into my game, I have to check the Data store number so the position of other items won't get mixed up with other positions and all...
Error: I am using a loop which is cause an Int value to increment A LOT BY LIKE 100!! Any help would be great
Script In case you need it in order to help me:
wait(1) local Ds = game:GetService("DataStoreService"):GetDataStore("Testing") local saving = {} or nil local key = "Player -- "..game.Players.LocalPlayer.UserId saving = Ds:GetAsync(key) print(saving) local mouse = game.Players.LocalPlayer:GetMouse() local moveModel = workspace:WaitForChild("Wood Crate") local itemname = workspace.Tycoons.BasePlate:WaitForChild("ItemName") -- don't detect the model we're moving mouse.TargetFilter = moveModel function MoveItem() -- make sure the mouse is pointing at something if mouse.Target then -- where we cast our ray from (shifted slightly up so the ray will hit the surface we're hovering) local origin = mouse.Hit.p + Vector3.new(0, 0.1, 0) -- cast our ray and get our normal, which is a unit vector local ray = Ray.new(origin, Vector3.new(0, -1, 0)) local hit, pos, normal = workspace:FindPartOnRay(ray, moveModel) -- get the perpendicular vector and the angle between the two local cross = Vector3.new(0, 1, 0):Cross(normal) local angle = math.asin(cross.magnitude) -- division by 1 is redundant moveModel:SetPrimaryPartCFrame( CFrame.new(mouse.Hit.p) -- position * CFrame.fromAxisAngle(cross.magnitude == 0 and Vector3.new(1) or cross.unit, angle) -- angle, cross must not be Vector3.new() ) end end -- check every frame while wait() do wait(.01) mouse.Button1Down:connect(function() game.Players.LocalPlayer.leaderstats["Item Data Store Name"].Value = game.Players.LocalPlayer.leaderstats["Item Data Store Name"].Value + 1 if workspace.Tycoons.BasePlate.IsPlacing.Value == true then moveModel:Clone().Parent = workspace.PlacedItems if saving == nil then saving = {} end table.insert(saving, "Name = "..moveModel.Name.."["..game.Players.LocalPlayer.leaderstats["Item Data Store Name"].Value.."]".." and Position = ("..moveModel:FindFirstChild("Hitbox").Position.X..","..moveModel:FindFirstChild("Hitbox").Position.Y..","..moveModel:FindFirstChild("Hitbox").Position.Z..")") print("Name = "..moveModel.Name.."["..game.Players.LocalPlayer.leaderstats["Item Data Store Name"].Value.."]".." and Position = ("..moveModel:FindFirstChild("Hitbox").Position.X..","..moveModel:FindFirstChild("Hitbox").Position.Y..","..moveModel:FindFirstChild("Hitbox").Position.Z..")") wait(1) else wait() -- nil end end) itemname.Name = moveModel.Name itemname.Parent = workspace.PlacedItems if workspace.Tycoons.BasePlate.IsPlacing.Value == true then MoveItem() else repeat wait() until workspace.Tycoons.BasePlate.IsPlacing.Value == true end end
The error would add more than 1 value to the "Item Data Store Name" And it is lines 36 (Loop) AND 39 (Adding more than 1 Value), Any help would be great..