0

# Why is my achievement system not working for my npc?

So i have a code here thats in an npc and i want to make it that like u can feed the npc and then when it gets to a certain amount it gives u the badge but the problem is that its not running for some reasing. the rest of the code runs fine its just the if food value == 6 part that dosnt work. i also tried putting several prints in it but also didint print. Also nothing was in the output. Can somebody help me?

full script:

local player = game.Players

local ServerStorage = game:GetService("ServerStorage")

local foodValue = script.Parent.FoodValue

if plr.Character:FindFirstChild("Hamburger") then
foodValue.Value = foodValue.Value + 1
plr.Character.Hamburger:Destroy()
end
end)

if foodValue.Value == 6 then -- change to 6
print("Food value is 7")
local PlayerID = player.localPlayer.UserId

local explosion = Instance.new("Explosion", script.Parent)

explosion.Position = script.Parent.PrimaryPart.CFrame.Position

elseif foodValue.Value == 5 then
print("Food value is 5")

script.Parent.Torso.Shape = Enum.PartType.Ball
script.Parent.Torso.Size = Vector3.new(2.8, 2.8, 2.8)

elseif foodValue.Value == 4 then
print("Food value is 4")

script.Parent.Torso.Shape = Enum.PartType.Ball
script.Parent.Torso.Size = Vector3.new(2.8, 2.8, 2.8)
end

----------
wait(5)
local roomate = script.Parent
local humanoid = script.Parent.Humanoid

local pointA = game.Workspace.ApartmentHouse.GreenFlag

wait(5)
humanoid.Sit = false
humanoid:MoveTo(pointA.Position)


0
also sorry if its reupload i accidently deleat the old one Boyuanbogosess 4 — 17d

0
Xientra 17
17 days ago

Correct me if I'm wrong, but it seems you're only checking the food value when the script first runs and not when the food value is updated.

I'd either move lines 16 - 42 in between lines 12 - 13:

script.Parent.Head.InteractProx.Triggered:Connect(function(plr)
if plr.Character:FindFirstChild("Hamburger") then
foodValue.Value = foodValue.Value + 1
plr.Character.Hamburger:Destroy()
-- Lines 16 - 42
end
end)


Or I'd use a GetPropertyChangedSignal:

foodValue:GetPropertyChangedSignal("Value"):Connect(function ()
-- Lines 16 - 42
end)

0
oh thanks ill try that out Boyuanbogosess 4 — 16d