Advertisement
CluelessDev

stack items on top of each other

Oct 6th, 2023 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. local Players = game.Players
  2.  
  3. Players.PlayerAdded:Connect(function(player)
  4. local playerData = workspace.PlayerData:Clone()
  5. playerData.Parent = player
  6. playerData.Name = "Data"
  7.  
  8. player.CharacterAdded:Connect(function(char)
  9. -- reset every time the character respawns
  10. for _, stackValue in playerData.Stacks:GetChildren() do
  11. stackValue.Value = 0
  12. end
  13.  
  14. local itemStack = Instance.new("Folder")
  15. itemStack.Name = "ItemStack"
  16. itemStack.Parent = char
  17. end)
  18. end)
  19.  
  20.  
  21.  
  22. for _, vm in workspace.VendingMachines:GetChildren() do
  23. local proxPrompt = vm:FindFirstChild("ProximityPrompt", true):: ProximityPrompt
  24.  
  25. proxPrompt.Triggered:Connect(function(player)
  26.  
  27. local character = player.Character
  28. local itemStack: Folder = character.ItemStack
  29. local itemStackArray: {Model} = character.ItemStack:GetChildren()
  30. local stackSize = #itemStackArray
  31. local item = vm:FindFirstChildOfClass("Model")
  32. local newItem = item:Clone()
  33.  
  34. local itemValue = player.Data.Stacks[newItem.Name]
  35.  
  36. if itemValue.Value >= 5 then
  37. return
  38. end
  39.  
  40.  
  41. local finalPivot
  42.  
  43. if stackSize >= 1 then
  44. local previousItem = itemStackArray[stackSize] :: Model
  45. local prevItemPivot = previousItem:GetPivot()
  46. local prevItemSizeY = previousItem:GetExtentsSize().Y
  47. local newItemSizeY = newItem:GetExtentsSize().Y
  48. finalPivot = prevItemPivot * CFrame.new(0, (prevItemSizeY + newItemSizeY) / 2, 0)
  49. else
  50. local offsetInfrontOfPlayer = character:GetPivot().LookVector * 2.5
  51. finalPivot = CFrame.new(character:GetPivot().Position + offsetInfrontOfPlayer)
  52. end
  53.  
  54. newItem:PivotTo(finalPivot)
  55.  
  56.  
  57. local wc = Instance.new("WeldConstraint")
  58. wc.Part0 = newItem.PrimaryPart
  59. wc.Part1 = character.UpperTorso
  60. wc.Parent = newItem.PrimaryPart
  61.  
  62.  
  63. itemValue.Value += 1
  64. newItem.Parent = itemStack
  65.  
  66. end)
  67. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement