I’m making a rainbow stacking-inspired game and not sure why this is happening.
local function deductSize(part)
local mainPart = game.workspace.positionedPart
local mainPartPosition = mainPart.Position
local PositionX = mainPartPosition.X - part.Size.X
if part.Position.X ~= mainPart.Position.X then
mainPart.Size = Vector3.new(PositionX, mainPart.Size.Y, mainPart.Size.Z)
part.Size = Vector3.new(PositionX, part.Size.Y, part.Size.Z)
end
local PositionZ = mainPartPosition.Z - part.Size.Z
if part.Position.Z ~= mainPart.Position.Z then
mainPart.Size = Vector3.new(mainPart.Size.X, mainPart.Size.Y, PositionZ)
part.Size = Vector3.new(part.Size.X, part.Size.Y, PositionZ)
end
end
The issue is that you’re setting the size to the difference instead of subtracting the difference from the size of the part. This code should fix that:
local function deductSize(part)
local mainPart = game.workspace.positionedPart
local mainPartPosition = mainPart.Position
local PositionX = part.Size.X-math.abs(mainPartPosition.X - part.Size.X)
if part.Position.X ~= mainPart.Position.X then
mainPart.Size = Vector3.new(PositionX, mainPart.Size.Y, mainPart.Size.Z)
part.Size = Vector3.new(PositionX, part.Size.Y, part.Size.Z)
end
local PositionZ = part.Size.Z-math.abs(mainPartPosition.Z - part.Size.Z)
if part.Position.Z ~= mainPart.Position.Z then
mainPart.Size = Vector3.new(mainPart.Size.X, mainPart.Size.Y, PositionZ)
part.Size = Vector3.new(part.Size.X, part.Size.Y, PositionZ)
end
end
I have this script which deducts the size but it’s inaccurate
local function deductSize(part)
local mainPart = game.workspace.positionedPart
local mainPartPosition = mainPart.Position
local positionOffsetX = math.abs(mainPartPosition.X - part.Position.X)
local positionOffsetZ = math.abs(mainPartPosition.Z - part.Position.Z)
local sizeOffsetX = math.max(part.Size.X - positionOffsetX, 0)
local sizeOffsetZ = math.max(part.Size.Z - positionOffsetZ, 0)
local newSize = Vector3.new(sizeOffsetX, part.Size.Y, sizeOffsetZ)
mainPart.Size = newSize
part.Size = newSize
end