When I attempt to Invoke a BindableFunction created via another player's localscript, the script just hangs forever without doing anything. No output errors.

Sauce:

local plr = game.Players.LocalPlayer; repeat wait() until plr.Character
local char = plr.Character
local mouse = plr:GetMouse()

local printf = Instance.new("BindableFunction", char)
printf.Name = "PrintBind"

function printf.OnInvoke(msg)
print(msg)
end

function printOther(targ, msg)
local func = targ:FindFirstChild("PrintBind")
if func and func:IsA("BindableFunction") then print('found function')
func:Invoke(msg)
print('function fired')
end end

mouse.Button1Down:connect(function()
local targ = mouse.Target

if targ then targ = targ.Parent
local vplr = game.Players:GetPlayerFromCharacter(targ)
if vplr then printOther(targ, "Hi") end
end end)