npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@laot/bridge

v1.1.0

Published

LTBridge CLI for fetching and bundling FiveM modules.

Readme

LTBridge

npm version npm downloads GitHub Release Date GitHub contributors GitHub License

A next-generation FiveM Script Bridge & Module Manager designed to be incredibly fast, clean, and bloat-free.

Unlike traditional monolithic libraries that force every script to load hundreds of unused functions into memory, LTBridge acts as a smart build tool. It lets you maintain a central repository of your favorite utilities (like Inventory, Framework, Notify) and compiles only the exact code you actually use right into your FiveM resource.

By eliminating slow cross-resource exports and memory bloat, LTBridge helps you build highly independent, lightning-fast scripts with a perfect development experience.

✨ Why LTBridge?

  • AOT Compilation: Our Ahead-of-Time compiler bundles everything in under ~200 milliseconds, meaning zero waiting.
  • Instant Intellisense: Generates an api.lua stub file automatically. You get full autocomplete for everything as you type (LT.Inventory.AddItem).
  • Smart Dependencies: If a module needs another module, LTBridge automatically brings it in. No more missing functions.
  • Live Watcher: Just run ltbridge build -w and start coding. It detects what you type, bundles the necessary modules instantly, and updates your fxmanifest.lua on the fly.

📦 Installation

Install the CLI tool globally using npm:

npm install -g @laot/bridge

Or run it directly via npx:

npx @laot/bridge [command]

🚀 Quick Start

  1. Initialize your project:

    ltbridge init

    Follow the quick prompts to set up your preferences.

  2. Start the Watcher:

    ltbridge build -w

    The watcher will run silently in the background and do all the heavy lifting.

  3. Just Code: Use it in your script immediately. Everything else is automatic.

    local name, lastname = LT.Framework.GetPlayerName()

⚙️ Configuration (ltbridge/ltbridge.config.json)

When you run init, LTBridge creates a simple JSON config.

| Setting | Default | Description | | --- | --- | --- | | buildAsBundle| false (non-interactive init) / prompt on interactive init | Combine everything into 3 clean files (shared, client, server). Set to true for bundle mode. | | debug | false | Turn this on if you want to see internal debug prints from the modules. | | minify | true | Enables code optimization and global variable randomization for maximum performance. | | modules | [] | List of installed modules. The tool manages this automatically! |

🛠️ Commands

| Command | Alias | Description | | --- | --- | --- | | ltbridge | - | Interactive Menu: Manage your modules visually. | | ltbridge init | - | Set up LTBridge in a new project (runs an initial build unless --no-build). | | ltbridge api | - | Regenerate ltbridge/api.lua IDE stubs only. | | ltbridge build | sync | Build the project manually (use -w for live auto-build). | | ltbridge add <name> | - | Add a specific module manually (e.g., Target/*). | | ltbridge remove <name>| - | Remove a module. | | ltbridge why <name> | explain | See exactly why a module was automatically included. | | ltbridge list | - | View installed and available modules. | | ltbridge prune | - | Clean up unused modules from your code. |

🤝 Contributing

Got a cool function or utility? We'd love to have it! The system is designed so anyone can easily add new modules without touching complex configs.

  1. Fork the repository.
  2. Create a folder in modules/ (e.g., modules/@MyCategory/MyFunction).
  3. Write your code:
    • Put your code in client.lua, server.lua, or shared.lua.
    • Write standard EmmyLua comments (--- @param, --- @return) for intellisense.
  4. Submit a Pull Request: We will review and merge it.

🧠 Smart Annotations (@ltbridge)

If you are developing modules, you can use special comments to tell the compiler what to do. The compiler reads these, applies them, and then completely deletes the comments from the final build.

  • --- @ltbridge export: CustomName - Change the exported name of the function.
  • --- @ltbridge alias: AnotherName - Create an alternative name for the same function.
  • --- @ltbridge global - Expose the function directly to the root LT object (e.g., LT.SetResource).
  • --- @ltbridge internal - Marks the module as a "Ghost Module". It runs silently in the background when needed, but doesn't show up in the API or menus.

🙏 Credits

A huge thanks to the community_bridge project for the inspiration behind some core concepts, and luamin.js for the minification engine.


💡 Tip: To stop your IDE from trying to read the bundled output files (which can cause duplicate intellisense warnings), add this to your VSCode settings (.vscode/settings.json):

"Lua.workspace.ignoreDir": ["**/ltbridge/modules/**"]