This object is in archive! 

Ingame Scripting API additions

Patrick Hansen shared this feedback 21 months ago
Not Enough Votes

As SE has been updated over time, i feel like ingame scripting has been getting less attention than it should.

There have of course been additions that allow previously script-only builds without scripting,

like the Custom Turret Controller, but i feel that scripting adds a lot to the game from a creative standpoint, serving as a tool for expanding the usage of the blocks in game, and could benefit from an update, to bring it up to date with most of what a player can do.


There are likely things i haven't thought of, and some of these are probably problematic on a way i haven't thought of, but what i specifically have in mind is basically the same access to vessel control and information as the player, entailing:


  • Setter for Movement, Rotation and Roll indicators in Ship Controllers, allowing a script to control a ship via the same channel as a player would. (Generalized solutions for controlling vessels can currently be complex, have personally made a couple of classes for the task that are usually longer than the program using them)
  • Setter and getter for Parking mode/state.
  • List of detected Antenna/Beacon signals, on grids with Antennae. (Position only?)
  • List of Detected ores, on grids with Ore Detectors (Position and type?)
  • Getter for the ships current target (Imagining same DetectedEntity as Turrets return)
  • Add, remove and get a list of Jump Drive waypoints, like possible with the Remote Control.
  • Ability to Jump with Jump Drives (I recall that there may be a good reason this isn't in, so maybe ignore)
  • API for the Searchlight (Akin to Turrets), can currently only be accessed as IMyTerminalBlock
  • Getter for block tools state - would allow custom actions when the tool is used under player control.
  • Getter and Setter for wheel brakes (for subgrid wheel control)
  • Access to Convert to ship/station (Might have issues, but could be useful)
  • Better damage readout from blocks (Currently functional or not, while player sees more detailed spectrum)

Also a couple of fixes: (These were the cases last i checked, do not have the oppertunity to re-test right now)


  • Merge Block: .IsConnected() current returns True when the block *Can* connect, not just when it *is* connected.
  • "Ready to Lock" state missing for Landing Gear, currently only has Locked or Unlocked, "Ready to Lock" must be accessed by parsing Detailed Info.


There are a lot of other things I'd want for scripting and the game in general,

but these are the things i feel are doable without having to make (too many) changes to the game itself.

Replies (2)

photo
2

The ore detector one might not be possible without a redesign of the ore detector itself. Currently, the ore detector only runs client-side (for performance reasons) while scripts only run server-side. That might fly in single player, but would fail completely in multiplayer.

photo
1

Was thinking more of it like an add on, like IGC is to antennae, while not being part of the world outside scripting.

But yeah, in any case, while I'd hope to see some of this added, I don't have any illusion that all of it will be ( or eve can be)

Leave a Comment
 
Attach a file