Space Engineers

Space Engineers

Mother OS
Showing 1-10 of 26 entries
< 1  2  3 >
Update: 28 Jun @ 5:15pm

# CHANGELOG [0.2.13] - 2025-06-28]
## Added
- Add `boot` command to trigger system boot process.
- Searchlights now work with all existing `light` commands
- Add `light/brightness` command to enable players to set the brightness of a light. This command supports the `add` and `sub` options to increment or decrement the brightness of a light.
- The `rotor/speed` command now accepts a `free` option to allow free movement by default. This allows stationary rotors to move if they have previously been locked at a specific angle.
- The `hinge/speed` command now accepts a `free` option to allow free movement by default. This allows stationary hinges to move if they have previously been locked at a specific angle.
- The `piston/distance` command can now we incremented or decremented using the `add` and `sub` options.
- - The `hinge/rotate` command can now we incremented or decremented using the `add` and `sub` options.
- The `rotor/rotate` command can now we incremented or decremented using the `add` and `sub` options. **Note:** This command is slightly imprecise and accuracy will improve in future versions.

### Fixed
- Fixed critical bug preventing large grids from booting due to a "script too complex" error. The boot process has been refactored this appears to have resolved the issues. This comes at the cost of a slightly longer boot depending on the number of registered modules.

### Updated
- Updated how increments are handled in `BaseModuleCommand`.

Update: 28 Jun @ 5:12pm

Update: 29 Apr @ 2:40pm

# Changelog

## [0.2.12] - 2025-04-29 (Fieldwork update)
### Added
- Add Air Vent hooks:
- `onPressurized` => triggered when state is *Pressurized*.
- `onPressurizing` => triggered when state is *Pressurizing*.
- `onDepressurized` => triggered when state is *Depressurized*.
- `onDepressurizing` => triggered when state is *Depressurizing*.

- Add Piston hooks:
- `onExtended` => triggered when state is *Extended*.
- `onExtending` => triggered when state is *Extending*.
- `onRetracted` => triggered when state is *Retracted*.
- `onRetracting` => triggered when state is *Retracting*.

- Add `block/toggle` command to toggle a block on and off.

### Updated
- Update Door hooks:
- `onOpen` => triggered when state is fully *Open*.
- `onOpening` => triggered when state is *Opening*.
- `onClose` => triggered when state is fully *Closed*.
- `onClosing` => triggered when state is *Closing*.
- Updated `Instructions.readme` to include Discord channel.

### Fixed
- Fixed critical bug caused by Fieldwork update (1.206). This bug was related to how the programmable block API resolves a `List<>` when being enforced by an interface. The solution was to use the new `MemorySafeList<>` type provided by Keen. We're back baby!

Update: 18 Apr @ 8:44am

# Changelog

## [0.2.11] - 2025-04-18

### Added
- Add `CockpitModule` to manage cockpit blocks. Players can now use the `onOccupied` and `onEmpty` hooks.
- Add `dampeners/on` and `dampeners/off` commands to enable control of thruster dampeners.
- Add `handbrake/on` and `handbrake/off` commands to enable control of the handbrake on a grid.

### Updated
- All system modules are now decoupled and registered as either an `ICoreModule` or `IExtensionModule`. This allows for better management of modules and their dependencies during boot and throughout runtime activities.
- Refactor Extension Modules and commands to use new BaseExtensionModule methods.
- Update file structure to isolate Mother OS modules from Mother Core.
- Rename `WaypointCommandQueue` to `WaypointRoutineQueue` for better context.
- Event subscription from within Extension modules is now much easier and uses the event type vs. name for filtering.
- Hinge and Rotor angle tolerances have been improved to 0.1 degrees.
- The `screen/print` command now support line breaks with the `\n` character with the message string.
- Move `print`, `clear`, and `help` commands into core modules where they belong.
- Move `FlightPlanner` to extension modules and rename to `FlightPlanningModule`.
- Move `DisplayManager` to extension modules and rename to `DisplayModule`.
- Move `get` and `set` commands to LocalStorage module.

