Index nil WaitForChild

i got waitforchild is nil but inside the tool there is a folder and script get the tool but after the invokeserver its nil this are the lines

self.UISModule.Rounds, self.UISModule.ReservedRounds = required_RemoteHandler.NotifyServer("GetInfo", "InvokeServer", self.tool)``` here is the invokeserver going to a remotehandler module and this is the remotehandler module script
```lua
local RemoteHandlerModule = {}
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local EventsFolder = ReplicatedStorage:WaitForChild("Events")

function RemoteHandlerModule.NotifyServer(event, eventType, ...)
    if type(event) == "string" then
        event = EventsFolder:FindFirstChild(event, true)
    end
    if not event then
        error("No event by the name of "..event.." has been found")
        return
    end
    
    return event[eventType](event, ...)
end

return RemoteHandlerModule
``` and this is the script from the onserverinvoke ```lua
function GetInfoRemoteFunction.OnServerInvoke(player, tool)
    print(tool)
    local scriptsFolder = tool:WaitForChild("Scripts")
    local infoFolder = tool:WaitForChild("Info")
    local ReservedRoundsIntValue = infoFolder:WaitForChild("ReservedRounds")
    local RoundsIntValue = infoFolder:WaitForChild("Rounds")


    local required_settingsModule = require(scriptsFolder:WaitForChild("Settings"))

    local Rounds, ReservedRounds=GetAmmoInfo(tool, required_settingsModule, RoundsIntValue, ReservedRoundsIntValue)

    return Rounds, ReservedRounds
end```
and this is the error ```lua
attempt to index nil with 'WaitForChild``` i try to find something that can help me on the devforum but i didnt can find anything

This only happens when i clone the tool to the player backpack