> ## 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.

# hookfunction

> Faz hook de uma target function com uma replacement function e retorna uma cloned copy da original target closure. Ambos arguments devem ser functions. A function primeiro faz flush de pending C function swaps, faz cloning do target por function cloning, adiciona a replacement closure ou seu mapped newcclosure target a hidden stack tracking, chama FixCallstack para target e cloned original, e então aplica patch na target closure pelo C closure, Luau closure ou newcclosure-specific path. Se target ainda não estiver em hook records, o cloned original é armazenado ali para restorefunction. A returned function é a cloned original closure.

<div className="real-function-page">
  ```lua theme={null}
  hookfunction(target: function, replacement: function): function
  ```

  ## Aliases

  * `hookfunc`
  * `replaceclosure`
  * `detourfunction`
  * `detour_function`

  ## Argumentos

  <ParamField path={"target"} type={"function"} required>
    Function que receberá patch. Passar uma non-function gera um type error.
  </ParamField>

  <ParamField path={"replacement"} type={"function"} required>
    Function cuja function é install ou map em target. Passar uma non-function gera um type error.
  </ParamField>

  ## Retornos

  <ResponseField name={"original"} type={"function"}>
    Cloned copy da original target closure criada antes de instalar o hook.
  </ResponseField>

  ## Exemplo

  Patch a function closure and keep a cloned original.

  ```lua theme={null}
  local function target(value)
      return value + 1
  end

  local original
  original = hookfunction(target, function(value)
      return original(value) * 2
  end)
  ```
</div>
