How to make local color change when player touches part?

Okay so I just tested it using remote events, and that seems to work.

It should look something like this.

Server script:

local c_service = game:GetService("CollectionService")

for _, part in c_service:GetTagged("Apple") do
	part.Touched:Connect(function(hit)
		if hit.Parent:FindFirstChild("Humanoid") then
			game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent"):FireClient(game.Players:GetPlayerFromCharacter(hit.Parent), part) --You HAVE to put the player as an argument, or else this will not work. Put the part as an argument so we can send it and it's properties over to the client.
		end
	end)
end

Local script:

game:GetService("ReplicatedStorage"):WaitForChild("RemoteEvent").OnClientEvent:Connect(function(part) --Getting the part that we passed over as an argument
	part.Color = Color3.fromRGB(75,151,75)
	part.Material = Enum.Material.SmoothPlastic
end)

This works 100% for the client only. Hope this fixes your problem! :cowboy_hat_face:

Edit: I know this is messy, and you should probably set yours up so it isn’t as messy as mine, but I was in a rush.