--- title: string.find summary: Returns match start/end positions followed by pattern captures, or nil when unmatched. section: reference kind: api status: reference updated: 2026-10-26 tags: ["API","X4"] sources: ["https://wiki.egosoft.com/X4%20Foundations%20Wiki/Modding%20Support/","https://www.lua.org/manual/5.1/manual.html","https://luajit.org/ext_ffi_api.html"] --- ## Return value | Type | Meaning | | --- | --- | | ([`number`](wiki:type-number), [`number`](wiki:type-number), ...) \| [`nil`](wiki:type-nil) | Types describe the declared interface, not proof of a successful game effect. | [Types and methods](wiki:types) ## Parameters | Name | Type | | --- | --- | | `text` | [`string`](wiki:type-string) | | `pattern` | [`string`](wiki:type-string) | | `start?` | [`number`](wiki:type-number) | | `plain?` | [`boolean`](wiki:type-boolean) | ? marks an optional argument; ... means a variable number of arguments. Invalid input can raise a Lua error rather than return nil. ## Example and context ```lua local first, last = string.find("ship_name", "name", 1, true) ``` **What happens:** first = 6, last = 9; Lua indices start at 1. This fragment does not print or write a log message. The values shown are the expected results of the example. See [language basics](wiki:x4-code-basics), [types and methods](wiki:types) and [Lua / MD events](wiki:md-lua-bridge). Examples there are independent learning examples. No project source files or private implementation fragments are distributed with this reference.