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

# getsignalarguments

> Returns an array table of type names read from an RBXScriptSignal event descriptor signature. The first argument must be object whose Luau type name is RBXScriptSignal. The function reads the signal's event descriptor, walks the signature slots with the Real's argument stride, reads each argument type reference, and pushes the resolved type name string for each slot. It does not return captured runtime argument values. If the signature cannot be read or no entries are pushed, the returned table contains one fallback entry: "Variant".

<div className="real-function-page">
  ```lua theme={null}
  getsignalarguments(signal: RBXScriptSignal): {string}
  ```

  ## Arguments

  <ParamField path={"signal"} type={"RBXScriptSignal"} required>
    Signal whose event descriptor signature should be inspected. Non-RBXScriptSignal object raises a type error.
  </ParamField>

  ## Returns

  <ResponseField name={"arguments"} type={"{string}"}>
    Array table of argument type name strings. A fallback table containing "Variant" is returned when the signature data cannot be read or no argument entries are produced.
  </ResponseField>

  ## Example

  Inspect an RBXScriptSignal signature and print the argument type names Real can read.

  ```lua theme={null}
  local ReplicatedStorage = game:GetService("ReplicatedStorage")
  local remote = ReplicatedStorage:FindFirstChild("RemoteEvent")

  if remote then
      for _, typeName in ipairs(getsignalarguments(remote.OnClientEvent)) do
          print(typeName)
      end
  end
  ```
</div>
