> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# restorefunction

> Restaure ou remplace une function en appelant function hook operation en interne et ne renvoie aucune values. Le first argument doit être une function. Avec un seul function argument, l function cherche the saved original function; si aucun entry n existe, elle lève "Function is not hooked". Elle appelle ensuite function hook operation avec la hooked closure et la stored original closure, vide le Lua stack et retire la restored closure de hook records lorsque la stored original a été utilisée. Si le second argument est aussi une function, l function traite plutôt firstFunction comme l original function à installer et secondFunction comme la closure à patcher. Dans cette forme, aucun missing-original check n est effectue avec la valeur stockee dans hook records; la valeur stockee est seulement comparee pendant le final remove check. Les non-function second arguments sont ignorés par la branch condition. restorefunc et restoreclosure sont des aliases de la même function.

<div className="real-function-page">
  ```lua theme={null}
  restorefunction(firstFunction: function, secondFunction?: function)
  ```

  ## Alias

  * `restorefunc`
  * `restoreclosure`

  ## Arguments

  <ParamField path={"firstFunction"} type={"function"} required>
    Avec un argument, la hooked closure à restaurer depuis hook records. Avec un function second argument, la function à installer dans secondFunction.
  </ParamField>

  <ParamField path={"secondFunction"} type={"function"}>
    Closure optionnelle à patcher avec firstFunction. Ce branch est utilisé uniquement lorsque le second argument est une function.
  </ParamField>

  ## Exemple

  Restore a hooked closure to its original function.

  ```lua theme={null}
  local function target()
      return "original"
  end

  hookfunction(target, function()
      return "hooked"
  end)

  print(target())

  restorefunction(target)

  print(target())
  ```
</div>
