API reference
lynx
Functions
client.set_event_callbackclient.unset_event_callbackclient.delay_callclient.reload_active_scriptsclient.logclient.color_logclient.error_logclient.screen_sizeclient.timestampclient.unix_timeclient.system_timeclient.random_intclient.random_floatclient.get_lynx_userclient.gameclient.touchclient.tapglobals.realtimeglobals.curtimeglobals.framecountglobals.frametimeglobals.absoluteframetimeui.new_checkboxui.new_sliderui.new_comboboxui.new_multiselectui.new_listboxui.new_textboxui.new_buttonui.new_labelui.new_color_pickerui.new_hotkeyui.new_stringui.new_tabui.new_popoverui.attach_popoverui.new_watermark_itemui.load_iconui.set_iconui.set_enabledui.set_visibleui.set_callbackui.referenceui.getui.setui.updateui.nameui.is_menu_openui.menu_positionui.menu_sizeui.mouse_positionui.notifyrenderer.textrenderer.measure_textrenderer.rectanglerenderer.gradientrenderer.linerenderer.circlerenderer.circle_outlinerenderer.trianglerenderer.texturerenderer.load_pngrenderer.load_jpgrenderer.load_svgrenderer.load_rgbarenderer.indicatorrenderer.polylinerenderer.world_to_screenhttp.gethttp.posthttp.requestwebsocket.connectjson.decodejson.encodejson.parsejson.stringifybit.tobitbit.tohexbit.bnotbit.bandbit.borbit.bxorbit.lshiftbit.rshiftbit.arshiftbit.rolbit.rorbit.bswapdatabase.readdatabase.writehash.fnv1ahash.fnv1a32vector.absvector.deg_to_radvector.rad_to_degvector.wrap_pivector.angle_deltavector.round4vector.dotvector.crossvector.length_squaredvector.lengthvector.distance_squaredvector.distancevector.is_zerovector.approx_equalvector.normalizevector.perpendicularvector.rotatedvector.angle_ofvector.from_anglevector.lerpvector.reflectvector.projectvector.minvector.maxvector.intersectionvector.inset
client.set_event_callback(event, fn)
Register fn to run on event. Unknown event names raise an error.
Parameters
| Name | Type | Description |
|---|---|---|
eventrequired | string | |
fnrequired | fun(e: table) |
Returns
Nothing.
client.unset_event_callback(event, fn)
Remove a callback previously registered for event.
Parameters
| Name | Type | Description |
|---|---|---|
eventrequired | string | |
fnrequired | fun(e: table) |
Returns
Nothing.
client.delay_call(delay, fn, ...)
Run fn on a later frame, delay seconds from now. Extra arguments are forwarded to fn.
Parameters
| Name | Type | Description |
|---|---|---|
delayrequired | number | |
fnrequired | function | |
...required | any |
Returns
Nothing.
client.reload_active_scripts()
Reload every loaded script, this one included.
Returns
Nothing.
client.log(...)
Append a line to the script console. Arguments are concatenated, like print.
Parameters
| Name | Type | Description |
|---|---|---|
...required | any |
Returns
Nothing.
client.color_log(r, g, b, ...)
Append a coloured console line. The first three arguments are the 0-255 RGB channels; the rest are the message.
Parameters
| Name | Type | Description |
|---|---|---|
rrequired | integer | |
grequired | integer | |
brequired | integer | |
...required | any |
Returns
Nothing.
client.error_log(...)
Append a red error line to the console.
Parameters
| Name | Type | Description |
|---|---|---|
...required | any |
Returns
Nothing.
client.screen_size()
The overlay size in pixels.
Returns
| Name | Type | Description |
|---|---|---|
widthrequired | number | |
heightrequired | number |
client.timestamp()
Milliseconds on a high-precision monotonic clock, counted from when the process started.
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
client.unix_time()
Seconds since the Unix epoch.
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
client.system_time()
The local wall-clock time of day.
Returns
| Name | Type | Description |
|---|---|---|
hourrequired | integer | |
minuterequired | integer | |
secondrequired | integer | |
millisecondrequired | integer |
client.random_int(min, max)
A uniform random integer in [min, max].
Parameters
| Name | Type | Description |
|---|---|---|
minrequired | integer | |
maxrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
client.random_float(min, max)
A uniform random number in [min, max).
Parameters
| Name | Type | Description |
|---|---|---|
minrequired | number | |
maxrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
client.get_lynx_user()
The signed-in Lynx user.
Returns
| Name | Type | Description |
|---|---|---|
| value | lynx_user |
client.game()
The game key this build mods, e.g. "8ball_pool".
Returns
| Name | Type | Description |
|---|---|---|
| value | string |
client.touch()
The current touch point.
Returns
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
downrequired | boolean |
client.tap(x, y)
Synthesise a tap at overlay pixel x, y. Needs the input capability.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
sentrequired | boolean |
globals.realtime()
Seconds since load, sampled live.
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
globals.curtime()
Seconds since load, as of the current frame.
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
globals.framecount()
The game frame counter the runtime is on.
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
globals.frametime()
Seconds between the last two frames.
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
globals.absoluteframetime()
Alias of frametime.
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
ui.new_checkbox(tab, container, name)
A checkbox.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_slider(tab, container, name, min, max, initial?, show_tooltip?, unit?, scale?, tooltips?)
A slider over [min, max]. tooltips maps whole values to labels.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
minrequired | number | |
maxrequired | number | |
initial | number | |
show_tooltip | boolean | |
unit | string | |
scale | number | |
tooltips | table<integer, string> |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_combobox(tab, container, name, ...)
A single-select combobox. Options are passed as extra string arguments or as one array.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
...required | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_multiselect(tab, container, name, ...)
A multi-select list. Options are extra string arguments or one array; at most 32.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
...required | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_listbox(tab, container, name, items)
A listbox of items.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
itemsrequired | string[] |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_textbox(tab, container, name)
A single-line text field.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_label(tab, container, text)
A static label showing text.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
textrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_color_picker(tab, container, name, r?, g?, b?, a?)
A colour picker. Attaches to the previous row in the container when there is one, like gamesense.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
r | integer | |
g | integer | |
b | integer | |
a | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_hotkey(tab, container, name)
A hotkey row.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_string(name, default?)
A named string that persists in the menu config but draws no row.
Parameters
| Name | Type | Description |
|---|---|---|
namerequired | string | |
default | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_tab(name, icon?)
Create (or find) a menu tab.
Parameters
| Name | Type | Description |
|---|---|---|
namerequired | string | |
icon | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_popover(tab, container, name, icon?)
A popover usable as the container argument of the new_* builders.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string | |
icon | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.attach_popover(item)
The dots-popover attached to a menu row.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.new_watermark_item(name, icon?)
A watermark row whose text is set with ui.set.
Parameters
| Name | Type | Description |
|---|---|---|
namerequired | string | |
icon | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.load_icon(name, bytes)
Register an icon by name from SVG or PNG bytes, for use with new_tab, new_popover and set_icon.
Parameters
| Name | Type | Description |
|---|---|---|
namerequired | string | |
bytesrequired | string |
Returns
Nothing.
ui.set_icon(item, icon)
Set a row's icon by a registered name.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
iconrequired | string |
Returns
Nothing.
ui.set_enabled(item, enabled)
Enable or disable a row.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
enabledrequired | boolean |
Returns
Nothing.
ui.set_visible(item, visible)
Show or hide a row.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
visiblerequired | boolean |
Returns
Nothing.
ui.set_callback(item, fn)
Call fn whenever the item's value changes.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
fnrequired | fun(item: ScriptHandle) |
Returns
Nothing.
ui.reference(tab, container, name)
Find a built-in Lynx widget by tab, container and name (raw key or translated label, case-insensitive), including ones inside popovers.
Parameters
| Name | Type | Description |
|---|---|---|
tabrequired | string | |
containerrequired | string | |
namerequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | ScriptHandle |
ui.get(item)
Read an item's value: checkbox boolean; slider number; combobox string; multiselect string array; listbox zero-based index; colour r, g, b, a (0-255); textbox, string, label and watermark string; hotkey pressed, key.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle |
Returns
| Name | Type | Description |
|---|---|---|
| value | any | ... |
ui.set(item, ...)
Set an item's value; the argument shape matches what ui.get returns. Fires the item's callback.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
...required | any |
Returns
Nothing.
ui.update(item, ...)
Replace the options of a combobox, multiselect or listbox the script created.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle | |
...required | string |
Returns
Nothing.
ui.name(item)
The item's name.
Parameters
| Name | Type | Description |
|---|---|---|
itemrequired | ScriptHandle |
Returns
| Name | Type | Description |
|---|---|---|
| value | string |
ui.mouse_position()
The pointer position in overlay pixels.
Returns
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number |
ui.notify(text, seconds?)
Show a toast for seconds (default 3).
Parameters
| Name | Type | Description |
|---|---|---|
textrequired | string | |
seconds | number |
Returns
Nothing.
renderer.text(x, y, r, g, b, a, flags, max_width, ...)
Draw text. flags: + large, - small, c centred, r right-aligned, b bold. max_width of 0 does not wrap. Remaining arguments are concatenated into the string.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
flagsrequired | string | |
max_widthrequired | number | |
...required | any |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.measure_text(flags, ...)
Measure text without drawing it.
Parameters
| Name | Type | Description |
|---|---|---|
flagsrequired | string | |
...required | any |
Returns
| Name | Type | Description |
|---|---|---|
widthrequired | number | |
heightrequired | number |
renderer.rectangle(x, y, w, h, r, g, b, a)
A filled rectangle at x, y sized w, h.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
wrequired | number | |
hrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.gradient(x, y, w, h, r1, g1, b1, a1, r2, g2, b2, a2, ltr)
A two-colour gradient rectangle. ltr true fills left-to-right, otherwise top-to-bottom.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
wrequired | number | |
hrequired | number | |
r1required | integer | |
g1required | integer | |
b1required | integer | |
a1required | integer | |
r2required | integer | |
g2required | integer | |
b2required | integer | |
a2required | integer | |
ltrrequired | boolean |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.line(xa, ya, xb, yb, r, g, b, a)
A line from (xa, ya) to (xb, yb).
Parameters
| Name | Type | Description |
|---|---|---|
xarequired | number | |
yarequired | number | |
xbrequired | number | |
ybrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.circle(x, y, r, g, b, a, radius, start_degrees?, percentage?)
A filled circle, or an arc when start_degrees/percentage (0-1) are given.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
radiusrequired | number | |
start_degrees | number | |
percentage | number |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.circle_outline(x, y, r, g, b, a, radius, start_degrees?, percentage?, thickness?)
A circle or arc outline of thickness.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
radiusrequired | number | |
start_degrees | number | |
percentage | number | |
thickness | number |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.triangle(x0, y0, x1, y1, x2, y2, r, g, b, a)
A filled triangle through the three points.
Parameters
| Name | Type | Description |
|---|---|---|
x0required | number | |
y0required | number | |
x1required | number | |
y1required | number | |
x2required | number | |
y2required | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.texture(id, x, y, w, h, r, g, b, a, mode?)
Draw a loaded texture into the rectangle x, y, w, h, tinted by the colour. mode selects the fit.
Parameters
| Name | Type | Description |
|---|---|---|
idrequired | integer | |
xrequired | number | |
yrequired | number | |
wrequired | number | |
hrequired | number | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
mode | string |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.load_png(contents)
Upload a PNG and return a texture id.
Parameters
| Name | Type | Description |
|---|---|---|
contentsrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
idrequired | integer |
renderer.load_jpg(contents)
Upload a JPEG and return a texture id.
Parameters
| Name | Type | Description |
|---|---|---|
contentsrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
idrequired | integer |
renderer.load_svg(contents)
Upload an SVG and return a texture id.
Parameters
| Name | Type | Description |
|---|---|---|
contentsrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
idrequired | integer |
renderer.load_rgba(contents, width, height)
Upload raw RGBA pixels and return a texture id.
Parameters
| Name | Type | Description |
|---|---|---|
contentsrequired | string | |
widthrequired | integer | |
heightrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
idrequired | integer |
renderer.indicator(r, g, b, a, ...)
A stacked top-left indicator line. Returns its y, or nil when the frame's draw budget is full.
Parameters
| Name | Type | Description |
|---|---|---|
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
...required | any |
Returns
| Name | Type | Description |
|---|---|---|
yrequired | number|nil |
renderer.polyline(points, r, g, b, a, thickness?)
Draw a connected path through points ({ {x=, y=}, ... }). A Lynx extra for drawing custom prediction paths.
Parameters
| Name | Type | Description |
|---|---|---|
pointsrequired | vec2[] | |
rrequired | integer | |
grequired | integer | |
brequired | integer | |
arequired | integer | |
thickness | number |
Returns
| Name | Type | Description |
|---|---|---|
drawnrequired | boolean |
renderer.world_to_screen(x, y, z?)
Project a game point to overlay pixels. On the table games the input is table coordinates. Returns nil when the point is off-screen or the transform is unavailable.
Parameters
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
z | number |
Returns
| Name | Type | Description |
|---|---|---|
sxrequired | number|nil | |
syrequired | number|nil |
http.get(url, options?, callback)
GET url. Pass a callback, or options then a callback. callback(success, response).
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | |
options | http_options | |
callbackrequired | fun(success: boolean, response: http_response) |
Returns
Nothing.
http.post(url, options, callback)
POST url with options. callback(success, response).
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | |
optionsrequired | http_options | |
callbackrequired | fun(success: boolean, response: http_response) |
Returns
Nothing.
http.request(method, url, options, callback)
Send method ("GET" or "POST") to url. callback(success, response).
Parameters
| Name | Type | Description |
|---|---|---|
methodrequired | string | |
urlrequired | string | |
optionsrequired | http_options | |
callbackrequired | fun(success: boolean, response: http_response) |
Returns
Nothing.
websocket.connect(url, handlers)
Open a connection to url. Returns the socket, or nil when the URL is refused or the per-script limit is reached.
Parameters
| Name | Type | Description |
|---|---|---|
urlrequired | string | |
handlersrequired | websocket_handlers |
Returns
| Name | Type | Description |
|---|---|---|
| value | socket|nil |
json.decode(text)
Decode a JSON string to a Lua value.
Parameters
| Name | Type | Description |
|---|---|---|
textrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | any |
json.encode(value)
Encode a Lua value to a JSON string.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | any |
Returns
| Name | Type | Description |
|---|---|---|
| value | string |
json.parse(text)
Alias of decode.
Parameters
| Name | Type | Description |
|---|---|---|
textrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | any |
json.stringify(value)
Alias of encode.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | any |
Returns
| Name | Type | Description |
|---|---|---|
| value | string |
bit.tobit(value)
Normalise a number to a 32-bit integer.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.tohex(value, n?)
Hex string of value; n digits (negative for uppercase), default 8.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
n | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | string |
bit.bnot(value)
Bitwise NOT.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.band(value, ...)
Bitwise AND of every argument.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
...required | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.bor(value, ...)
Bitwise OR of every argument.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
...required | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.bxor(value, ...)
Bitwise XOR of every argument.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
...required | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.lshift(value, shift)
Left shift by shift bits.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
shiftrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.rshift(value, shift)
Logical right shift by shift bits.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
shiftrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.arshift(value, shift)
Arithmetic right shift by shift bits.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
shiftrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.rol(value, shift)
Rotate left by shift bits.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
shiftrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.ror(value, shift)
Rotate right by shift bits.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number | |
shiftrequired | integer |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
bit.bswap(value)
Swap the byte order of a 32-bit integer.
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | integer |
database.read(key)
Read key. Returns the stored value, or nil when it is absent.
Parameters
| Name | Type | Description |
|---|---|---|
keyrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | any |
database.write(key, value)
Write value under key. Returns true on success, or nil on failure.
Parameters
| Name | Type | Description |
|---|---|---|
keyrequired | string | |
valuerequired | any |
Returns
| Name | Type | Description |
|---|---|---|
| value | boolean|nil |
hash.fnv1a(text)
Parameters
| Name | Type | Description |
|---|---|---|
textrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | std::int64_t |
hash.fnv1a32(text)
Parameters
| Name | Type | Description |
|---|---|---|
textrequired | string |
Returns
| Name | Type | Description |
|---|---|---|
| value | std::uint32_t |
vector.abs(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(value: vec2): vec2fun(value: vec3): vec3
vector.deg_to_rad(degrees)
Parameters
| Name | Type | Description |
|---|---|---|
degreesrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.rad_to_deg(radians)
Parameters
| Name | Type | Description |
|---|---|---|
radiansrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.wrap_pi(radians)
Parameters
| Name | Type | Description |
|---|---|---|
radiansrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.angle_delta(from, to)
Parameters
| Name | Type | Description |
|---|---|---|
fromrequired | number | |
torequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.round4(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.dot(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(a: vec3, b: vec3): number
vector.cross(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(a: vec3, b: vec3): vec3
vector.length_squared(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(value: vec3): number
vector.length(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(value: vec3): number
vector.distance_squared(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(a: vec3, b: vec3): number
vector.distance(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
Overloads
fun(a: vec3, b: vec3): number
vector.is_zero(value, tolerance)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 | |
tolerancerequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | boolean |
Overloads
fun(value: vec2): booleanfun(value: vec3, tolerance: number): booleanfun(value: vec3): boolean
vector.approx_equal(a, b, tolerance)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | boolean |
Overloads
fun(a: vec2, b: vec2): booleanfun(a: vec3, b: vec3, tolerance: number): booleanfun(a: vec3, b: vec3): boolean
vector.normalize(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 |
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(value: vec3): vec3
vector.perpendicular(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 |
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
vector.rotated(value, radians)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 | |
radiansrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
vector.angle_of(value)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | vec2 |
Returns
| Name | Type | Description |
|---|---|---|
| value | number |
vector.from_angle(radians, magnitude)
Parameters
| Name | Type | Description |
|---|---|---|
radiansrequired | number | |
magnituderequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(radians: number): vec2
vector.lerp(from, to, ratio)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(from: vec3, to: vec3, ratio: number): vec3
vector.reflect(value, unit_normal)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(value: vec3, unit_normal: vec3): vec3
vector.project(value, onto)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(value: vec3, onto: vec3): vec3
vector.min(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(a: vec3, b: vec3): vec3
vector.max(a, b)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | vec2 |
Overloads
fun(a: vec3, b: vec3): vec3
vector.intersection(first, second)
Parameters
Returns
| Name | Type | Description |
|---|---|---|
| value | rect |
vector.inset(value, by)
Parameters
| Name | Type | Description |
|---|---|---|
valuerequired | rect | |
byrequired | number |
Returns
| Name | Type | Description |
|---|---|---|
| value | rect |
Types
vec2
A point or direction in two dimensions. Any table with numeric x and y is accepted.
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number |
vec3
A point or direction in three dimensions. Any table with numeric x, y and z is accepted.
| Name | Type | Description |
|---|---|---|
xrequired | number | |
yrequired | number | |
zrequired | number |
rect
An axis-aligned rectangle.
color
An RGBA colour. Every channel is 0-255.
| Name | Type | Description |
|---|---|---|
rrequired | number | |
grequired | number | |
brequired | number | |
arequired | number |
ScriptHandle
An opaque menu-item handle returned by the ui.new_* builders. Stale once the menu is rebuilt.
No fields; the value is opaque.
lynx_user
The signed-in Lynx user. A field is absent when its value is unknown.
| Name | Type | Description |
|---|---|---|
usernamerequired | string | |
uidrequired | string | |
emailrequired | string | |
avatarrequired | string | |
planrequired | string | |
expires_atrequired | integer | Unix seconds; absent when the plan does not expire. |
client
The always-present client global. The chunk's top level runs once, at load; everything after that is an event.
Base events, delivered to the callback with one table argument: paint (draw only here, once per frame), shutdown (the script is unloading), menu_open and menu_close (the Lynx menu opened or closed). Each game adds its own events; see the game's reference page.
No fields; the value is opaque.
globals
Frame-timing globals, gamesense-style.
No fields; the value is opaque.
ui
Build and read menu widgets. gamesense-compatible; Lynx adds tabs, popovers, icons, watermark rows and toasts. A tab or container that does not exist yet is created.
No fields; the value is opaque.
renderer
Immediate-mode overlay drawing. Call these only inside the paint event. Colours are 0-255; coordinates are overlay pixels.
No fields; the value is opaque.
http_options
Request options for an HTTP call.
| Name | Type | Description |
|---|---|---|
headers | table<string, string> | |
body | string |
http_response
An HTTP response passed to a request callback.
| Name | Type | Description |
|---|---|---|
statusrequired | integer | |
bodyrequired | string | |
headersrequired | table<string, string> | |
error | integer | Present only when the request failed. |
http
Asynchronous HTTPS requests, off the game thread. Needs the http capability. https only, any host.
No fields; the value is opaque.
socket
An open WebSocket connection returned by websocket.connect.
| Name | Type | Description |
|---|---|---|
sendrequired | fun(self: socket, text: string): boolean | Send a text frame; returns whether it was sent. |
closerequired | fun(self: socket, code?: integer) | Close the connection with an optional status code. |
websocket_handlers
The callbacks a WebSocket delivers.
| Name | Type | Description |
|---|---|---|
open | fun() | |
message | fun(text: string) | |
close | fun(code: integer, reason: string) | |
error | fun(message: string) |
websocket
Asynchronous WebSocket client, off the game thread. Needs the websocket capability. wss only.
No fields; the value is opaque.
json
JSON encode and decode (lua-cjson), with gamesense-style aliases.
No fields; the value is opaque.
bit
Bitwise operations on 32-bit integers, LuaBitOp-compatible.
No fields; the value is opaque.
database
A per-script persistent key/value store, JSON-encoded on top of the script's storage directory. 64 KiB per script.
No fields; the value is opaque.
hash
No fields; the value is opaque.
vector
No fields; the value is opaque.