{"id":198340,"date":"2025-09-13T08:24:08","date_gmt":"2025-09-13T06:24:08","guid":{"rendered":"https:\/\/fivemx.com\/?post_type=product&#038;p=198340"},"modified":"2025-12-24T07:29:59","modified_gmt":"2025-12-24T06:29:59","slug":"lb-telefone-v2","status":"publish","type":"product","link":"https:\/\/fivemx.com\/pt\/lb-phone-v2\/","title":{"rendered":"Telefone LB v2"},"content":{"rendered":"<p><iframe title=\"LB Phone 2.0 - FiveM\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/CirWSvYno70?feature=oembed\" loading=\"lazy\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h2 class=\"nx-mt-2 nx-text-4xl nx-font-bold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100\">Custom Apps<\/h2>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">LB Phone allows you to add apps that either have a UI or simply trigger functions when opening the app. To add an app that triggers a function upon opening it, go to\u00a0<code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\">lb-phone\/config\/config.lua<\/code>\u00a0and add the app to the\u00a0<code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\">Config.CustomApps<\/code>\u00a0table, like this:<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<div class=\"nx-absolute nx-top-0 nx-z-[1] nx-w-full nx-truncate nx-rounded-t-xl nx-bg-primary-700\/5 nx-py-2 nx-px-4 nx-text-xs nx-text-gray-700 dark:nx-bg-primary-300\/10 dark:nx-text-gray-200\">lb-phone\/config\/config.lua<\/div>\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-pt-12 nx-pb-4\" data-language=\"lua\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"lua\" data-theme=\"default\"><span class=\"line\">Config.CustomApps = {<\/span><span class=\"line\">    [\"app_identifier\"] = { -- A unique identifier for the app, not shown to the user<\/span><span class=\"line\">        name = \"App Name\", -- The name of the app, shown to the user<\/span><span class=\"line\">        description = \"App Description\", -- The description of the app, shown to the user<\/span><span class=\"line\">        developer = \"LB Phone\", -- OPTIONAL the developer of the app<\/span><span class=\"line\">        defaultApp = true, -- OPTIONAL if set to true, app should be added without having to download it,<\/span><span class=\"line\">        game = false, -- OPTIONAL if set to true, app will be added to the game section<\/span><span class=\"line\">        size = 59812, -- OPTIONAL in kB<\/span><span class=\"line\">        images = { \"https:\/\/example.com\/photo.jpg\" }, -- OPTIONAL array of images for the app on the app store<\/span><span class=\"line\">        ui = \"resource-name\/ui\/index.html\", -- OPTIONAL<\/span><span class=\"line\">        icon = \"https:\/\/cfx-nui-\" .. GetCurrentResourceName() .. \"\/ui\/icon.png\", -- OPTIONAL app icon<\/span><span class=\"line\">        price = 0, -- OPTIONAL, Make players pay with in-game money to download the app<\/span><span class=\"line\">        landscape = false, -- OPTIONAL, if set to true, the app will be displayed in landscape mode<\/span><span class=\"line\">        keepOpen = true, -- OPTIONAL, if set to true, the app will not close when the player opens the app (only works if ui is not defined)<\/span><span class=\"line\">        onUse = function() -- OPTIONAL function to be called when the app is opened<\/span><span class=\"line\">            -- do something<\/span><span class=\"line\">        end,<\/span><span class=\"line\">        onServerUse = function(source) -- OPTIONAL server side function to be called when the app is opened<\/span><span class=\"line\">            -- do something<\/span><span class=\"line\">        end<\/span><span class=\"line\">    }<\/span><span class=\"line\">}<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-8\"><\/div>\n<\/div>\n<h2 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-10 nx-border-b nx-pb-1 nx-text-3xl nx-border-neutral-200\/70 contrast-more:nx-border-neutral-400 dark:nx-border-primary-100\/10 contrast-more:dark:nx-border-neutral-400\">Custom apps using UI<a id=\"custom-apps-using-ui\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#custom-apps-using-ui\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h2>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">If you want to use a custom UI for your app, you need to create a seperate script and provide the path of the HTML file and send it as\u00a0<code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\">ui<\/code>.<\/p>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">The recommended way to create an app with UI is to create it using exports. We have\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/github.com\/lbphone\/lb-phone-app-template\/tree\/main\" target=\"_blank\" rel=\"noopener noreferrer\">template apps<\/a>\u00a0that you can use for reference.<\/p>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">If the user has dark mode enabled, data-theme will be set to dark. Otherwise, it will be set to light.<\/p>\n<h3 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-2xl\">Adding the app<a id=\"adding-the-app\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#adding-the-app\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h3>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">To add the app, use the\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/client-exports\/#addcustomapp\" target=\"_blank\" rel=\"noopener\">AddCustomApp<\/a>\u00a0export.<\/p>\n<h3 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-2xl\">Removing the app<a id=\"removing-the-app\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#removing-the-app\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h3>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">To remove the app, use the\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/client-exports\/#removecustomapp\" target=\"_blank\" rel=\"noopener\">RemoveCustomApp<\/a>\u00a0export.<\/p>\n<h3 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-2xl\">Sending a message to the UI<a id=\"sending-a-message-to-the-ui\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#sending-a-message-to-the-ui\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h3>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">To send a message to the UI, you need to use the\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/client-exports\/#sendcustomappmessage\" target=\"_blank\" rel=\"noopener\">SendCustomAppMessage<\/a>\u00a0export instead of using SendNUIMessage. You would listen for it the same way in the frontend.<\/p>\n<h2 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-10 nx-border-b nx-pb-1 nx-text-3xl nx-border-neutral-200\/70 contrast-more:nx-border-neutral-400 dark:nx-border-primary-100\/10 contrast-more:dark:nx-border-neutral-400\">Imported components &amp; functions<a id=\"imported-components--functions\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#imported-components--functions\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h2>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">When the app gets loaded on the phone, a few functions are imported into the\u00a0<code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\">globalThis<\/code>\u00a0object.<\/p>\n<table class=\"nx-block nx-overflow-x-scroll nextra-scrollbar nx-mt-6 nx-p-0 first:nx-mt-0\">\n<thead>\n<tr class=\"nx-m-0 nx-border-t nx-border-gray-300 nx-p-0 dark:nx-border-gray-600 even:nx-bg-gray-100 even:dark:nx-bg-gray-600\/20\">\n<th class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 nx-font-semibold dark:nx-border-gray-600\">Name<\/th>\n<th class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 nx-font-semibold dark:nx-border-gray-600\">Type<\/th>\n<th class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 nx-font-semibold dark:nx-border-gray-600\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"nx-m-0 nx-border-t nx-border-gray-300 nx-p-0 dark:nx-border-gray-600 even:nx-bg-gray-100 even:dark:nx-bg-gray-600\/20\">\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">resourceName<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">string<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">The name of the resource that added the custom app<\/td>\n<\/tr>\n<tr class=\"nx-m-0 nx-border-t nx-border-gray-300 nx-p-0 dark:nx-border-gray-600 even:nx-bg-gray-100 even:dark:nx-bg-gray-600\/20\">\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">appName<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">string<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">The app name<\/td>\n<\/tr>\n<tr class=\"nx-m-0 nx-border-t nx-border-gray-300 nx-p-0 dark:nx-border-gray-600 even:nx-bg-gray-100 even:dark:nx-bg-gray-600\/20\">\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">settings<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">object<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">The settings of the phone<\/td>\n<\/tr>\n<tr class=\"nx-m-0 nx-border-t nx-border-gray-300 nx-p-0 dark:nx-border-gray-600 even:nx-bg-gray-100 even:dark:nx-bg-gray-600\/20\">\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">components<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">object<\/td>\n<td class=\"nx-m-0 nx-border nx-border-gray-300 nx-px-4 nx-py-2 dark:nx-border-gray-600\">Useful\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#components\" target=\"_blank\" rel=\"noopener\">components<\/a>\u00a0for the app<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-2xl\">Components<a id=\"components\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#components\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h3>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">The following components can be accessed via\u00a0<code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\">globalThis.components<\/code>. You can view a TypeScript declaration file at\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/github.com\/lbphone\/lb-phone-app-template\/blob\/main\/lb-reactts\/ui\/src\/components.d.ts\" target=\"_blank\" rel=\"noopener noreferrer\">lb-reactts\/ui\/src\/components.d.ts<\/a>.<\/p>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">createGameRender<a id=\"creategamerender\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#creategamerender\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Creates a game render, which renders the game to a canvas. This is used to create a camera in your app, and should be used with the\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/client-exports\/#camera\" target=\"_blank\" rel=\"noopener\">camera exports<\/a>.<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">const gameRender = components.createGameRender(canvas)<\/span> <span class=\"line\">\/\/ set the aspect ratio<\/span><span class=\"line\">gameRender.resizeByAspect(9 \/ 16)<\/span> <span class=\"line\">\/\/ pause the rendering<\/span><span class=\"line\">gameRender.pause()<\/span> <span class=\"line\">\/\/ unpause the rendering<\/span><span class=\"line\">gameRender.resume()<\/span> <span class=\"line\">\/\/ take a photo<\/span><span class=\"line\">const blob: Blob = await gameRender.takePhoto()<\/span> <span class=\"line\">\/\/ take a video<\/span><span class=\"line\">const recorder = gameRender.startRecording((blob: Blob) =&gt; {<\/span><span class=\"line\">    const video = URL.createObjectURL(blob)<\/span><span class=\"line\">})<\/span> <span class=\"line\">await new Promise((resolve) =&gt; setTimeout(resolve, 5000))<\/span> <span class=\"line\">recorder.stop()<\/span> <span class=\"line\">\/\/ destroy the game render<\/span><span class=\"line\">gameRender.destroy()<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">uploadMedia<a id=\"uploadmedia\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#uploadmedia\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Uploads media and returns a promise with the URL.<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">\/\/ Upload type can be 'Video' | 'Image' | 'Audio'<\/span><span class=\"line\">const url = await components.uploadMedia('Video', blob)<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">saveToGallery<a id=\"savetogallery\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#savetogallery\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Saves a URL to the gallery and returns a promise with the ID<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">const id = await components.saveToGallery(url)<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setColorPicker<a id=\"setcolorpicker\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setcolorpicker\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setColorPicker({<\/span><span class=\"line\">    onSelect(color) {},<\/span><span class=\"line\">    onClose(color) {}<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setPopUp<a id=\"setpopup\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setpopup\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setPopUp({<\/span><span class=\"line\">    title: 'Popup Menu',<\/span><span class=\"line\">    description: 'Confirm your choice',<\/span><span class=\"line\">    buttons: [<\/span><span class=\"line\">        {<\/span><span class=\"line\">            title: 'Cancel',<\/span><span class=\"line\">            color: 'red',<\/span><span class=\"line\">            cb: () =&gt; {<\/span><span class=\"line\">                console.log('Cancel')<\/span><span class=\"line\">            }<\/span><span class=\"line\">        },<\/span><span class=\"line\">        {<\/span><span class=\"line\">            title: 'Confirm',<\/span><span class=\"line\">            color: 'blue',<\/span><span class=\"line\">            cb: () =&gt; {<\/span><span class=\"line\">                console.log('Confirm')<\/span><span class=\"line\">            }<\/span><span class=\"line\">        }<\/span><span class=\"line\">    ]<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setContextMenu<a id=\"setcontextmenu\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setcontextmenu\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setContextMenu({<\/span><span class=\"line\">    title: 'Context menu',<\/span><span class=\"line\">    buttons: [<\/span><span class=\"line\">        {<\/span><span class=\"line\">            title: 'Phone Notification',<\/span><span class=\"line\">            color: 'blue',<\/span><span class=\"line\">            cb: () =&gt; {<\/span><span class=\"line\">                sendNotification({ title: notificationText })<\/span><span class=\"line\">            }<\/span><span class=\"line\">        },<\/span><span class=\"line\">        {<\/span><span class=\"line\">            title: 'GTA Notification',<\/span><span class=\"line\">            color: 'red',<\/span><span class=\"line\">            cb: () =&gt; {<\/span><span class=\"line\">                fetchNui('drawNotification', { message: notificationText })<\/span><span class=\"line\">            }<\/span><span class=\"line\">        }<\/span><span class=\"line\">    ]<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setContactSelector<a id=\"setcontactselector\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setcontactselector\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setContactSelector({<\/span><span class=\"line\">    onSelect(contact) {<\/span><span class=\"line\">        components.setPopUp({<\/span><span class=\"line\">            title: 'Selected contact',<\/span><span class=\"line\">            description: `${contact.firstname ?? '??'} ${contact.lastname ?? ''} ${contact.number}`,<\/span><span class=\"line\">            buttons: [<\/span><span class=\"line\">                {<\/span><span class=\"line\">                    title: 'OK'<\/span><span class=\"line\">                }<\/span><span class=\"line\">            ]<\/span><span class=\"line\">        })<\/span><span class=\"line\">    }<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setShareComponent<a id=\"setsharecomponent\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setsharecomponent\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">See the\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/server-exports\/#airshare\" target=\"_blank\" rel=\"noopener\">AirShare export<\/a>\u00a0for what data to send.<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setShareComponent({<\/span><span class=\"line\">    type: 'image',<\/span><span class=\"line\">    data: {<\/span><span class=\"line\">        isVideo: false,<\/span><span class=\"line\">        src: 'https:\/\/docs.lbscripts.com\/images\/icons\/icon.png'<\/span><span class=\"line\">    }<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setEmojiPickerVisible<a id=\"setemojipickervisible\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setemojipickervisible\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setEmojiPickerVisible({<\/span><span class=\"line\">    onSelect: (emoji) =&gt; {<\/span><span class=\"line\">        components.setEmojiPickerVisible(false)<\/span><span class=\"line\">        components.setPopUp({<\/span><span class=\"line\">            title: 'Selected emoji',<\/span><span class=\"line\">            description: emoji.emoji,<\/span><span class=\"line\">            buttons: [<\/span><span class=\"line\">                {<\/span><span class=\"line\">                    title: 'OK'<\/span><span class=\"line\">                }<\/span><span class=\"line\">            ]<\/span><span class=\"line\">        })<\/span><span class=\"line\">    }<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setGifPickerVisible<a id=\"setgifpickervisible\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setgifpickervisible\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setGifPickerVisible({<\/span><span class=\"line\">    onSelect(gif) {<\/span><span class=\"line\">        components.setPopUp({<\/span><span class=\"line\">            title: 'Selected GIF',<\/span><span class=\"line\">            attachment: { src: gif },<\/span><span class=\"line\">            buttons: [<\/span><span class=\"line\">                {<\/span><span class=\"line\">                    title: 'OK'<\/span><span class=\"line\">                }<\/span><span class=\"line\">            ]<\/span><span class=\"line\">        })<\/span><span class=\"line\">    }<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setGallery<a id=\"setgallery\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setgallery\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setGallery({<\/span><span class=\"line\">    includeVideos: true,<\/span><span class=\"line\">    includeImages: true,<\/span><span class=\"line\">    allowExternal: true,<\/span><span class=\"line\">    multiSelect: false,<\/span> <span class=\"line\">    onSelect(data) {<\/span><span class=\"line\">        components.setPopUp({<\/span><span class=\"line\">            title: 'Selected media',<\/span><span class=\"line\">            attachment: { src: Array.isArray(data) ? data[0].src : data.src },<\/span><span class=\"line\">            buttons: [<\/span><span class=\"line\">                {<\/span><span class=\"line\">                    title: 'OK'<\/span><span class=\"line\">                }<\/span><span class=\"line\">            ]<\/span><span class=\"line\">        })<\/span><span class=\"line\">    }<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setFullscreenImage<a id=\"setfullscreenimage\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#setfullscreenimage\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setFullscreenImage('https:\/\/docs.lbscripts.com\/images\/icons\/icon.png')<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">setHomeIndicatorVisible<a id=\"sethomeindicatorvisible\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#sethomeindicatorvisible\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">components.setHomeIndicatorVisible(true)<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h3 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-2xl\">Functions<a id=\"functions\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#functions\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h3>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">fetchNui(event, data, scriptName?)<a id=\"fetchnuievent-data-scriptname\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#fetchnuievent-data-scriptname\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">fetchNui('test', {<\/span><span class=\"line\">    foo: 'bar'<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">onNuiEvent<a id=\"onnuievent\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#onnuievent\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Listen for NUI messages sent via\u00a0<a class=\"nx-text-primary-600 nx-underline nx-decoration-from-font [text-underline-position:from-font]\" href=\"https:\/\/docs.lbscripts.com\/phone\/exports\/client-exports\/#sendcustomappmessage\" target=\"_blank\" rel=\"noopener\">SendCustomAppMessage<\/a><\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">onNuiEvent('test', (data) =&gt; {<\/span><span class=\"line\">    console.log(data)<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">onSettingsChange<a id=\"onsettingschange\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#onsettingschange\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Listen for settings changes<\/p>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">onSettingsChange((newSettings) =&gt; {<\/span><span class=\"line\">    console.log(newSettings)<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n<h4 class=\"nx-font-semibold nx-tracking-tight nx-text-slate-900 dark:nx-text-slate-100 nx-mt-8 nx-text-xl\">createCall<a id=\"createcall\" class=\"subheading-anchor\" href=\"https:\/\/docs.lbscripts.com\/phone\/custom-apps\/#createcall\" aria-label=\"Permalink for this section\" target=\"_blank\" rel=\"noopener\"><\/a><\/h4>\n<div class=\"nextra-code-block nx-relative nx-mt-6 first:nx-mt-0\">\n<pre class=\"nx-bg-primary-700\/5 nx-mb-4 nx-overflow-x-auto nx-rounded-xl nx-subpixel-antialiased dark:nx-bg-primary-300\/10 nx-text-[.9em] contrast-more:nx-border contrast-more:nx-border-primary-900\/20 contrast-more:nx-contrast-150 contrast-more:dark:nx-border-primary-100\/40 nx-py-4\" data-language=\"ts\" data-theme=\"default\"><code class=\"nx-border-black nx-border-opacity-[0.04] nx-bg-opacity-[0.03] nx-bg-black nx-break-words nx-rounded-md nx-border nx-py-0.5 nx-px-[.25em] nx-text-[.9em] dark:nx-border-white\/10 dark:nx-bg-white\/10\" dir=\"ltr\" data-language=\"ts\" data-theme=\"default\"><span class=\"line\">createCall({<\/span><span class=\"line\">    number: '1234567890', \/\/ you can send `company` instead of `number` to call a company<\/span><span class=\"line\">    videoCall: false,<\/span><span class=\"line\">    hideNumber: false<\/span><span class=\"line\">})<\/span><\/code><\/pre>\n<div class=\"nx-opacity-0 nx-transition [div:hover&gt;&amp;]:nx-opacity-100 focus-within:nx-opacity-100 nx-flex nx-gap-1 nx-absolute nx-m-[11px] nx-right-0 nx-top-0\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p class=\"nx-mt-6 nx-leading-7 first:nx-mt-0\">Um telefone avan\u00e7ado para FiveM com recursos exclusivos e bom desempenho.<\/p>\n<p>Demonstra\u00e7\u00e3o por telefone: <a href=\"https:\/\/lbscripts.com\/phone\">https:\/\/lbscripts.com\/phone<\/a><\/p>","protected":false},"featured_media":198341,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"product_brand":[],"product_cat":[104,96,512,2907,511],"product_tag":[],"class_list":["post-198340","product","type-product","status-publish","has-post-thumbnail","product_cat-phone-scripts","product_cat-esx-scripts","product_cat-qbcore-scripts","product_cat-qbox-scripts","product_cat-standalone-scripts","first","instock","sale","downloadable","virtual","taxable","purchasable","product-type-simple"],"_links":{"self":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product\/198340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/comments?post=198340"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/media\/198341"}],"wp:attachment":[{"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/media?parent=198340"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_brand?post=198340"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_cat?post=198340"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/fivemx.com\/pt\/wp-json\/wp\/v2\/product_tag?post=198340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}