Back to documentation

Custom logs & event system

Flitt automatically captures logs from popular systems and also lets you send your own events from resources/addons.

1. Automatic logs

Flitt automatically captures:

FiveM

qb-log, 7DiscordLog

GMod

bLogs/GAS, Helix

🎮

2. Custom logs (FiveM)

Place this in your resource on startup:

VVBS.Logs.RegisterCategory("myresource")
VVBS.Logs.RegisterModule("myresource", "actions")

Then, when you send a log:

VVBS.Logs.Send("myresource", "actions", {
  action = "open_menu",
  player = "Sterwim",
  player_id = 12,
  details = "Clicked on settings"
})
🛠️

3. Custom logs (GMod)

Place this in your addon on startup:

VVBS.Logs.RegisterCategory("myaddon")
VVBS.Logs.RegisterModule("myaddon", "actions")

Then, when you send a log:

VVBS.Logs.Send("myaddon", "actions", {
  action = "ban_player",
  admin = "AdminName",
  player = "PlayerName",
  reason = "RDM"
})
🧱

4. Minecraft logs (exports)

From a Minecraft plugin (Java), use the Flitt export API:

// Get the Flitt core instance
Plugin flitt = getServer().getPluginManager().getPlugin("Flitt");
if (flitt instanceof fr.flitt.bukkit.FlittBukkitPlugin) {
  fr.flitt.common.FlittPlugin core = ((fr.flitt.bukkit.FlittBukkitPlugin) flitt).getPlugin();

  // Register a category + module on startup (category / sub-category)
  core.getLogManager().log("custom", "myplugin", "register", "Category registered", "", "");

  // Log an event inside that category/module (example: player died)
  core.getLogManager().log("custom", "myplugin", "death", player.getName() + " died", player.getUniqueId().toString(), player.getName());
}

With Skript (via Skript-Reflect):

# Get the Flitt core instance
set {_vvPlugin} to plugin "Flitt"
set {_core} to call method "getPlugin" of {_vvPlugin}
set {_logManager} to call method "getLogManager" of {_core}

# Register category / sub-category on script load
call method "log" of {_logManager} with arguments "custom", "skript", "register", "Category registered", "", ""

# Log an event inside that category/module (example: player died)
call method "log" of {_logManager} with arguments "custom", "skript", "death", "%name of player% died", "%uuid of player%", "%name of player%"

5. Best practices

  • Register categories/modules only once on startup
  • Use clear names (e.g., economy, actions, staff)
  • Avoid sending sensitive data
💡

Need more examples?

Check the public API or examples in official resources.