# Lua Documentation

## Lua Documentation

- [Practical Information](https://docs.cherax.vip/practical-information.md)
- [API Reference](https://docs.cherax.vip/lua-documentation/api-reference.md)
- [Classes](https://docs.cherax.vip/lua-documentation/api-reference/classes.md): Some classes that are automatically imported when loading a script.
- [vec2](https://docs.cherax.vip/lua-documentation/api-reference/classes/vec2.md)
- [vec3](https://docs.cherax.vip/lua-documentation/api-reference/classes/vec3.md)
- [g\_lua](https://docs.cherax.vip/lua-documentation/api-reference/g_lua.md)
- [register](https://docs.cherax.vip/lua-documentation/api-reference/g_lua/register.md): This function has to be called exactly once at the beginning of your script.
- [unregister](https://docs.cherax.vip/lua-documentation/api-reference/g_lua/unregister.md): This function indicates that the script wants to be unloaded.
- [load\_lua](https://docs.cherax.vip/lua-documentation/api-reference/g_lua/load_lua.md): Loads a lua and executes it.
- [g\_memory](https://docs.cherax.vip/lua-documentation/api-reference/g_memory.md)
- [get\_base\_address](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/get_base_address.md): Returns the base address for the given module.
- [scan\_pattern](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/scan_pattern.md): Scans the module for a specific IDA-Style pattern. Returns the address of the scan result.
- [rip](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/rip.md): Reads an offset from the instruction and returns the resulting address.
- [allocate](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/allocate.md): Allocated given bytes and return a pointer to the memory. Do not forget to free the memory after using it.
- [free](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/free.md)
- [write\_byte](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_byte.md)
- [write\_short](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_short.md)
- [write\_int](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_int.md)
- [write\_long\_long](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_long_long.md)
- [write\_float](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_float.md)
- [write\_double](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_double.md)
- [write\_string](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/write_string.md)
- [read\_byte](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_byte.md)
- [read\_short](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_short.md)
- [read\_int](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_int.md)
- [read\_long\_long](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_long_long.md)
- [read\_float](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_float.md)
- [read\_double](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_double.md)
- [read\_string](https://docs.cherax.vip/lua-documentation/api-reference/g_memory/read_string.md)
- [g\_logger](https://docs.cherax.vip/lua-documentation/api-reference/g_logger.md)
- [log\_info](https://docs.cherax.vip/lua-documentation/api-reference/g_logger/log_info.md): Logs given text to the cherax console.
- [g\_gui](https://docs.cherax.vip/lua-documentation/api-reference/g_gui.md): Options to communicate with the default gui.
- [is\_open](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/is_open.md): Returns whether the main cherax windo is opened or not.
- [open](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/open.md): opens the GUI
- [close](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/close.md): closes the GUI
- [toggle](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/toggle.md): toggles the GUI
- [add\_toast](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_toast.md): Adds a notifcation on the top right corner.
- [add\_button](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_button.md): Adds a button to one of the main cherax child windows. The name can be obtained by right clicking on the child.
- [add\_toggle](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_toggle.md): Adds a toggle to one of the main cherax child windows. The name can be obtained by right clicking on the child.
- [add\_input\_int](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_input_int.md): Adds an integer input field to one of the main cherax child windows. The name can be obtained by right clicking on the child.
- [add\_input\_float](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_input_float.md): Adds a float input field to one of the main cherax child windows. The name can be obtained by right clicking on the child.
- [add\_input\_string](https://docs.cherax.vip/lua-documentation/api-reference/g_gui/add_input_string.md)
- [g\_hooking](https://docs.cherax.vip/lua-documentation/api-reference/g_hooking.md)
- [register\_D3D\_hook](https://docs.cherax.vip/lua-documentation/api-reference/g_hooking/register_d3d_hook.md): Registers a function which gets called on every frame. It returns an ID used for unregistering the hook.
- [register\_wndproc\_hook](https://docs.cherax.vip/lua-documentation/api-reference/g_hooking/register_wndproc_hook.md): Registers a function which gets called on every input. It returns an ID used for unregistering the hook.
- [register\_scripted\_game\_event\_hook](https://docs.cherax.vip/lua-documentation/api-reference/g_hooking/register_scripted_game_event_hook.md): Registers a function which gets called on every received scripted game event. It returns an ID used for unregistering the hook. Hoook should either return true or false.
- [unregister\_hook](https://docs.cherax.vip/lua-documentation/api-reference/g_hooking/unregister_hook.md): Removes hook by given id.
- [g\_math](https://docs.cherax.vip/lua-documentation/api-reference/g_math.md)
- [sin](https://docs.cherax.vip/lua-documentation/api-reference/g_math/sin.md)
- [cos](https://docs.cherax.vip/lua-documentation/api-reference/g_math/cos.md)
- [tan](https://docs.cherax.vip/lua-documentation/api-reference/g_math/tan.md)
- [g\_util](https://docs.cherax.vip/lua-documentation/api-reference/g_util.md)
- [yield](https://docs.cherax.vip/lua-documentation/api-reference/g_util/yield.md): If executed within scripting thread, the thread will be paused for the given time.
- [is\_session\_started](https://docs.cherax.vip/lua-documentation/api-reference/g_util/is_session_started.md): Returns whether the player is in an online session or not.
- [get\_selected\_player](https://docs.cherax.vip/lua-documentation/api-reference/g_util/get_selected_player.md): Returns the current selected player in the player list of the menu.
- [trigger\_script\_event](https://docs.cherax.vip/lua-documentation/api-reference/g_util/trigger_script_event.md)
- [get\_menu\_version](https://docs.cherax.vip/lua-documentation/api-reference/g_util/get_menu_version.md): Returns the current menu version.
- [joaat](https://docs.cherax.vip/lua-documentation/api-reference/g_util/joaat.md)
- [play\_wav\_file](https://docs.cherax.vip/lua-documentation/api-reference/g_util/play_wav_file.md)
- [g\_imgui](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui.md): All of these functions can only be executed within a D3D hook. https://github.com/ocornut/imgui
- [Globals](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/globals.md): Flags used by ImGui.
- [get\_display\_size](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/get_display_size.md)
- [set\_next\_window\_size](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/set_next_window_size.md)
- [set\_next\_window\_pos](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/set_next_window_pos.md)
- [get\_window\_size](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/get_window_size.md)
- [get\_window\_pos](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/get_window_pos.md)
- [push\_style\_var](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/push_style_var.md): Pushes a style onto the stack.
- [pop\_style\_var](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/pop_style_var.md): Pops a style from the stack.
- [begin\_window](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_window.md)
- [end\_window](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_window.md)
- [begin\_child](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_child.md)
- [end\_child](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_child.md)
- [same\_line](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/same_line.md)
- [new\_line](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/new_line.md)
- [separator](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/separator.md)
- [columns](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/columns.md)
- [next\_column](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/next_column.md)
- [set\_column\_offset](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/set_column_offset.md)
- [is\_item\_hovered](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/is_item_hovered.md): Returns whether the last item is being hovered by the mouse or not.
- [add\_line](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_line.md)
- [add\_circle](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_circle.md)
- [add\_circle\_filled](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_circle_filled.md)
- [add\_rect](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_rect.md)
- [add\_rect\_filled](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_rect_filled.md)
- [set\_next\_item\_width](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/set_next_item_width.md)
- [get\_content\_region\_avail](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/get_content_region_avail.md)
- [add\_button](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_button.md)
- [add\_checkbox](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_checkbox.md)
- [add\_input\_string](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_input_string.md)
- [add\_input\_string\_with\_hint](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_input_string_with_hint.md)
- [add\_text](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_text.md)
- [add\_triangle](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_triangle.md)
- [add\_triangle\_filled](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/add_triangle_filled.md)
- [begin\_main\_menu\_bar](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_main_menu_bar.md)
- [end\_main\_menu\_bar](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_main_menu_bar.md)
- [begin\_menu](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_menu.md)
- [end\_menu](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_menu.md)
- [menu\_item](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/menu_item.md)
- [begin\_tab\_bar](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_tab_bar.md)
- [end\_tab\_bar](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_tab_bar.md)
- [begin\_tab\_item](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_tab_item.md)
- [end\_tab\_item](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_tab_item.md)
- [open\_popup](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/open_popup.md)
- [close\_current\_popup](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/close_current_popup.md)
- [is\_popup\_open](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/is_popup_open.md)
- [begin\_popup](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/begin_popup.md)
- [end\_popup](https://docs.cherax.vip/lua-documentation/api-reference/g_imgui/end_popup.md)
- [g\_os](https://docs.cherax.vip/lua-documentation/api-reference/g_os.md)
- [time](https://docs.cherax.vip/lua-documentation/api-reference/g_os/time.md)
- [time\_ms](https://docs.cherax.vip/lua-documentation/api-reference/g_os/time_ms.md)
- [finger\_print](https://docs.cherax.vip/lua-documentation/api-reference/g_os/finger_print.md): Returns a string that is unique on every pc.
- [NATIVES](https://docs.cherax.vip/lua-documentation/api-reference/natives.md)
- [POOL](https://docs.cherax.vip/lua-documentation/api-reference/natives/pool.md)
- [PLAYER](https://docs.cherax.vip/lua-documentation/api-reference/natives/player.md)
- [SYSTEM](https://docs.cherax.vip/lua-documentation/api-reference/natives/system.md)
- [CAM](https://docs.cherax.vip/lua-documentation/api-reference/natives/cam.md)
- [DECORATOR](https://docs.cherax.vip/lua-documentation/api-reference/natives/decorator.md)
- [WORLDPROBE](https://docs.cherax.vip/lua-documentation/api-reference/natives/worldprobe.md)
- [STATS](https://docs.cherax.vip/lua-documentation/api-reference/natives/stats.md)
- [CLOCK](https://docs.cherax.vip/lua-documentation/api-reference/natives/clock.md)
- [FIRE](https://docs.cherax.vip/lua-documentation/api-reference/natives/fire.md)
- [STREAMING](https://docs.cherax.vip/lua-documentation/api-reference/natives/streaming.md)
- [CUTSCENE](https://docs.cherax.vip/lua-documentation/api-reference/natives/cutscene.md)
- [WATER](https://docs.cherax.vip/lua-documentation/api-reference/natives/water.md)
- [AUDIO](https://docs.cherax.vip/lua-documentation/api-reference/natives/audio.md)
- [INTERIOR](https://docs.cherax.vip/lua-documentation/api-reference/natives/interior.md)
- [TASK](https://docs.cherax.vip/lua-documentation/api-reference/natives/task.md)
- [CONTROL](https://docs.cherax.vip/lua-documentation/api-reference/natives/control.md)
- [NETWORK](https://docs.cherax.vip/lua-documentation/api-reference/natives/network.md)
- [OBJECT](https://docs.cherax.vip/lua-documentation/api-reference/natives/object.md)
- [ENTITY](https://docs.cherax.vip/lua-documentation/api-reference/natives/entity.md)
- [VEHICLE](https://docs.cherax.vip/lua-documentation/api-reference/natives/vehicle.md)
- [WEAPON](https://docs.cherax.vip/lua-documentation/api-reference/natives/weapon.md)
- [SCRIPT](https://docs.cherax.vip/lua-documentation/api-reference/natives/script.md)
- [PED](https://docs.cherax.vip/lua-documentation/api-reference/natives/ped.md)
- [MISC](https://docs.cherax.vip/lua-documentation/api-reference/natives/misc.md)
- [GAMEPLAY](https://docs.cherax.vip/lua-documentation/api-reference/natives/gameplay.md)
- [UI](https://docs.cherax.vip/lua-documentation/api-reference/natives/ui.md)
- [GRAPHICS](https://docs.cherax.vip/lua-documentation/api-reference/natives/graphics.md)
- [MOBILE](https://docs.cherax.vip/lua-documentation/api-reference/natives/mobile.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://docs.cherax.vip/practical-information.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