### Fixed
- Fix bug related to leading and trailing spaces in tag definitions with a block's custom data.
- Fixed bug preventing pistons from extending correctly. This was related to the Activity Monitor not watching the piston correctly following a refactor of the ActivityMonitor.
- Fix bug where targeting a non-existant tag would throw an exception. This is now handled gracefully and players are notified when a tag cannot be found.
- Fixed bug that was preventing `Connector.onUnlock` hook from firing in some cases.
- Romote Control block is now correctly set from the Block Catalogue.
- Fixed bug preventing LocalStorage from saving properly between program cycles.

### Removed
- Removed Controller classes. This has turn out to be an unecessary abstraction at this state. Modules can handle their own request handling for now.
- Remove logic for rendering lines to a text display. This logic will be re-evaluated when Mother GUI begins development.
- Remove `CommunicationsModule`. These capabilities are handled via other modules.
- Remove `NavigationModule`. These capabilities are handled via other modules.

Update: 7 Apr @ 1:08pm

# Changelog

## [0.2.10] - 2025-04-07

### Added
- Add `Terminal` core module to separate Terminal and Display responsibilities due to their difference in use and implementation.
- Add `SpriteFactory` to manage sprite creation and rendering.
- Add **Tags**. Blocks can now be targeting using tags that are defined with a block's Custom Data. This makes it easy to target groups of blocks without worrying about group merging and hiding with the grid terminal.
- `BaseExtensionModule` now provides accessor for BlockCatalogue.GetBlocksByName().

### Updated
- Extension modules and commands have been refactored for size.
- Refactor DisplayManager to abstract sprite management. Some display manipluation has also been migrated into the `Display` class.
- Refactored core modules for file size.

Update: 31 Mar @ 5:57am

Update: 30 Mar @ 9:28am

# Changelog

## [0.2.9] - 2025-03-30

### Added
- Add `screen/print` command to allow players to print custom messages to an LCD screen.
- Add `ScreenModule` to manage interacts with LCD screens.
- Add `MergeBlockModule` to manage merge blocks and processes. Merge block development is ongoing and will require some hacking to make work correctly. Stay tuned.
- Add groundwork for *Docking Procedure* logic to work with flight plans correctly.
- `FlightControlSystem` can now control thruster dampeners.


### Updated
- The `dock` command will now only use connectors that are power on and in an `Unconnected` state.
- Docking request/responses now adhere to a response code system defined in `Response`.
- The `IntergridMessageService` now creates responses with a mandatory response code.
- Docking sequences have been improved for use in space with failsafe checks to ensure smooth docking. Planetary testing still ongoing and failsafes should prevent crashing. Use planetary docking with caution for now.
- `ColorHelper` now holds logic for converting and retrieving colors for use in commands and modules.
- `BaseExtensionModule` now contains more common method accessors for modules to use ie. `Subscribe()`, `Emit()`.
- Update boot logic of `Mother` to ensure extension modules can access all core modules and services during boot.
- Mother now uses the the max radius around the grid as a safe zone for flying procedures. Grids send safe radius as part of their standard message Header.

### Fixed
- Resolve error when trying to run `fcs/stop` command without an active flight plan.
- Grids no longer remain in a 10 degree rotated position during final landing phase.

Update: 20 Mar @ 1:39pm

# Changelog

## [0.2.8] - 2025-03-20

### Added
- All `IMyTerminalBlock` blocks can now be controlled via `BlockModule`. Players can use the `block/on` and `block/off` commands to toggle blocks on and off. This includes blocks like Refineries, Turrets, and Button Panels.
- Add `IBlockStateHandler` to help with block state management.
- Add `DoorOpenedEvent` and `DoorClosedEvent`.
- Add `DockingModule` and `dock` command.

### Update
- BlockCatalogue block loading has been improved for performance.
- BaseExtensionModule has been expanded to abstract away more common capabilities for developers.
- Hooks are now triggered on `Doors` when activatd by the player. Due to the new aporoach to block state management, hooks can easily be fired from player interactions, or by Mother via commands.

Update: 15 Mar @ 7:12am

Update: 15 Mar @ 6:53am

# Changelog

## [0.2.7 - Hotfix 1] - 2025-03-15

### Update
- Modify command parsing for improved performance.
- Updated ConnectorModule performance when scanning for connector state changes.