TouchEnded event fires when a player sits in a chair

Not sure whether this is an engine bug or not so I’m going to post this here.

There is a system in my game when a player enters a building, they touch a large part that covers the entire building which then triggers a .Touched event to change the lighting of their client to be brighter indoors. This works as intended until a player sits in a chair while inside that part (as shown below). This triggers the .TouchedEnded event prematurely.

Is this normal? Are there ways to combat it?

When the player is normally inside the part:

When the player sits in a chair while still being inside the part:

Maybe instead of a single part use multiple parts and build an empty box.

Then check if any of the parts that create the box are touched.

for _, boxParts in pairs(MyBoxFolder:GetChildren()) do
	
	boxParts.Touched:Connect(function()
		-- do something
	end)

end

That would affect when the “lights” would turn on/off. The lights turn on when a player touches the part (enter the building), and turn off when they leave the part (exit the building).

An “empty box” would make the lights off in the “empty” part.

Oh I see, I do something similar with a day/night effect.

I made two boxes, one larger than the other. The inner box turns on day and the outer box turns on night.

I have them spaced far enough they cannot be touched at the same time.