1. local Players = game:GetService 'Players'
  2. local Player = Players.LocalPlayer
  3. local CollectedEggs, ReturnThread = {}, nil
  4. local function OnEggSpawned(Egg)
  5. local isCollected = CollectedEggs[Egg.Name]
  6. if isCollected then
  7. return
  8. end
  9. CollectedEggs[Egg.Name] = true
  10. if ReturnThread then
  11. task.cancel(ReturnThread)
  12. ReturnThread = nil
  13. end
  14. local Character = Player.Character
  15. local OldPisition = Character:GetPivot()
  16. local Prompt = Egg:WaitForChild 'ProximityPrompt'
  17. local Pivot = Egg:GetPivot()
  18. local offset = Vector3.yAxis*(Prompt.MaxActivationDistance/2)
  19. local CF = CFrame.new(Pivot.Position - offset, Pivot.Position)
  20. Character:PivotTo(CF)
  21. task.wait(.3)
  22. fireproximityprompt(Prompt, 1)
  23. ReturnThread = task.delay(.1, function()
  24. Character:PivotTo(OldPisition)
  25. end)
  26. end
  27. game:GetService 'ReplicatedStorage'.EventControllers.Easter.EasterEggSpawned.OnClientEvent:Connect(OnEggSpawned)