IS SCH

From LFS Manual
Revision as of 17:49, 9 February 2026 by Bokujishin (talk | contribs) (Created page with "== Introduction == The '''S'''ingle '''CH'''aracter packet is used to send individual key presses to LFS. Standard keys (e.g. V and H) should be sent as capital letters, usin...")
(diff) ←Older revision | Current revision (diff) | Newer revision→ (diff)
Jump to navigationJump to search

Introduction

The Single CHaracter packet is used to send individual key presses to LFS. Standard keys (e.g. V and H) should be sent as capital letters, using the corresponding ASCII values. This does not work with keys such as F keys, arrows, CTRL, etc. For those, you should send an IS_MST packet with the /press, /shift, /ctrl, or /alt commands.

Note that some keys seem not to work properly with this packet, for instance H does not toggle chat history, and I does not toggle ignition. On the other hand, V does change the view, and 9 does turn the hazard lights on.

struct IS_SCH // Single CHaracter
{
	byte	Size;		// 8
	byte	Type;		// ISP_SCH
	byte	ReqI;		// 0
	byte	Zero;

	byte	CharB;		// key to press
	byte	Flags;		// bit 0: SHIFT / bit 1: CTRL
	byte	Spare2;
	byte	Spare3;
};

Packet Details

Size

The size of the packet, always 8 bytes.

Type

The packet type from the ISP_ enumeration, always ISP_SCH.

ReqI

ReqI is always zero.

CharB

The byte representing the key to press. You can use non-printable characters, such as 13 to send an Enter key press.

Flags

2 bits are used to represent the Shift (bit 0) and Ctrl (bit 1) keys being pressed. For instance, sending "M" with Flags 2 corresponds to pressing Ctrl+M.