unicode-to-lfs
v2.0.1
Published
Convert Unicode messages to LFS
Readme
Unicode to LFS
Convert a Unicode string to Live for Speed
This module is designed to be used with NodeJS on the server with an InSim library or as middleware for other LFS InSim applications. This module will parse a Unicode string, converting each character to its respective encoding supported by LFS. This module leaves message colour encodings intact for processing later.
Install
# Install with NPM
npm i unicode-to-lfs
# Install with Yarn
yarn add unicode-to-lfs
# Install with pnpm
pnpm add unicode-to-lfsUsage
import unicodeToLfs from "unicode-to-lfs";
const encodedString1 = unicodeToLfs("ě ш");
const encodedString2 = unicodeToLfs("マ");
console.log(encodedString1);
// Output: ^Eì ^Cø
console.log(encodedString2);
// Output: ^JÏSpecial characters
Special care needs to be taken when converting caret (^) and slash (/) characters:
- A caret needs to be escaped as
^^because the caret symbol acts as an escape character in LFS. Sending^^helloas a message will display^helloin LFS. Sending just^hellowould appear as#ello. - A slash needs to be escaped as
^s, otherwise it is treated as an LFS in-game command prefix when used in a message packet. Sending^shelloas a message will display/helloin LFS.
Options
length
To specify the maximum output byte length, use the length option. If the output string would be trimmed
in the middle of an encoded character, that character will not be included and the string will be padded
with NULL bytes up to the specified length.
import unicodeToLfs from "unicode-to-lfs";
const encodedString1 = unicodeToLfs("ě ш", { length: 4 });
const encodedString2 = unicodeToLfs("ě ш", { length: 7 });
console.log(encodedString1);
// Output: ^Eì\0
console.log(encodedString2);
// Output: ^Eì ^CøisNullTerminated
If set to true, the output string will always end with a NULL byte.
The default value is false.
import unicodeToLfs from "unicode-to-lfs";
const encodedString1 = unicodeToLfs("ě ш", { isNullTerminated: true });
const encodedString2 = unicodeToLfs("ě ш", {
isNullTerminated: true,
length: 7,
});
console.log(encodedString1);
// Output: ^Eì ^Cø\0
console.log(encodedString2);
// Output: ^Eì \0\0\0