Catalog npm
PACKAGE EXPLORERView in registry

5m-js

npm

Helper package for FiveM JS

Versions collected24
Direct dependencies1From release 0.8.1
Last observed20 Oct, 20:37 UTC

README

Current package documentation

5m-js

Helper package for FiveM.

Installation

NPM

npm i 5m-js

YARN

yarn add 5m-js

Feature

  • Wrap native functions with setImmediate to avoid freezing the main thread. Ref
  • RPC to invoke functions client/server registered functions.
  • RPC to invoke native client functions from server.

Examples

JS

Wrap natives within callback

require("5m-js");

onNet("event-name", async () => {
  const serverId = source;
  const name = await I.GetPlayerName(serverId);
  I.emitNet("event-name", name)
})

RPC

Invoke server registered routine.

server.js

require("5m-js");

// calculate will be the rpc name
// when passing function, it will be registered as the rpc routine
rpc.calculate(function (playerServerId, op, x, y) {
  // `playerServerId` will always passed to the rpc routine when registered in server side.
  // And the rest will be the arguments passed to the rpc invocation from client.
  switch (op) {
    case "+":
      return x + y;
    case "-":
      return x - y;
    default:
      return 0;
  }
});

RegisterCommand("get-player-health", async function () {
  const playerServerId = 1;
  // invoking client registered rpc routine from server, playerServerId is the target player
  const health = await rpc.getPlayerHealth(playerServerId)
  console.log(health)
}, true);

client.js

require("5m-js");
RegisterCommand("calculate-from-server", async function () {
  const r = await rpc.calculate("+", 2, 3);
  console.log(r); // 5
}, false);

// registering rpc routine in clinet to be invoked from server side.
rpc.getPlayerHealth(function () {
  return GetEntityHealth(PlayerPedId())
});
Invoke client natives directly from server

server.js

require("5m-js");

RegisterCommand("kill-all-players", async function() {
  const players = getPlayers();
  for (const p of players) {
    // we need to pass the player server id (source) then the native arguments according to fivem natives.
    const ped = await rpc.native.PlayerPedId(p); 
    await rpc.native.SetEntityHealth(p, ped, 0);
  }
}, true)

HTTP

Perform http request from server
let r = await httpRequest("https://httpbin.org/anything", {
  method: "POST",
  data: "name=5m-js",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  }
})

console.log(
  r.statusCode, r.body, r.headers,
)

r = await httpRequsetJson("https://httpbin.org/anything", {
  method: "POST",
  data: {name: "5m-js"},
  headers: {
    "X-Token": "123"
  }
})

console.log(
  r.statusCode, r.body, r.headers,
)

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 24

Collected releases
VersionPublishedDirect dependenciesOpen version
0.8.1Registry latest12 May 20231
0.8.012 May 20231
0.7.11 May 20231
0.7.026 Apr 20231
0.6.226 Apr 20231
0.6.131 Jan 20231
0.6.031 Jan 20231
0.5.631 Jan 20231
0.5.531 Jan 20231
0.5.426 Jan 20231
0.5.326 Jan 20231
0.4.326 Jan 20231
0.4.226 Jan 20231
0.3.228 Dec 20221
0.3.128 Dec 20221
0.3.028 Dec 20221
0.2.618 Dec 20221
0.2.518 Dec 20221
0.2.417 Dec 20221
0.1.430 Oct 20222

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
0xwaleed/5m-js

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:37 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:02f895c7fbb0ae672fdc55834680b84cd76f1a5037d2da9d2134ffbf1f0bbb65