1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta name="color-scheme" content="dark"> 7 <title>Tools for FiveM servers and online communities - LonexLabs</title> 8 <meta name="description" content="CAD systems, community websites, staff tools, Discord integrations and vehicles for FiveM roleplay servers and online communities."> 9 10 <!-- SEO Meta Tags --> 11 <meta name="keywords" content="FiveM, server tools, CAD system, Discord integration, roleplay, staff management, server management"> 12 <meta name="author" content="LonexLabs"> 13 <meta name="robots" content="index, follow"> 14 <link rel="canonical" href="https://lonexlabs.com/"> 15 16 <!-- Open Graph / Facebook --> 17 <meta property="og:type" content="website"> 18 <meta property="og:url" content="https://lonexlabs.com/"> 19 <meta property="og:title" content="Tools for FiveM servers and online communities - LonexLabs"> 20 <meta property="og:description" content="CAD systems, community websites, staff tools, Discord integrations and vehicles for FiveM roleplay servers and online communities."> 21 <meta property="og:image" content="https://lonexlabs.com/og-image.png"> 22 <meta property="og:image:width" content="1200"> 23 <meta property="og:image:height" content="630"> 24 <meta property="og:site_name" content="LonexLabs"> 25 <meta property="og:locale" content="en_US"> 26 27 <!-- Twitter Card --> 28 <meta name="twitter:card" content="summary_large_image"> 29 <meta name="twitter:url" content="https://lonexlabs.com/"> 30 <meta name="twitter:title" content="Tools for FiveM servers and online communities - LonexLabs"> 31 <meta name="twitter:description" content="CAD systems, community websites, staff tools, Discord integrations and vehicles for FiveM roleplay servers and online communities."> 32 <meta name="twitter:image" content="https://lonexlabs.com/og-image.png"> 33 34 <!-- Theme Color --> 35 <meta name="theme-color" content="#29cd96"> 36 <meta name="msapplication-TileColor" content="#0a0a0b"> 37 38 <link rel="icon" type="image/png" href="/public/favicon.png"> 39 <link rel="preconnect" href="https://fonts.googleapis.com"> 40 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 41 <link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,[email protected],400..800&family=Geist:wght@500;600;700&family=Geist+Mono:wght@400;500&display=swap" rel="stylesheet"> 42 <link rel="stylesheet" href="/public/assets/store.css?v=1790773669"> 43 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"> 44 <style> 45 /* Native UI (select popups, scrollbars, pickers) follows the document. */ 46 :root { color-scheme: dark; } 47 48 /* Dropdowns â the same control the portal and admin use. */ 49 select { 50 appearance: none; 51 -webkit-appearance: none; 52 color-scheme: dark; 53 cursor: pointer; 54 min-height: 40px; 55 padding: 9px 36px 9px 13px; 56 font: inherit; 57 font-size: 15px; 58 color: var(--lx-text, #eef0f2); 59 background-color: var(--lx-bg, #0a0b0d); 60 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237d858e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); 61 background-repeat: no-repeat; 62 background-position: right 12px center; 63 background-size: 14px 14px; 64 border: 1px solid var(--lx-line-2, rgba(255,255,255,.12)); 65 border-radius: 10px; 66 outline: none; 67 transition: border-color .15s; 68 } 69 select:hover, select:focus { border-color: var(--lx-line-3, rgba(255,255,255,.2)); } 70 option, optgroup { background-color: var(--lx-bg-2, #14171b); color: var(--lx-text, #eef0f2); } 71 /* Pages that style their own fields do it through a class, which outranks 72 a bare element rule; :not([hidden]) lifts this one past them so the 73 arrow survives. */ 74 body select:not([hidden]) { 75 appearance: none; 76 -webkit-appearance: none; 77 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237d858e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); 78 background-repeat: no-repeat; 79 background-position: right 13px center; 80 background-size: 14px 14px; 81 padding-right: 38px; 82 } 83 84 85 *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } 86 87 /* The store pages that have not been ported yet are written against 88 these names. Pointing them at the design system's tokens brings them 89 onto the same palette and gives them its corners. */ 90 :root { 91 --bg: var(--lx-bg); 92 --bg-elevated: var(--lx-bg-2); 93 --bg-card: var(--lx-bg-1); 94 --bg-card-hover: var(--lx-bg-2); 95 --border: var(--lx-line); 96 --border-light: var(--lx-line-2); 97 --text: var(--lx-text); 98 --text-dim: var(--lx-text-2); 99 --text-faint: var(--lx-text-3); 100 --accent: var(--lx-accent); 101 --accent-dim: var(--lx-accent-hi); 102 --accent-glow: rgba(41, 205, 150, 0.15); 103 --accent-soft: var(--lx-accent-soft); 104 --error: var(--lx-red); 105 --warning: var(--lx-amber); 106 --radius: var(--lx-r); 107 --radius-sm: var(--lx-r-sm); 108 --radius-lg: var(--lx-r-lg); 109 --shadow: 0 4px 24px rgba(0,0,0,0.4); 110 --shadow-lg: 0 8px 48px rgba(0,0,0,0.5); 111 } 112 113 html { scroll-behavior: smooth; } 114 115 body { 116 font-family: 'Plus Jakarta Sans', -apple-system, sans-serif; 117 background: var(--bg); 118 color: var(--text); 119 line-height: 1.6; 120 min-height: 100vh; 121 -webkit-font-smoothing: antialiased; 122 } 123 124 a { color: inherit; text-decoration: none; } 125 svg { stroke-linecap: round; stroke-linejoin: round; } 126 button, input, select, textarea { font-family: inherit; } 127 128 /* Header */ 129 .header { 130 position: fixed; 131 top: 0; 132 left: 0; 133 right: 0; 134 z-index: 100; 135 background: rgba(10, 10, 11, 0.8); 136 backdrop-filter: blur(20px); 137 border-bottom: 1px solid var(--border); 138 } 139 140 .header-inner { 141 max-width: 1360px; 142 margin: 0 auto; 143 padding: 0 24px; 144 height: 72px; 145 display: flex; 146 align-items: center; 147 justify-content: space-between; 148 } 149 150 .logo { 151 display: flex; 152 align-items: center; 153 gap: 2px; 154 } 155 156 .logo img { 157 height: 36px; 158 width: auto; 159 } 160 161 .logo-accent { color: var(--accent); } 162 163 .nav { display: flex; align-items: center; gap: 8px; } 164 165 .nav-link { 166 display: inline-flex; 167 align-items: center; 168 gap: 6px; 169 padding: 10px 18px; 170 font-size: 14px; 171 font-weight: 500; 172 color: var(--text-dim); 173 border-radius: var(--radius-sm); 174 transition: all 0.2s; 175 } 176 177 .nav-link svg { 178 flex-shrink: 0; 179 } 180 181 .nav-link:hover { color: var(--text); background: var(--bg-card); } 182 .nav-link.active { color: var(--accent); } 183 184 .nav-cta { 185 background: var(--accent); 186 color: var(--bg); 187 font-weight: 600; 188 margin-left: 8px; 189 } 190 191 .nav-cta:hover { background: var(--accent-dim); color: var(--bg); } 192 193 /* Cart */ 194 .nav-cart { 195 position: relative; 196 padding: 10px 14px !important; 197 } 198 199 .cart-badge { 200 position: absolute; 201 top: 4px; 202 right: 4px; 203 min-width: 18px; 204 height: 18px; 205 padding: 0 5px; 206 background: var(--accent); 207 color: var(--bg); 208 font-size: 11px; 209 font-weight: 700; 210 border-radius:0; 211 display: flex; 212 align-items: center; 213 justify-content: center; 214 } 215 216 /* Main */ 217 main { padding-top: 72px; } 218 219 .container { 220 max-width: 1360px; 221 margin: 0 auto; 222 padding: 0 24px; 223 } 224 225 /* Buttons */ 226 .btn { 227 display: inline-flex; 228 align-items: center; 229 justify-content: center; 230 gap: 8px; 231 padding: 12px 24px; 232 font-size: 14px; 233 font-weight: 600; 234 font-family: inherit; 235 border-radius: var(--radius-sm); 236 border: none; 237 cursor: pointer; 238 transition: all 0.2s; 239 } 240 241 .btn-primary { 242 background: var(--accent); 243 color: var(--bg); 244 } 245 246 .btn-primary:hover { 247 background: var(--accent-dim); 248 transform: translateY(-1px); 249 box-shadow: 0 4px 20px var(--accent-glow); 250 } 251 252 .btn-secondary { 253 background: var(--bg-card); 254 color: var(--text); 255 border: 1px solid var(--border); 256 } 257 258 .btn-secondary:hover { 259 background: var(--bg-card-hover); 260 border-color: var(--border-light); 261 } 262 263 .btn-github { 264 background: #ffffff; 265 color: #24292f; 266 border: 1px solid rgba(255, 255, 255, 0.2); 267 display: inline-flex; 268 align-items: center; 269 justify-content: center; 270 gap: 10px; 271 font-weight: 600; 272 } 273 274 .btn-github:hover { 275 background: #f6f8fa; 276 transform: translateY(-1px); 277 box-shadow: 0 4px 20px rgba(255, 255, 255, 0.15); 278 } 279 280 .btn-github svg { 281 fill: #24292f; 282 } 283 284 /* Tebex â third-party vendor button (mirrors .btn-github). 285 The light wordmark is official artwork: scaled only, never recoloured. */ 286 .btn-tebex { 287 background: #12141c; 288 color: #ffffff; 289 border: 1px solid rgba(255, 255, 255, 0.22); 290 display: inline-flex; 291 align-items: center; 292 justify-content: center; 293 gap: 10px; 294 font-weight: 600; 295 } 296 297 .btn-tebex:hover {
298 background: #1b1e29; 299 border-color: rgba(255, 255, 255, 0.4); 300 transform: translateY(-1px); 301 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4); 302 } 303 304 .tebex-mark { 305 height: 30px; 306 width: auto; 307 display: block; 308 flex-shrink: 0; 309 } 310 311 .btn-lg { 312 padding: 16px 32px; 313 font-size: 16px; 314 border-radius: var(--radius); 315 } 316 317 .btn-sm { 318 padding: 8px 16px; 319 font-size: 13px; 320 } 321 322 /* Cards */ 323 .card { 324 background: var(--bg-card); 325 border: 1px solid var(--border); 326 border-radius: var(--radius-lg); 327 overflow: hidden; 328 transition: all 0.3s; 329 } 330 331 .card:hover { 332 border-color: var(--border-light); 333 transform: translateY(-2px); 334 box-shadow: var(--shadow); 335 } 336 337 /* Section */ 338 .section { 339 padding: 80px 0; 340 } 341 342 .section-header { 343 text-align: center; 344 margin-bottom: 48px; 345 } 346 347 .section-label { 348 display: inline-block; 349 padding: 6px 14px; 350 background: var(--accent-soft); 351 color: var(--accent); 352 font-size: 12px; 353 font-weight: 600; 354 text-transform: uppercase; 355 letter-spacing: 1px; 356 border-radius:0; 357 margin-bottom: 16px; 358 } 359 360 .section-title { 361 font-size: 40px; 362 font-weight: 800; 363 letter-spacing: -1px; 364 margin-bottom: 16px; 365 } 366 367 .section-subtitle { 368 font-size: 18px; 369 color: var(--text-dim); 370 max-width: 600px; 371 margin: 0 auto; 372 } 373 374 /* Footer */ 375 .footer { 376 padding: 48px 0; 377 border-top: 1px solid var(--border); 378 background: var(--bg-elevated); 379 } 380 381 .footer-inner { 382 display: flex; 383 justify-content: space-between; 384 align-items: center; 385 flex-wrap: wrap; 386 gap: 24px; 387 } 388 389 .footer-text { 390 font-size: 14px; 391 color: var(--text-dim); 392 } 393 394 .footer-links { 395 display: flex; 396 gap: 24px; 397 } 398 399 .footer-link { 400 font-size: 14px; 401 color: var(--text-dim); 402 transition: color 0.2s; 403 } 404 405 .footer-link:hover { color: var(--accent); } 406 407 /* Utilities */ 408 .text-accent { color: var(--accent); } 409 .text-dim { color: var(--text-dim); } 410 .text-center { text-align: center; } 411 .mt-4 { margin-top: 16px; } 412 .mt-8 { margin-top: 32px; } 413 .mb-4 { margin-bottom: 16px; } 414 .mb-8 { margin-bottom: 32px; } 415 416 /* Alerts */ 417 .alert { 418 padding: 16px 20px; 419 border-radius: var(--radius-sm); 420 margin-bottom: 24px; 421 font-size: 14px; 422 } 423 424 .alert-success { 425 background: rgba(41, 205, 150, 0.1); 426 border: 1px solid var(--accent); 427 color: var(--accent); 428 } 429 430 .alert-error { 431 background: rgba(239, 68, 68, 0.1); 432 border: 1px solid var(--error); 433 color: var(--error); 434 } 435 436 /* Mobile Menu Toggle */ 437 .mobile-toggle { display: none; padding: 8px; background: none; border: none; color: var(--text); cursor: pointer; position: relative; width: 40px; height: 40px; border-radius: var(--radius-sm); transition: background 0.2s; } 438 .mobile-toggle:hover { background: var(--bg-card); } 439 .mobile-toggle span { display: block; width: 20px; height: 2px; background: var(--text); position: absolute; left: 10px; transition: all 0.3s ease; border-radius:0; } 440 .mobile-toggle span:nth-child(1) { top: 12px; } 441 .mobile-toggle span:nth-child(2) { top: 19px; } 442 .mobile-toggle span:nth-child(3) { top: 26px; } 443 .mobile-toggle.open span:nth-child(1) { top: 19px; transform: rotate(45deg); } 444 .mobile-toggle.open span:nth-child(2) { opacity: 0; } 445 .mobile-toggle.open span:nth-child(3) { top: 19px; transform: rotate(-45deg); } 446 447 .mobile-nav { 448 display: none; 449 position: fixed; 450 top: 72px; 451 left: 0; 452 right: 0; 453 bottom: 0; 454 background: var(--bg); 455 z-index: 99; 456 flex-direction: column; 457 padding: 16px; 458 gap: 4px; 459 overflow-y: auto; 460 border-top: 1px solid var(--border); 461 } 462 .mobile-nav.open { display: flex; } 463 .mobile-nav .nav-link { 464 display: flex; 465 width: 100%; 466 padding: 14px 18px; 467 border-radius: var(--radius-sm); 468 font-size: 15px; 469 color: var(--text-dim); 470 } 471 .mobile-nav .nav-link:hover { background: var(--bg-card); color: var(--text); } 472 .mobile-nav .nav-link.active { color: var(--accent); } 473 .mobile-nav .nav-cta { margin-top: 8px; justify-content: center; background: var(--accent); color: var(--bg); font-weight: 600; } 474 .mobile-nav .nav-cta:hover { background: var(--accent-dim); color: var(--bg); } 475 476 /* Responsive */ 477 @media (max-width: 768px) { 478 .mobile-toggle { display: block; } 479 .header-inner { padding: 0 16px; } 480 .container { padding: 0 16px; } 481 .section { padding: 48px 0; } 482 .section-title { font-size: 28px; } 483 .nav { display: none; } 484 .footer-inner { flex-direction: column; text-align: center; } 485 } 486 487 /* Page-specific styles injected here */ 488 </style> 489
489<script defer src="https://api.pirsch.io/pa.js" id="pianjs" data-code="eiHmgjIWsb3mplztzSJLXOSFFiCTGLXI"></script>
489 490 491 <!-- Structured Data --> 492
492<script type="application/ld+json"> 493 { 494 "@context": "https://schema.org", 495 "@type": "Organization", 496 "name": "LonexLabs", 497 "url": "https://lonexlabs.com", 498 "logo": "https://lonexlabs.com/og-image.png", 499 "description": "Professional tools for FiveM server management", 500 "sameAs": [ 501 "https://discord.gg/lonexlabs" 502 ] 503 } 504 </script>
504 505 </head> 506<body class="pg-home"> 507 <header class="lx-site-header"> 508 <div class="lx-wrap lx-header-inner"> 509 <a class="lx-brand" href="/" aria-label="LonexLabs home"><img src="/public/logo.svg" alt="LonexLabs" width="158" height="36"></a> 510 511 <nav class="lx-nav" aria-label="Primary"> 512 <a href="/" aria-current="page">Home</a> 513 <a href="/products">Products</a> 514 <a href="/marketplace">Marketplace</a> 515 <a class="lx-secondary" href="/commissions">Commissions</a> 516 517 <div class="lx-menu-wrap"> 518 <button class="lx-menu-btn-nav" data-pop-trigger="resources-menu" aria-expanded="false" aria-haspopup="true"> 519 Resources <svg class="lx-chev"><use href="#i-chev"/></svg> 520 </button> 521 <div class="lx-menu-pop" id="resources-menu" hidden> 522 <a href="https://docs.lonexlabs.com/" target="_blank" rel="noopener"><svg class="lx-ic"><use href="#i-book"/></svg><b>Documentation</b><span>Install guides and API reference</span><svg class="lx-ext"><use href="#i-ext"/></svg></a> 523 <a href="https://basecamp.lonexlabs.com/" target="_blank" rel="noopener"><svg class="lx-ic"><use href="#i-flag"/></svg><b>Basecamp</b><span>Changelogs and release notes</span><svg class="lx-ext"><use href="#i-ext"/></svg></a> 524 <a href="https://discord.gg/lonexlabs" target="_blank" rel="noopener"><svg class="lx-ic"><use href="#i-discord"/></svg><b>Discord</b><span>Ask the team and other owners</span><svg class="lx-ext"><use href="#i-ext"/></svg></a> 525 <div class="lx-menu-sep"></div> 526 <a href="/support"><svg class="lx-ic"><use href="#i-life"/></svg><b>Support</b><span>Open a ticket from your dashboard</span></a> 527 </div> 528 </div> 529 530 <span style="flex:1"></span> 531 532 <button class="lx-nav-search" data-search-open aria-label="Search products"> 533 <svg><use href="#i-search"/></svg> 534 <span class="lx-label">Search productsâ¦</span> 535 <span class="lx-kbd">âK</span> 536 </button> 537 538 <div class="lx-cart-wrap"> 539 <a class="lx-cart-link" href="/cart" aria-label="Cart, empty"><svg><use href="#i-cart"/></svg></a> 540 </div> 541 542 <a class="lx-nav-cta" href="/login">Sign In</a> 543 </nav> 544 545 <button class="lx-menu-btn" aria-expanded="false" aria-controls="mobile-menu" aria-label="Menu"><svg><use href="#i-menu"/></svg></button> 546 </div> 547 548 <div id="mobile-menu" class="lx-wrap lx-mobile-menu" hidden> 549 <a href="/">Home</a> 550 <a href="/products">Products</a> 551 <a href="/marketplace">Marketplace</a> 552 <a href="/commissions">Commissions</a> 553 <a href="https://docs.lonexlabs.com/" target="_blank" rel="noopener">Documentation</a> 554 <a href="https://basecamp.lonexlabs.com/" target="_blank" rel="noopener">Basecamp</a> 555 <a href="https://discord.gg/lonexlabs" target="_blank" rel="noopener">Discord</a> 556 <a href="/support">Support</a> 557 <a href="/cart">Cart</a> 558 <a class="lx-btn lx-btn-primary lx-btn-block" href="/login">Sign In</a> 559 </div> 560 </header> 561 562 <main> 563 564<!-- Hero --> 565<section class="lx-hero"> 566 <div class="lx-wrap lx-hero-grid"> 567 <div> 568 <h1>Software your community <em>runs on.</em></h1> 569 <p class="lx-hero-sub">CAD systems, community websites, staff tools, Discord integrations and vehicles for FiveM roleplay servers and online communities.</p> 570 <div class="lx-hero-cta"> 571 <a class="lx-btn lx-btn-primary lx-btn-lg" href="/products">Browse products <svg class="lx-arrow"><use href="#i-arrow"/></svg></a> 572 <a class="lx-btn lx-btn-ghost lx-btn-lg" href="https://discord.gg/lonexlabs" target="_blank" rel="noopener"><svg><use href="#i-discord"/></svg>Join Discord</a> 573 </div> 574 <div class="lx-hero-stats"> 575 <div><b>18</b><span>Released products</span></div> 576 <div><b>512</b><span>Licences issued</span></div> 577 <div><b>259</b><span>Active customers</span></div> 578 <div><b>24/7</b><span>Support</span></div> 579 </div> 580 </div> 581 582 <div class="lx-stack" aria-label="Featured products"> 583 <a class="lx-s1" href="/products/lonexcad"> 584 <img src="/public/uploads/products/lonexcad-1783898258.png" alt="LonexCAD">
585 <span class="lx-label">LonexCAD</span> 586 </a> 587 <a class="lx-s2" href="/products/lonexdiscordapi"> 588 <img src="/public/uploads/products/lonexdiscordapi-1783650183.jpg" alt="LonexDiscordAPI"> 589 <span class="lx-label">LonexDiscordAPI</span> 590 </a> 591 <a class="lx-s3" href="/products/lonexstaff"> 592 <img src="/public/uploads/products/lonexstaff-1783680275.jpg" alt="LonexStaff"> 593 <span class="lx-label">LonexStaff</span> 594 </a> 595 <a class="lx-s4" href="/products/brandingremoval"> 596 <img src="/public/uploads/products/brandingremoval-1784024947.jpg" alt="Branding Removal"> 597 <span class="lx-label">Branding Removal</span> 598 </a> 599 </div> 600 </div> 601</section> 602 603<!-- Store --> 604<section class="lx-section" id="products"> 605 <div class="lx-wrap"> 606 <div class="lx-head"> 607 <div> 608 <h2>Products</h2> 609 <p>Every product is licensed to your server, delivered instantly through your dashboard, and updated for life.</p> 610 </div> 611 <div class="lx-chips" data-filter-for="store" role="group" aria-label="Filter products"> 612 <button class="lx-chip" data-value="all" aria-pressed="true">All <span class="lx-n"></span></button> 613 <button class="lx-chip" data-value="resource" aria-pressed="false">Resource <span class="lx-n"></span></button> 614 <button class="lx-chip" data-value="web" aria-pressed="false">Web <span class="lx-n"></span></button> 615 <button class="lx-chip" data-value="addon" aria-pressed="false">Addon <span class="lx-n"></span></button> 616 <button class="lx-chip" data-value="free" aria-pressed="false">Free <span class="lx-n"></span></button> 617 <button class="lx-chip" data-value="community" aria-pressed="false">Community <span class="lx-n"></span></button> 618 <button class="lx-chip" data-value="fivem" aria-pressed="false">Fivem <span class="lx-n"></span></button> 619 </div> 620 </div> 621 622 <div class="lx-store-grid" id="store"> 623 <article class="lx-pcard lx-lg lx-reveal" data-tags="web cad"> 624 <a class="lx-pcard-link" href="/products/lonexcad" aria-label="LonexCAD"></a> 625 <div class="lx-pcard-media"> 626 <img src="/public/uploads/products/lonexcad-1783898258.png" alt=""> 627 <div class="lx-badges"> 628 <span class="lx-tag lx-tag-accent">Featured</span> </div> 629 </div> 630 <div class="lx-pcard-body"> 631 <span class="lx-pcard-cat">Cad · Web</span> 632 <h3>LonexCAD</h3> 633 <p>Complete Computer Aided Dispatch system with real-time updates, unit management, and comprehensive record keeping.</p> 634 <div class="lx-pcard-foot"> 635 <span class="lx-price">$50.00</span> 636 <a class="lx-cart-add" href="/products/lonexcad" aria-label="View LonexCAD"><svg><use href="#i-arrow"/></svg></a> 637 </div> 638 </div> 639 </article> 640 <article class="lx-pcard lx-lg lx-reveal" data-tags="addon resource free"> 641 <a class="lx-pcard-link" href="/products/lonexdiscordapi" aria-label="LonexDiscordAPI"></a> 642 <div class="lx-pcard-media"> 643 <img src="/public/uploads/products/lonexdiscordapi-1783650183.jpg" alt=""> 644 <div class="lx-badges">
645 <span class="lx-tag lx-tag-accent">Featured</span> </div> 646 </div> 647 <div class="lx-pcard-body"> 648 <span class="lx-pcard-cat">Resource · Addon</span> 649 <h3>LonexDiscordAPI</h3> 650 <p>LonexDiscordAPI is a powerful, high-performance Discord integration library for FiveM servers. It provides seamless Discord role syncing, permissions, webhooks, player data access, and server utilities.</p> 651 <div class="lx-pcard-foot"> 652 <span class="lx-price lx-free">Free</span> 653 <a class="lx-cart-add" href="/products/lonexdiscordapi" aria-label="View LonexDiscordAPI"><svg><use href="#i-arrow"/></svg></a> 654 </div> 655 </div> 656 </article> 657 <article class="lx-pcard lx-reveal" data-tags="web resource"> 658 <a class="lx-pcard-link" href="/products/lonexstaff" aria-label="LonexStaff"></a> 659 <div class="lx-pcard-media"> 660 <img src="/public/uploads/products/lonexstaff-1783680275.jpg" alt=""> 661 <div class="lx-badges"> 662 <span class="lx-tag lx-tag-accent">Featured</span> </div> 663 </div> 664 <div class="lx-pcard-body"> 665 <span class="lx-pcard-cat">Resource · Web</span> 666 <h3>LonexStaff</h3> 667 <p>A powerful staff management panel and in-game menu for FiveM servers, combining real-time player moderation with comprehensive web-based administration.</p> 668 <div class="lx-pcard-foot"> 669 <span class="lx-price">$60.00</span> 670 <a class="lx-cart-add" href="/products/lonexstaff" aria-label="View LonexStaff"><svg><use href="#i-arrow"/></svg></a> 671 </div> 672 </div> 673 </article> 674 <article class="lx-pcard lx-reveal" data-tags="web resource addon"> 675 <a class="lx-pcard-link" href="/products/brandingremoval" aria-label="Branding Removal"></a> 676 <div class="lx-pcard-media"> 677 <img src="/public/uploads/products/brandingremoval-1784024947.jpg" alt=""> 678 <div class="lx-badges"> 679 <span class="lx-tag">Add-on</span> </div> 680 </div> 681 <div class="lx-pcard-body"> 682 <span class="lx-pcard-cat">Resource · Web</span> 683 <h3>Branding Removal</h3> 684 <p>Hide all visible LonexLabs branding from supported products automatically while your Branding Removal license is active.</p> 685 <div class="lx-pcard-foot"> 686 <span class="lx-price">$35.00</span> 687 <a class="lx-cart-add" href="/products/brandingremoval" aria-label="View Branding Removal"><svg><use href="#i-arrow"/></svg></a> 688 </div> 689 </div> 690 </article> 691 <article class="lx-pcard lx-reveal" data-tags="fivem resource"> 692 <a class="lx-pcard-link" href="/products/lonexdept" aria-label="Department Panel"></a> 693 <div class="lx-pcard-media"> 694 <img loading="lazy" src="/public/uploads/products/lonexdept-1786268385.jpg" alt=""> 695 <div class="lx-badges"> 696 </div> 697 </div> 698 <div class="lx-pcard-body">
699 <span class="lx-pcard-cat">Resource · Fivem</span> 700 <h3>Department Panel</h3> 701 <p>Rosters, ranks, callsigns, hours, training and discipline in one panel, with Discord roles and nicknames that follow every promotion.</p> 702 <div class="lx-pcard-foot"> 703 <span class="lx-price">$60.00</span> 704 <a class="lx-cart-add" href="/products/lonexdept" aria-label="View Department Panel"><svg><use href="#i-arrow"/></svg></a> 705 </div> 706 </div> 707 </article> 708 <article class="lx-pcard lx-reveal" data-tags="web community addon"> 709 <a class="lx-pcard-link" href="/products/helpdesk-module" aria-label="Helpdesk Module"></a> 710 <div class="lx-pcard-media"> 711 <img loading="lazy" src="/public/uploads/products/helpdesk-module-1783649428.jpg" alt=""> 712 <div class="lx-badges"> 713 <span class="lx-tag">Add-on</span> </div> 714 </div> 715 <div class="lx-pcard-body"> 716 <span class="lx-pcard-cat">Community · Web</span> 717 <h3>Helpdesk Module</h3> 718 <p>Add a powerful helpdesk to your LonexCommunity installation. Members can submit tickets, staff can manage queues, and everything stays organized with categories, priorities, and full conversation history.</p> 719 <div class="lx-pcard-foot"> 720 <span class="lx-price">$15.00</span> 721 <a class="lx-cart-add" href="/products/helpdesk-module" aria-label="View Helpdesk Module"><svg><use href="#i-arrow"/></svg></a> 722 </div> 723 </div> 724 </article> 725 <article class="lx-pcard lx-reveal" data-tags="standalone resource free"> 726 <a class="lx-pcard-link" href="/products/image-uploader" aria-label="Image Uploader"></a> 727 <div class="lx-pcard-media"> 728 <img loading="lazy" src="/public/uploads/products/image-uploader-1783650129.jpg" alt=""> 729 <div class="lx-badges"> 730 </div> 731 </div> 732 <div class="lx-pcard-body"> 733 <span class="lx-pcard-cat">Resource · Standalone</span> 734 <h3>Image Uploader</h3> 735 <p>A lightweight, IP-restricted PHP image uploader with a public gallery, built for simple, secure image hosting without a database.</p> 736 <div class="lx-pcard-foot"> 737 <span class="lx-price lx-free">Free</span> 738 <a class="lx-cart-add" href="/products/image-uploader" aria-label="View Image Uploader"><svg><use href="#i-arrow"/></svg></a> 739 </div> 740 </div> 741 </article> 742 <article class="lx-pcard lx-reveal" data-tags="fivem resource addon"> 743 <a class="lx-pcard-link" href="/products/lonexcad-ingame" aria-label="LonexCAD In-Game"></a> 744 <div class="lx-pcard-media"> 745 <img loading="lazy" src="/public/uploads/products/lonexcad-ingame-1783650157.jpg" alt=""> 746 <div class="lx-badges"> 747 <span class="lx-tag">Add-on</span> </div> 748 </div> 749 <div class="lx-pcard-body">
750 <span class="lx-pcard-cat">Resource · Fivem</span> 751 <h3>LonexCAD In-Game</h3> 752 <p>Access your CAD directly in FiveM. Run plates, check records, update your status, and view active calls - all without alt-tabbing.</p> 753 <div class="lx-pcard-foot"> 754 <span class="lx-price">$20.00</span> 755 <a class="lx-cart-add" href="/products/lonexcad-ingame" aria-label="View LonexCAD In-Game"><svg><use href="#i-arrow"/></svg></a> 756 </div> 757 </div> 758 </article> 759 <article class="lx-pcard lx-reveal" data-tags="web community"> 760 <a class="lx-pcard-link" href="/products/lonexcommunity" aria-label="LonexCommunity"></a> 761 <div class="lx-pcard-media"> 762 <img loading="lazy" src="/public/uploads/products/lonexcommunity-1783650168.jpg" alt=""> 763 <div class="lx-badges"> 764 </div> 765 </div> 766 <div class="lx-pcard-body"> 767 <span class="lx-pcard-cat">Community · Web</span> 768 <h3>LonexCommunity</h3> 769 <p>The ultimate community management platform for game servers. Centralize your staff management, applications, announcements, and member tools.</p> 770 <div class="lx-pcard-foot"> 771 <span class="lx-price">$40.00</span> 772 <a class="lx-cart-add" href="/products/lonexcommunity" aria-label="View LonexCommunity"><svg><use href="#i-arrow"/></svg></a> 773 </div> 774 </div> 775 </article> 776 <article class="lx-pcard lx-reveal" data-tags="web resource"> 777 <a class="lx-pcard-link" href="/products/lonexdocs" aria-label="LonexDocs"></a> 778 <div class="lx-pcard-media"> 779 <img loading="lazy" src="/public/uploads/products/lonexdocs-1783650192.jpg" alt=""> 780 <div class="lx-badges"> 781 </div> 782 </div> 783 <div class="lx-pcard-body"> 784 <span class="lx-pcard-cat">Resource · Web</span> 785 <h3>LonexDocs</h3> 786 <p>LonexDocs is a self-hosted documentation platform built for communities that want full control over their docs.</p> 787 <div class="lx-pcard-foot"> 788 <span class="lx-price">$20.00</span> 789 <a class="lx-cart-add" href="/products/lonexdocs" aria-label="View LonexDocs"><svg><use href="#i-arrow"/></svg></a> 790 </div> 791 </div> 792 </article> 793 <article class="lx-pcard lx-reveal" data-tags="web resource"> 794 <a class="lx-pcard-link" href="/products/lonexrelay" aria-label="LonexRelay"></a> 795 <div class="lx-pcard-media"> 796 <img loading="lazy" src="/public/uploads/products/lonexrelay-1784504606.jpg" alt=""> 797 <div class="lx-badges"> 798 </div> 799 </div> 800 <div class="lx-pcard-body"> 801 <span class="lx-pcard-cat">Resource · Web</span> 802 <h3>LonexRelay</h3> 803 <p>A self-hosted product feedback board with voting, a public roadmap, and a versioned changelog with Discord sign-in built in.</p> 804 <div class="lx-pcard-foot">
805 <span class="lx-price">$40.00</span> 806 <a class="lx-cart-add" href="/products/lonexrelay" aria-label="View LonexRelay"><svg><use href="#i-arrow"/></svg></a> 807 </div> 808 </div> 809 </article> 810 <article class="lx-pcard lx-reveal" data-tags="web resource"> 811 <a class="lx-pcard-link" href="/products/lonexstatus" aria-label="LonexStatus"></a> 812 <div class="lx-pcard-media"> 813 <img loading="lazy" src="/public/uploads/products/lonexstatus-1783650221.jpg" alt=""> 814 <div class="lx-badges"> 815 </div> 816 </div> 817 <div class="lx-pcard-body"> 818 <span class="lx-pcard-cat">Resource · Web</span> 819 <h3>LonexStatus</h3> 820 <p>A self-hosted status page built for gaming communities and operators. Monitor your FiveM, Minecraft, and Rust servers, websites, APIs, Discord bots, and anything else your community depends on.</p> 821 <div class="lx-pcard-foot"> 822 <span class="lx-price">$20.00</span> 823 <a class="lx-cart-add" href="/products/lonexstatus" aria-label="View LonexStatus"><svg><use href="#i-arrow"/></svg></a> 824 </div> 825 </div> 826 </article> 827 <article class="lx-pcard lx-reveal" data-tags="fivem resource free"> 828 <a class="lx-pcard-link" href="/products/lonexsync" aria-label="LonexSync"></a> 829 <div class="lx-pcard-media"> 830 <img loading="lazy" src="/public/uploads/products/lonexsync-1784039233.jpg" alt=""> 831 <div class="lx-badges"> 832 </div> 833 </div> 834 <div class="lx-pcard-body"> 835 <span class="lx-pcard-cat">Resource · Fivem</span> 836 <h3>LonexSync</h3> 837 <div class="lx-pcard-foot"> 838 <span class="lx-price lx-free">Free</span> 839 <a class="lx-cart-add" href="/products/lonexsync" aria-label="View LonexSync"><svg><use href="#i-arrow"/></svg></a> 840 </div> 841 </div> 842 </article> 843 <article class="lx-pcard lx-reveal" data-tags="web resource"> 844 <a class="lx-pcard-link" href="/products/training" aria-label="LonexTraining"></a> 845 <div class="lx-pcard-media"> 846 <img loading="lazy" src="/public/uploads/products/training-1783650683.jpg" alt=""> 847 <div class="lx-badges"> 848 </div> 849 </div> 850 <div class="lx-pcard-body"> 851 <span class="lx-pcard-cat">Resource · Web</span> 852 <h3>LonexTraining</h3> 853 <p>Complete training and assessment platform for law-enforcement and roleplay departments, live FTO-led sessions, structured assessments, and real Discord identities.</p> 854 <div class="lx-pcard-foot"> 855 <span class="lx-price">$40.00</span> 856 <a class="lx-cart-add" href="/products/training" aria-label="View LonexTraining"><svg><use href="#i-arrow"/></svg></a> 857 </div> 858 </div> 859 </article> 860 <article class="lx-pcard lx-reveal" data-tags="standalone resource"> 861 <a class="lx-pcard-link" href="/products/lonexwhmcsl
861ink" aria-label="LonexWHMCS"></a> 862 <div class="lx-pcard-media"> 863 <img loading="lazy" src="/public/uploads/products/lonexwhmcslink-1783650233.jpg" alt=""> 864 <div class="lx-badges"> 865 </div> 866 </div> 867 <div class="lx-pcard-body"> 868 <span class="lx-pcard-cat">Resource · Standalone</span> 869 <h3>LonexWHMCS</h3> 870 <p>Your WHMCS, in their Discord. Auto-assign Discord roles when customers buy products, forward invoice and ticket emails as DMs, and manage members across every guild - without leaving the WHMCS admin.</p> 871 <div class="lx-pcard-foot"> 872 <span class="lx-price">$30.00</span> 873 <a class="lx-cart-add" href="/products/lonexwhmcslink" aria-label="View LonexWHMCS"><svg><use href="#i-arrow"/></svg></a> 874 </div> 875 </div> 876 </article> 877 <article class="lx-pcard lx-reveal" data-tags="managed resource free"> 878 <a class="lx-pcard-link" href="/products/managed-service" aria-label="Managed Service"></a> 879 <div class="lx-pcard-media"> 880 <img loading="lazy" src="/public/uploads/products/managed-service-1783650374.jpg" alt=""> 881 <div class="lx-badges"> 882 </div> 883 </div> 884 <div class="lx-pcard-body"> 885 <span class="lx-pcard-cat">Resource · Managed</span> 886 <h3>Managed Service</h3> 887 <p>Let us handle all the stress!</p> 888 <div class="lx-pcard-foot"> 889 <span class="lx-price lx-free">Free</span> 890 <a class="lx-cart-add" href="/products/managed-service" aria-label="View Managed Service"><svg><use href="#i-arrow"/></svg></a> 891 </div> 892 </div> 893 </article> 894 <article class="lx-pcard lx-reveal" data-tags="web community addon"> 895 <a class="lx-pcard-link" href="/products/staff-module" aria-label="Staff Module"></a> 896 <div class="lx-pcard-media"> 897 <img loading="lazy" src="/public/uploads/products/staff-module-1783650243.jpg" alt=""> 898 <div class="lx-badges"> 899 <span class="lx-tag">Add-on</span> </div> 900 </div> 901 <div class="lx-pcard-body"> 902 <span class="lx-pcard-cat">Community · Web</span> 903 <h3>Staff Module</h3> 904 <p>Connect your LonexStaff panel to your LonexCommunity site to display player leaderboards, staff duty hours, player profiles, and ban appeals.</p> 905 <div class="lx-pcard-foot"> 906 <span class="lx-price">$15.00</span> 907 <a class="lx-cart-add" href="/products/staff-module" aria-label="View Staff Module"><svg><use href="#i-arrow"/></svg></a> 908 </div> 909 </div> 910 </article> 911 <article class="lx-pcard lx-reveal" data-tags="web community addon"> 912 <a class="lx-pcard-link" href="/products/store-module" aria-label="Store Module"></a> 913 <div class="lx-pcard-media"> 914 <img loading="lazy" src="/public/uploads/products/store-module-1783650255.jpg" alt=""> 915 <div class="lx-badges">
916 <span class="lx-tag">Add-on</span> </div> 917 </div> 918 <div class="lx-pcard-body"> 919 <span class="lx-pcard-cat">Community · Web</span> 920 <h3>Store Module</h3> 921 <p>Add a complete, self-hosted store to your LonexCommunity, sell digital downloads, Discord roles, and product keys with Stripe and PayPal built in.</p> 922 <div class="lx-pcard-foot"> 923 <span class="lx-price">$30.00</span> 924 <a class="lx-cart-add" href="/products/store-module" aria-label="View Store Module"><svg><use href="#i-arrow"/></svg></a> 925 </div> 926 </div> 927 </article> 928 </div> 929 <div class="lx-empty" hidden>Nothing in this category yet.</div> 930 </div> 931</section> 932 933<!-- Marketplace --> 934<section class="lx-section lx-market" id="marketplace"> 935 <div class="lx-wrap"> 936 <div class="lx-head"> 937 <div> 938 <h2>Vehicle marketplace</h2> 939 <p>Emergency, utility and civilian vehicles for FiveM, made by community creators.</p> 940 </div> 941 <div style="display:flex;gap:16px;align-items:center"> 942 <a class="lx-link-arrow" href="/marketplace">Browse the marketplace <svg><use href="#i-arrow"/></svg></a> 943 <div class="lx-rail-nav"> 944 <button type="button" data-rail="-1" aria-label="Scroll left"><svg><use href="#i-left"/></svg></button> 945 <button type="button" data-rail="1" aria-label="Scroll right"><svg><use href="#i-right"/></svg></button> 946 </div> 947 </div> 948 </div> 949 <div class="lx-rail" id="rail"> 950 <a class="lx-vcard" href="/marketplace/um-2019-toyota-tundra-trd-pro"> 951 <div class="lx-vcard-media"> 952 <img loading="lazy" src="/public/uploads/marketplace/um-2019-toyota-tundra-trd-pro-1770240671-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 953 <div class="lx-vcard-body"> 954 <h3>UM 2019 Toyota Tundra TRD Pro</h3> 955 <div class="lx-vcard-foot"> 956 <span class="lx-author"> 957 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 958 <span class="lx-price">$5.00</span> 959 </div> 960 </div> 961 </a> 962 <a class="lx-vcard" href="/marketplace/um-2020-ford-f250"> 963 <div class="lx-vcard-media"> 964 <img loading="lazy" src="/public/uploads/marketplace/um-2020-ford-f250-1770240636-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 965 <div class="lx-vcard-body"> 966 <h3>UM 2020 Ford F250</h3> 967 <div class="lx-vcard-foot"> 968 <span class="lx-author"> 969 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 970 <span class="lx-price">$5.00</span> 971 </div> 972 </div> 973 </a> 974 <a class="lx-vcard" href="/marketplace/um-2018-ford-transit-surveillance"> 975 <div class="lx-vcard-media"> 976 <img loading="lazy" src="/public/uploads/marketplace/um-2018-ford-transit-surveillance-1770240598-0.png" alt="">
976 <span class="lx-tag">Emergency</span> </div> 977 <div class="lx-vcard-body"> 978 <h3>UM 2018 Ford Transit Surveillance</h3> 979 <div class="lx-vcard-foot"> 980 <span class="lx-author"> 981 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 982 <span class="lx-price">$5.00</span> 983 </div> 984 </div> 985 </a> 986 <a class="lx-vcard" href="/marketplace/legacy-2014-dodge-charger"> 987 <div class="lx-vcard-media"> 988 <img loading="lazy" src="/public/uploads/marketplace/legacy-2014-dodge-charger-1770240560-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 989 <div class="lx-vcard-body"> 990 <h3>Legacy 2014 Dodge Charger</h3> 991 <div class="lx-vcard-foot"> 992 <span class="lx-author"> 993 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 994 <span class="lx-price">$5.00</span> 995 </div> 996 </div> 997 </a> 998 <a class="lx-vcard" href="/marketplace/wildlife-2016-dodge-ram-2500"> 999 <div class="lx-vcard-media"> 1000 <img loading="lazy" src="/public/uploads/marketplace/wildlife-2016-dodge-ram-2500-1770240525-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1001 <div class="lx-vcard-body"> 1002 <h3>Wildlife 2016 Dodge Ram 2500</h3> 1003 <div class="lx-vcard-foot"> 1004 <span class="lx-author"> 1005 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1006 <span class="lx-price">$5.00</span> 1007 </div> 1008 </div> 1009 </a> 1010 <a class="lx-vcard" href="/marketplace/legacy-2011-ford-crown-victoria"> 1011 <div class="lx-vcard-media"> 1012 <img loading="lazy" src="/public/uploads/marketplace/legacy-2011-ford-crown-victoria-1770240488-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1013 <div class="lx-vcard-body"> 1014 <h3>Legacy 2011 Ford Crown Victoria</h3> 1015 <div class="lx-vcard-foot"> 1016 <span class="lx-author"> 1017 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1018 <span class="lx-price">$5.00</span> 1019 </div> 1020 </div> 1021 </a> 1022 <a class="lx-vcard" href="/marketplace/2018-canam-4-door"> 1023 <div class="lx-vcard-media"> 1024 <img loading="lazy" src="/public/uploads/marketplace/2018-canam-4-door-1770240393-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1025 <div class="lx-vcard-body"> 1026 <h3>2018 Canam 4 Door</h3> 1027 <div class="lx-vcard-foot">
1028 <span class="lx-author"> 1029 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1030 <span class="lx-price">$5.00</span> 1031 </div> 1032 </div> 1033 </a> 1034 <a class="lx-vcard" href="/marketplace/um-2017-chevy-colorado"> 1035 <div class="lx-vcard-media"> 1036 <img loading="lazy" src="/public/uploads/marketplace/um-2017-chevy-colorado-1770240297-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1037 <div class="lx-vcard-body"> 1038 <h3>UM 2017 Chevy Colorado</h3> 1039 <div class="lx-vcard-foot"> 1040 <span class="lx-author"> 1041 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1042 <span class="lx-price">$5.00</span> 1043 </div> 1044 </div> 1045 </a> 1046 <a class="lx-vcard" href="/marketplace/um-2016-cadillac-cts-v"> 1047 <div class="lx-vcard-media"> 1048 <img loading="lazy" src="/public/uploads/marketplace/um-2016-cadillac-cts-v-1770240258-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1049 <div class="lx-vcard-body"> 1050 <h3>UM 2016 Cadillac CTS V</h3> 1051 <div class="lx-vcard-foot"> 1052 <span class="lx-author"> 1053 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1054 <span class="lx-price">$5.00</span> 1055 </div> 1056 </div> 1057 </a> 1058 <a class="lx-vcard" href="/marketplace/legacy-2018-dodge-charger"> 1059 <div class="lx-vcard-media"> 1060 <img loading="lazy" src="/public/uploads/marketplace/legacy-2018-dodge-charger-1770240216-0.png" alt=""> <span class="lx-tag">Emergency</span> </div> 1061 <div class="lx-vcard-body"> 1062 <h3>Legacy 2018 Dodge Charger</h3> 1063 <div class="lx-vcard-foot"> 1064 <span class="lx-author"> 1065 <img src="/public/uploads/authors/zeakor-1769953157.png" alt=""> Zeakor </span> 1066 <span class="lx-price">$5.00</span> 1067 </div> 1068 </div> 1069 </a> 1070 </div> 1071 </div> 1072</section> 1073 1074<!-- Services --> 1075<section class="lx-section-sm"> 1076 <div class="lx-wrap"> 1077 <div class="lx-services"> 1078 <a href="/commissions"><h3>Commissions</h3><p>Need something custom? Get a quote within 24–48 hours.</p><svg class="lx-go"><use href="#i-arrow"/></svg></a> 1079 <a href="/products"><h3>Managed hosting</h3><p>We host, set up and maintain your product for you.</p><svg class="lx-go"><use href="#i-arrow"/></svg></a> 1080 <a href="/support"><h3>Support</h3><p>Open a ticket, read the docs, or ask on Discord.</p><svg class="lx-go"><use href="#i-arrow"/></svg></a> 1081 </div> 1082 </div> 1083</section> 1084 1085<!-- Community --> 1086<section class="lx-section-sm" style="padding-top:0"> 1087 <div class="lx-wrap"> 1088 <div class="lx-community lx-reveal"> 1089 <img src="/public/uploads/marketplace/um-2019-toyota-tundra-trd-pro-1770240671-0.png" alt="" loading="lazy"> 1090 <div class="lx-community-copy"> 1091 <h2>Trusted by 400+ communities.</h2> 1092 <p>Join the LonexLabs Discord for release news, sneak peeks and help from the team and other server owners.</p> 1093 <div class="lx-hero-cta"> 1094 <a class="lx-btn lx-btn-primary lx-btn-lg" href="https://discord.gg/lonexlabs" target="_blank" rel="noopener"><svg><use href="#i-discord"/></svg>Join Discord</a> 1095 <a class="lx-btn lx-btn-ghost lx-btn-lg" href="/products">Browse products</a> 1096 </div> 1097 </div> 1098 </div> 1099 </div> 1100</section> 1101
1102<script> 1103document.querySelectorAll('[data-rail]').forEach(b => b.addEventListener('click', () => { 1104 const r = document.getElementById('rail'); 1105 if (r) r.scrollBy({ left: +b.dataset.rail * r.clientWidth * 0.8, behavior: 'smooth' }); 1106})); 1107</script>
1107 1108 </main> 1109 1110 <footer class="lx-site-footer"> 1111 <div class="lx-wrap"> 1112 <div class="lx-footer-grid"> 1113 <div class="lx-footer-brand"> 1114 <img src="/public/logo.svg" alt="LonexLabs" width="141" height="32"> 1115 <p>Tools, integrations and digital resources for FiveM servers and online communities.</p> 1116 </div> 1117 <div class="lx-footer-col"> 1118 <h2>Store</h2> 1119 <a href="/products">Products</a> 1120 <a href="/marketplace">Marketplace</a> 1121 <a href="/commissions">Commissions</a> 1122 </div> 1123 <div class="lx-footer-col"> 1124 <h2>Customers</h2> 1125 <a href="/portal">Dashboard</a> 1126 <a href="/license-verify">Licence lookup</a> 1127 <a href="/support">Support</a> 1128 <a href="https://docs.lonexlabs.com/" target="_blank" rel="noopener">Docs</a> 1129 </div> 1130 <div class="lx-footer-col"> 1131 <h2>Company</h2> 1132 <a href="https://discord.gg/lonexlabs" target="_blank" rel="noopener">Discord</a> 1133 <a href="/terms">Terms</a> 1134 <a href="/privacy">Privacy</a> 1135 <a href="/delete-account">Delete My Data</a> 1136 </div> 1137 </div> 1138 <div class="lx-footer-base"> 1139 <span>© 2026 LonexLabs. All rights reserved.</span> 1140 <span class="lx-status-ok"><span class="lx-dot"></span>All systems operational</span> 1141 </div> 1142 </div> 1143 </footer> 1144 1145 <!-- Custom Modal --> 1146 <div class="modal-overlay" id="customModal"> 1147 <div class="modal-box"> 1148 <div class="modal-icon" id="modalIcon"> 1149 <svg width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"> 1150 <path d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"/> 1151 </svg> 1152 </div> 1153 <h3 class="modal-title" id="modalTitle">Confirm Action</h3> 1154 <p class="modal-message" id="modalMessage">Are you sure you want to proceed?</p> 1155 <div class="modal-actions"> 1156 <button type="button" class="modal-btn modal-btn-cancel" id="modalCancel">Cancel</button> 1157 <button type="button" class="modal-btn modal-btn-confirm" id="modalConfirm">Confirm</button> 1158 </div> 1159 </div> 1160 </div> 1161 1162 <style> 1163 .modal-overlay { 1164 position: fixed; 1165 inset: 0; 1166 background: rgba(0, 0, 0, 0.8); 1167 backdrop-filter: blur(4px); 1168 display: flex; 1169 align-items: center; 1170 justify-content: center; 1171 z-index: 9999; 1172 opacity: 0; 1173 visibility: hidden; 1174 transition: all 0.2s ease; 1175 } 1176 .modal-overlay.active { 1177 opacity: 1; 1178 visibility: visible; 1179 } 1180 .modal-box { 1181 background: var(--bg-card); 1182 border: 1px solid var(--border); 1183 border-radius:0; 1184 padding: 28px; 1185 max-width: 420px; 1186 width: 90%; 1187 text-align: center; 1188 transform: scale(0.9) translateY(-20px); 1189 transition: transform 0.2s ease; 1190 } 1191 .modal-overlay.active .modal-box { 1192 transform: scale(1) translateY(0); 1193 } 1194 .modal-icon { 1195 width: 56px; 1196 height: 56px; 1197 border-radius: 50%; 1198 background: rgba(239, 68, 68, 0.15); 1199 color: #ef4444; 1200 display: flex; 1201 align-items: center; 1202 justify-content: center; 1203 margin: 0 auto 20px; 1204 } 1205 .modal-icon svg { 1206 width: 28px; 1207 height: 28px; 1208 } 1209 .modal-icon.warning { 1210 background: rgba(245, 158, 11, 0.15); 1211 color: #f59e0b; 1212 } 1213 .modal-icon.info { 1214 background: rgba(59, 130, 246, 0.15); 1215 color: #3b82f6; 1216 } 1217 .modal-icon.success { 1218 background: rgba(41, 205, 150, 0.15); 1219 color: var(--accent); 1220 }
1221 .modal-title { 1222 font-size: 20px; 1223 font-weight: 700; 1224 margin-bottom: 8px; 1225 color: var(--text); 1226 } 1227 .modal-message { 1228 font-size: 15px; 1229 color: var(--text-dim); 1230 margin-bottom: 28px; 1231 line-height: 1.6; 1232 } 1233 .modal-actions { 1234 display: flex; 1235 gap: 12px; 1236 justify-content: center; 1237 } 1238 .modal-btn { 1239 padding: 12px 24px; 1240 border-radius:0; 1241 font-size: 14px; 1242 font-weight: 600; 1243 cursor: pointer; 1244 transition: all 0.2s; 1245 border: none; 1246 min-width: 110px; 1247 } 1248 .modal-btn-cancel { 1249 background: var(--bg-card-hover); 1250 color: var(--text); 1251 border: 1px solid var(--border); 1252 } 1253 .modal-btn-cancel:hover { 1254 background: var(--bg-elevated); 1255 } 1256 .modal-btn-confirm { 1257 background: #ef4444; 1258 color: white; 1259 } 1260 .modal-btn-confirm:hover { 1261 background: #dc2626; 1262 } 1263 .modal-btn-confirm.primary { 1264 background: var(--accent); 1265 } 1266 .modal-btn-confirm.primary:hover { 1267 background: var(--accent-dim); 1268 } 1269 </style> 1270 1271
1271<script> 1272 // Custom modal system 1273 const modal = { 1274 el: document.getElementById('customModal'), 1275 title: document.getElementById('modalTitle'), 1276 message: document.getElementById('modalMessage'), 1277 icon: document.getElementById('modalIcon'), 1278 confirmBtn: document.getElementById('modalConfirm'), 1279 cancelBtn: document.getElementById('modalCancel'), 1280 callback: null, 1281 1282 show(options = {}) { 1283 this.title.textContent = options.title || 'Confirm Action'; 1284 this.message.textContent = options.message || 'Are you sure you want to proceed?'; 1285 this.confirmBtn.textContent = options.confirmText || 'Confirm'; 1286 this.confirmBtn.className = 'modal-btn modal-btn-confirm ' + (options.confirmClass || ''); 1287 1288 this.icon.className = 'modal-icon ' + (options.type || ''); 1289 1290 this.callback = options.onConfirm || null; 1291 this.el.classList.add('active'); 1292 document.body.style.overflow = 'hidden'; 1293 }, 1294 1295 hide() { 1296 this.el.classList.remove('active'); 1297 document.body.style.overflow = ''; 1298 this.callback = null; 1299 }, 1300 1301 confirm(title, message, onConfirm, options = {}) { 1302 this.show({ title, message, onConfirm, ...options }); 1303 } 1304 }; 1305 1306 modal.confirmBtn.addEventListener('click', () => { 1307 if (modal.callback) modal.callback(); 1308 modal.hide(); 1309 }); 1310 1311 modal.cancelBtn.addEventListener('click', () => modal.hide()); 1312 modal.el.addEventListener('click', (e) => { 1313 if (e.target === modal.el) modal.hide(); 1314 }); 1315 1316 document.addEventListener('keydown', (e) => { 1317 if (e.key === 'Escape' && modal.el.classList.contains('active')) { 1318 modal.hide(); 1319 } 1320 }); 1321 1322 // Override confirm dialogs on forms 1323 document.querySelectorAll('form[onsubmit*="confirm"]').forEach(form => { 1324 const originalOnsubmit = form.getAttribute('onsubmit'); 1325 const match = originalOnsubmit.match(/confirm\(['"](.+?)['"]\)/); 1326 1327 if (match) { 1328 form.removeAttribute('onsubmit'); 1329 let confirmed = false; 1330 1331 form.addEventListener('submit', function(e) { 1332 if (confirmed) { 1333 confirmed = false; 1334 return true; 1335 } 1336 1337 e.preventDefault(); 1338 modal.confirm( 1339 'Confirm Action', 1340 match[1], 1341 () => { 1342 confirmed = true; 1343 form.submit(); 1344 }, 1345 { type: 'warning' } 1346 ); 1347 }); 1348 } 1349 }); 1350 </script>
1350 1351 1352
1352<script> 1353 (function() { 1354 const toggle = document.getElementById('mobileToggle'); 1355 const mobileNav = document.getElementById('mobileNav'); 1356 if (!toggle || !mobileNav) return; 1357 1358 toggle.addEventListener('click', function() { 1359 this.classList.toggle('open'); 1360 mobileNav.classList.toggle('open'); 1361 document.body.style.overflow = mobileNav.classList.contains('open') ? 'hidden' : ''; 1362 }); 1363 1364 mobileNav.querySelectorAll('.nav-link').forEach(link => { 1365 link.addEventListener('click', function() { 1366 toggle.classList.remove('open'); 1367 mobileNav.classList.remove('open'); 1368 document.body.style.overflow = ''; 1369 }); 1370 }); 1371 })(); 1372 </script>
1372 1373 1374 <svg width="0" height="0" style="position:absolute" aria-hidden="true"><defs> 1375 <symbol id="i-arrow" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></symbol> 1376 <symbol id="i-download" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 4v11M7 10l5 5 5-5M5 20h14"/></symbol> 1377 <symbol id="i-left" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m15 6-6 6 6 6"/></symbol> 1378 <symbol id="i-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m9 6 6 6-6 6"/></symbol> 1379 <symbol id="i-ext" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M7 17 17 7M8 7h9v9"/></symbol> 1380 <symbol id="i-cart" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h2l2.4 11.2a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 1.9-1.5L21 8H6.2"/><circle cx="10" cy="20.5" r="1"/><circle cx="17" cy="20.5" r="1"/></symbol> 1381 <symbol id="i-cart-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M3 4h2l2.4 11.2a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 1.9-1.5L21 8H6.2"/><circle cx="10" cy="20.5" r="1"/><circle cx="17" cy="20.5" r="1"/><path d="M13 9.5v4M11 11.5h4"/></symbol> 1382 <symbol id="i-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M4 7h16M4 12h16M4 17h16"/></symbol> 1383 <symbol id="i-life" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="4"/><path d="m5.6 5.6 3.6 3.6M14.8 14.8l3.6 3.6M14.8 9.2l3.6-3.6M5.6 18.4l3.6-3.6"/></symbol> 1384 <symbol id="i-spark" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2l2.2 6.3L20.5 10l-6.3 2.2L12 18.5l-2.2-6.3L3.5 10l6.3-1.7z"/></symbol> 1385 <symbol id="i-discord" viewBox="0 0 24 24" fill="currentColor"><path d="M20.3 4.4A19.8 19.8 0 0 0 15.4 3a13.6 13.6 0 0 0-.6 1.3 18.3 18.3 0 0 0-5.5 0A12.6 12.6 0 0 0 8.7 3a19.7 19.7 0 0 0-4.9 1.5C.5 9-.3 13.6.1 18.1a19.9 19.9 0 0 0 6 3 14 14 0 0 0 1.3-2 13 13 0 0 1-1.9-.9l.4-.3a14.2 14.2 0 0 0 12.1 0l.4.3c-.6.4-1.2.7-1.9.9.4.7.8 1.4 1.3 2a19.8 19.8 0 0 0 6-3c.5-5.2-.9-9.7-3.6-13.7zM8 15.3c-1.2 0-2.2-1.1-2.2-2.4s1-2.4 2.2-2.4 2.2 1.1 2.2 2.4-1 2.4-2.2 2.4zm8 0c-1.2 0-2.2-1.1-2.2-2.4s1-2.4 2.2-2.4 2.2 1.1 2.2 2.4-1 2.4-2.2 2.4z"/></symbol> 1386 <symbol id="i-chev" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m6 9 6 6 6-6"/></symbol> 1387 <symbol id="i-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></symbol>
1388 <symbol id="i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5V5a2 2 0 0 1 2-2h14v15H6a2 2 0 0 0-2 2 2 2 0 0 0 2 2h14"/></symbol> 1389 <symbol id="i-flag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2.8 20.5 7v10L12 21.2 3.5 17V7z"/><path d="M3.5 7 12 11.2 20.5 7M12 11.2v10"/></symbol> 1390 <symbol id="i-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><path d="M6 6l12 12M18 6 6 18"/></symbol> 1391 <symbol id="i-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 12.5 4.2 4L19 7"/></symbol> 1392 <symbol id="i-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="11" width="14" height="9" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></symbol> 1393 <symbol id="i-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-3.6 8-10V5l-8-3-8 3v7c0 6.4 8 10 8 10z"/><path d="m9 12 2 2 4-4"/></symbol> 1394 <symbol id="i-zoom" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5M11 8v6M8 11h6"/></symbol> 1395 <symbol id="i-server" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round"><rect x="3" y="4" width="18" height="7" rx="1.5"/><rect x="3" y="13" width="18" height="7" rx="1.5"/><path d="M7 7.5h.01M7 16.5h.01"/></symbol> 1396 <symbol id="i-key" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="8" cy="12" r="4"/><path d="M12 12h9M18 12v4M15 12v3"/></symbol> 1397 <symbol id="i-puzzle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M10 3.5a2 2 0 1 1 4 0V5h4a1 1 0 0 1 1 1v4h-1.5a2 2 0 1 0 0 4H19v4a1 1 0 0 1-1 1h-4v-1.5a2 2 0 1 0-4 0V19H6a1 1 0 0 1-1-1v-4h1.5a2 2 0 1 0 0-4H5V6a1 1 0 0 1 1-1h4z"/></symbol> 1398 <symbol id="i-apple" viewBox="0 0 24 24" fill="currentColor"><path d="M16.4 12.6c0-2.5 2-3.6 2.1-3.7a4.6 4.6 0 0 0-3.6-2c-1.5-.2-3 .9-3.7.9-.8 0-2-.9-3.2-.8a4.8 4.8 0 0 0-4 2.4c-1.7 3-.4 7.3 1.2 9.7.8 1.2 1.8 2.5 3 2.4 1.2 0 1.7-.8 3.1-.8s1.9.8 3.2.8c1.3 0 2.1-1.2 2.9-2.4a10 10 0 0 0 1.3-2.7 4.2 4.2 0 0 1-2.3-3.8zM14 5.3A4.2 4.2 0 0 0 15 2.2a4.3 4.3 0 0 0-2.8 1.5 4 4 0 0 0-1 3 3.6 3.6 0 0 0 2.8-1.4z"/></symbol> 1399 <symbol id="i-play" viewBox="0 0 24 24" fill="currentColor"><path d="M4.2 2.6c-.3.3-.4.7-.4 1.2v16.4c0 .5.1.9.4 1.2l9.3-9.4z" opacity=".85"/><path d="m16.6 15.1-3.1-3.1 3.1-3.1 3.6 2c1 .6 1 1.6 0 2.2z"/><path d="M13.5 12 4.2 21.4c.4.4 1 .4 1.6.1l10.8-6.4z" opacity=".7"/><path d="M13.5 12 16.6 8.9 5.8 2.5c-.6-.3-1.2-.3-1.6.1z" opacity=".95"/></symbol> 1400</defs></svg> 1401 1402<div class="lx-search-overlay" id="search-overlay" hidden role="dialog" aria-modal="true" aria-label="Search"> 1403 <div class="lx-search-panel"> 1404 <div class="lx-search-field"> 1405 <svg><use href="#i-search"/></svg> 1406 <input type="text" placeholder="Search products, vehicles and docsâ¦" aria-label="Search"> 1407 <span class="lx-esc">esc</span> 1408 </div> 1409 <div class="lx-search-results"></div> 1410 <div class="lx-search-foot"> 1411 <span><kbd>ââ</kbd>navigate</span> 1412 <span><kbd>âµ</kbd>open</span> 1413 <span><kbd>âK</kbd>toggle</span> 1414 </div> 1415 </div> 1416</div> 1417
1418<script src="/public/assets/store.js?v=1790773669"></script>
vendor: 1 bytes, line 1418
1418
1419<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"2f2f5851bc7c48afab05f8e8fa61b48f","r":1,"spa":2}' crossorigin="anonymous"></script>
1419 1420</body> 1421</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.