Okay, so the basic idea of what I'm trying to do is when the player press's the letter Z, 5 cannon balls under the BasePlate will go upwards to a certain position. Everything works fine until the cannon balls attempt to go through the basePlate and fail, causing TweenService to glitch and the part teleport above to the final position (Since the time of the tween is a second)
I found out that putting the cannon balls under nothing works, however, I'm trying to make an impression of the blocks coming through the ground. The only way that I can find for this to work is turning the BasePlate's can collide property to false, however that won't allow the player to move. Is there a collision property on certain objects or a way to do this? One of the scripts are:
local tweenService = game:GetService("TweenService") local Part = script.Parent.Parent.CannonBall5 local tweeningInformation = TweenInfo.new( 1, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0 ) local partProperties = { Position = Vector3.new(Part.Position.X, Part.Position.Y + 10,Part.Position.Z); } local Tween = tweenService:Create(Part,tweeningInformation,partProperties) Tween:Play()
EDIT: CanCollide false baseplate doesn't work either
Tweening the part's CFrame instead of it's Position solves this issue. So instead of:
local partProperties = {
Position = Vector3.new(Part.Position.X, Part.Position.Y + 10,Part.Position.Z);
}
You would do:
local partProperties = {
CFrame = CFrame.new(Part.Position.X, Part.Position.Y + 10, Part.Position.Z)
}
The end result is identical, except the tweening part won't avoid colliding with objects in it's way.