Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Attempt to connect failed: Passed value is not a function..?


game.Players.PlayerAdded:connect(function(plr)
	if game:GetService("MarketplaceService"):PlayerOwnsAsset(plr,281158690) then


script.Parent.Touched:connect(onTouched)		

function onTouched(hit)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent)
    if player then
        game:GetService("TeleportService"):Teleport(284507186, player)
			end
		end
	end
end)

I'm actually not quite too sure how to describe it. I'm just trying to make a script that will check the user's inventory for a certain badge before teleporting them to another place.

Here's the developer console log:

15:33:11 -- Attempt to connect failed: Passed value is not a function 15:33:11 --Script 'Workspace.Part.Script', Line 6 15:33:11 -- Stack End

1 comment

1

onTouched function needs to go above the connection line on line 5.

1 answer

✓ Accepted answer

You can't call a function that's defined LATER in the script!

function onTouched(hit)
    local player = game.Players:GetPlayerFromCharacter(hit.Parent) --Get player from character

    if player and game:GetService("MarketplaceService"):PlayerOwnsAsset(player, 281158690) then --Check if he has the asset here
        game:GetService("TeleportService"):Teleport(284507186, player)
    end --End conditional statement
end --End function definition


script.Parent.Touched:connect(onTouched)

This discussion is preserved as it was. New answers, comments, and votes are closed.