So basically i’m making an special tube with button which sends player to next floor by fly, when it finishes it close, but when i wanna go down by this tube i just stand on air and can’t fall into it, after few tests i figured out what 2 floor unions which have a hole where tube goes collide with player even if there is hole, here is screenshoot
EDIT: It’s not close thing problem i set it cancollide to false after 5 seconds, and i even checked it properties after code finish work, it cancollide = false
Try setting the union’s CollisionFidelity to Hull or PreciseConvexDecomposition.
Hull preferably if it doesn’t require 99.99% collision accuracy or have high triangle count.
Well this didn’t help out (30 lettersssss)
Could you possibly send a video so I could fully understand the problem?
Oh wait nvm, i think i just dumb, hull works perfectly thanks
Wait nvm, if i use Hull all my floor is non Collidable
Other method same no work, let me record and send video
Alright here is video:Problem - YouTube
EDIT: Wait a bit until video quality become atleast 1080p, it’s rendering now, alright nvm rendered already
The tube is fine lol you just went through it, the tube won’t magically change properties. The problem is the part that appears making sure you don’t fall on your way up, did you forget to set it’s CanCollide to false?
To clarify:
Dude i already mentioned what that black thing cancollide is false, i have this in script, i literally staying on air
Also i wen’t though script it just move humanoid position by 0.105… 192 times using for loop
Here code:
local Prompt = script.Parent
local Region = script.Parent.Parent.Parent.Parent.Region
local CloseThing = script.Parent.Parent.Parent.Parent.CloseThing
function isInsideBrick(position, brick)
local v3 = brick.CFrame:PointToObjectSpace(position)
return (math.abs(v3.X) <= brick.Size.X / 2)
and (math.abs(v3.Y) <= brick.Size.Y / 2)
and (math.abs(v3.Z) <= brick.Size.Z / 2)
end
Prompt.Triggered:Connect(function(player)
local Torso = player.Character:FindFirstChild("HumanoidRootPart")
if (Torso and isInsideBrick(Torso.Position, Region)) then
CloseThing.Transparency = 1
CloseThing.CanCollide = false
for i = 1,192 do
Torso.Anchored = true
Torso.CFrame += Vector3.new(0, 0.104166666, 0)
wait()
end
CloseThing.Transparency = 0
CloseThing.CanCollide = true
Torso.Anchored = false
wait(5)
CloseThing.Transparency = 1
CloseThing.CanCollide = false
end
end)
Show script because that sounds like it could use some refactors.
local Prompt = script.Parent
local Region = script.Parent.Parent.Parent.Parent.Region
local CloseThing = script.Parent.Parent.Parent.Parent.CloseThing
function isInsideBrick(position, brick)
local v3 = brick.CFrame:PointToObjectSpace(position)
return (math.abs(v3.X) <= brick.Size.X / 2)
and (math.abs(v3.Y) <= brick.Size.Y / 2)
and (math.abs(v3.Z) <= brick.Size.Z / 2)
end
Prompt.Triggered:Connect(function(player)
local Torso = player.Character:FindFirstChild("HumanoidRootPart")
if (Torso and isInsideBrick(Torso.Position, Region)) then
CloseThing.Transparency = 1
CloseThing.CanCollide = false
for i = 1,192 do
Torso.Anchored = true
Torso.CFrame += Vector3.new(0, 0.104166666, 0)
wait()
end
CloseThing.Transparency = 0
CloseThing.CanCollide = true
Torso.Anchored = false
wait(5)
CloseThing.Transparency = 1
CloseThing.CanCollide = false
end
end)
EDIT: I said in a topic what i tested collision of Close thing it’s has more high, but i fall straight to floor height
EDIT2: Also in video i turned my camera straight up and i hitted smth invisible, also maybe it in case of negative part of union. but it’s canCollide is false
It might bring you a little high but since I can’t play test because I don’t have the actual parts just change the + Vector3.new(0, #, 0) # value to something lower.
local TweenService = game:GetService("TweenService")
local Prompt = script.Parent
local Region = script.Parent.Parent.Parent.Parent.Region
local CloseThing = script.Parent.Parent.Parent.Parent.CloseThing
local Time = 5
CloseThing.Transparency = 1
CloseThing.CanCollide = false
local Deb = false
Prompt.Triggered:Connect(function(Plr)
if Deb then return end
Deb = true
local Torso = Plr.Character.PrimaryPart
Torso.Anchored = true
local MoveUp = TweenService:Create(Torso, TweenInfo.new(Time, Enum.EasingStyle.Quad), {Position = CloseThing.Position + Vector3.new(0,7,0)})
MoveUp:Play(); MoveUp.Completed:Wait()
Torso.Anchored = false
CloseThing.Transparency = 0
CloseThing.CanCollide = true
task.wait(Time)
CloseThing.Transparency = 1
CloseThing.CanCollide = false
Deb = false
end)
Just add your check for checking if they are in the tube region somewhere here.
Let me try to check this… (30 letterssssssss)
Well that’s really didn’t gave any result, it only made movement more slight
???
Is the tube still getting blocked on the way up?
Yes it still blocked from a fifth floor, but tween works fine
Then use CollisionFidelity to PreciseConvexDecomposition and see if that helps since a tube doesn’t have that much triangle count.