ResetButtonCallback has not been registered by the CoreScripts

I’ve looked through this and the solution provided does not work anymore

local CoreCall do
	local MAX_RETRIES = 8
	
	local RunService = game:GetService("RunService")
	local StarterGui = game:GetService("StarterGui")
	
	function CoreCall(method, ...)
		local Result = {}
		for retries = 1, MAX_RETRIES do
			Result = {pcall(StarterGui[method], StarterGui, ...)}
			if Result[1] then break end
			
			RunService.Stepped:Wait()
		end
		
		return unpack(Result)
	end
end

assert(CoreCall("SetCore", "ResetButtonCallback", false))

As I still get this error
ResetButtonCallback has not been registered by the CoreScripts

The code works fine for me. Are you sure this is the exact script you have that isn’t working?

Ye, it’s under RepFirst too (which I assume is where it’s supposed to be)

I put mine under StarterPlayerScripts, but I just tested and it worked in RepFirst as well for me.

you’re using a LocalScript, right?

Ye inside of Loading
image

Does Loading do anything to the script?

what happens if you take off the assert() from assert(CoreCall("SetCore", "ResetButtonCallback", false))?

Try increasing MAX_RETRIES or replacing the Stepped:Wait() with something longer like NewFissy suggested.

Nothing special

local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local StarterGui = game:GetService("StarterGui")

local Intro = script:WaitForChild("Intro")

local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")

ReplicatedFirst:RemoveDefaultLoadingScreen()

Intro.Parent = PlayerGui

local CoreCall do
	local MAX_RETRIES = 8
	
	local RunService = game:GetService("RunService")
	local StarterGui = game:GetService("StarterGui")
	
	function CoreCall(method, ...)
		local Result = {}
		for retries = 1, MAX_RETRIES do
			Result = {pcall(StarterGui[method], StarterGui, ...)}
			if Result[1] then break end
			
			RunService.Stepped:Wait()
		end
		
		return unpack(Result)
	end
end

assert(CoreCall("SetCore", "ResetButtonCallback", false))

StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.All, false) -- Disable core elements

Removing the assert did nothing (no errors, but reset button still there)

What I do to personally achieve this (and so far haven’t run into any issues) is putting this at the top of my code:

if not game:IsLoaded() then
game.Loaded:Wait()
end

That will force the local script to wait until everything has loaded in for them. Sometimes when a player joins the CoreGui hasn’t fully loaded, hence this issue. I’ve never experienced this error using this method.

Even with a 1 second wait, still errors every so often

Irrelevant but how do you have those “themes/icons”? Just curious.