ID:2179470
 
I'd like to design an interface for my game using the BYOND engine.

Unfortunately, using screen objects means every click/every movement of the mouse must go through the server. This means the interface has a noticeable 'ping', which whilst only being a few milliseconds is noticeable to the human eye and has the interface feeling 'sticky' and unresponsive. I want the commands/tool-tips to be instant.

Is there any way to achieve a client-side only interface on BYOND, with calls to the server only to retrieve information as I please?
There is no way to avoid network lag with client.screen UIs. Every event you override in DM code is run on the server after being notified by the client.

However, for .dmf and webclient skins, you can use client-side scripting on elements using JavaScript. Or, if you use client-side commands such as .winset, for things like macros or button commands, then the winset occurs client-side without going through the server and back. In JavaScript, you can call winset and winget client-side using a special topic link.

See the skin reference's sections on "Client-side commands", "Special .winset commands", and "Winset and Winget via JavaScript" for more information.