It's very confusing and only yesterday it was working fine.
local functionblock3 = game.workspace.FunctionBlock3
local AppearingBlock = game.workspace.AppearingBlock
functionblock3.Touched:Connect(function()
local functionblock3 = "functionblock3 in use"
print (functionblock3)
AppearingBlock.Transparency = 0
AppearingBlock.Cancollide = true
end)
The one I just copy and pasted is meant to call a function when the player touches a block, however when I test my game, the function is already called.
local FunctionBlock2 = game.workspace.FunctionBlock2
local DissapearingBlock = game.workspace.DissapearingBlock
FunctionBlock2.Touched:Connect(function()
local functionblock = 'function block touched'
print (functionblock)
DissapearingBlock.Transparency = 1
DissapearingBlock.Cancollide = false
end)
This code calls a function when my character touches a block, again, it worked fine just yesterday but the function calls before I even step on the block.

3 comments
also if u want to get the player parameter use game.Players.PlayerAdded:Connect(function(player) end)
Xapelize, it turns out it was touching the baseplate, it's quite strange because yesterday the part was on the baseplate too.
it is probably the part was unanchored so it touched