Skip to content

Features

Automatic Instance Destruction

When the GameMode exits, all Streamer/vehicle/textdraw/menus... instances are automatically destroyed — no more repetitive cleanup code.

However, if an instance needs to be destroyed when a player disconnects, you still need to handle that manually.

Discarded

Functions that can be implemented with built-in JavaScript features or third-party libraries (e.g., floatabs, strcmp, sqlite db, setTimer) have been discarded. This means you should use JavaScript libraries instead of native plugins like mysql or timerfix.

String Retrieval

For most string operations, you no longer need to define fixed-length arrays as in native development. Common functions are handled internally by Infernus. The principle is straightforward: a maximum-length buffer is allocated, then iterated until the first 0 byte is found, marking the end of the string — for example, GetPlayerName becomes player.getName().name.

This approach comes from the practical functions in the internationalization module. If you encounter similar scenarios, there's no need to reinvent the wheel.

Color Conversion

Infernus's underlying color conversion is based on Peter Szombati's samp-node-lib, allowing you to use more semantic color values like #fff, #ffffff, (r, g, b), or (r, g, b, a) when calling certain functions.

If a color doesn't render as expected in certain contexts (e.g., textdraws appear black or white), try a different format — switch #fff to (255, 255, 255, 255), or fall back to the native numeric format.

Player Attributes

  • getFps(): Returns the player's current frame rate (limited to one update per second; may return 0).
  • lastUpdateTick: Timestamp of the player's last update.
  • lastUpdateFpsTick: Timestamp of the player's last FPS update.
  • lastDrunkLevel: The player's last reported drunk level.

Pause Events

Built-in callbacks for player pause (onPause) and resume (onResume). These may not work reliably with the SA Definitive Edition or Android version, as they rely on timers and onUpdate with a margin of error.

TIP

The callback may also be inadvertently triggered when the player's network connection is poor.