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 with NPM
npm i unicode-to-lfs
# Install with Yarn
yarn add unicode-to-lfs
# Install with pnpm
pnpm add unicode-to-lfsimport unicodeToLfs from "unicode-to-lfs";
const encodedString1 = unicodeToLfs("ě ш");
const encodedString2 = unicodeToLfs("マ");
console.log(encodedString1);
// Output: ^Eì ^Cø
console.log(encodedString2);
// Output: ^JÏ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.
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ø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