Tool/Quest NPC System Paying (350 Robux)

In short toggle to the server mode then assign the player the tool and it should be working. The way you are giving the players the tool is the issue. i just tested it now and it is working

yeah its still not working for me i tried doing that.

Make sure that the object/tool name is “Engine” and is being hold by the player

yup thats the name, all the parts are named correctly and im holding them.

Did you put it in workspace in the player?

here bro take a look at this script

local questItems = {"Engine", "Battery", "Tire"}
local playerProgress = {}
local TextValue = 0

function updateBillboard(player, currentStep)
	local billboard = script.Parent:FindFirstChild("Billboard")
	if billboard then
		local billboardGui = billboard:FindFirstChild("BillboardGui")
		local label = billboardGui:FindFirstChild("TextLabel")
		if label then
			label.Text = TextValue .. "/3"
		end
	end
end

function checkRequiredItem(player, currentStep)
	local progressData = playerProgress[player.UserId] or {}
	local requiredItem = questItems[currentStep]
	local hasRequiredItem = player.Backpack:FindFirstChild(requiredItem) -- Change here

	if hasRequiredItem then
		hasRequiredItem:Destroy()
		progressData.currentStep = currentStep + 1
		TextValue = TextValue + 1

		if currentStep == #questItems then
			progressData.completed = true
			print("Quest completed! Items removed from your inventory.")
		else
			print("Good job! Now bring me a " .. questItems[currentStep + 1] .. ".")
		end

		updateBillboard(player, progressData.currentStep)
	else
		print("You don't have the required item.")
	end

	playerProgress[player.UserId] = progressData
end

local clickDetector = script.Parent:WaitForChild("ClickDetector")

clickDetector.MouseClick:Connect(function(player)
	local progressData = playerProgress[player.UserId] or {}
	if not progressData.completed then
		checkRequiredItem(player, progressData.currentStep or 1)
	else
		print("You have already completed the quest.")
	end
end)

its in the npc this is what i want but the only problem is that when you equip the tool and try to click the npc you cant, you can only do it using the click detector.

ocal hasRequiredItem = player.Backpack:FindFirstChild(requiredItem)
thats the backpack only instead:

local hasRequiredItem = player.Character:FindFirstChild(requiredItem)

yeah i did that before but the problem is you cant click the npc with the tool out but thats what i want.

try putting it in the test server take a look at how it functions.

i will do that tomorrow i need to sleep now. bye!

Have you firstly searched on YouTube tutorials regarding “NPC quests”?

yeah dude nothing is like the one im trying to make.