1.200

From Space Engineers Wiki
Jump to navigation Jump to search

Deeper changes relevant to scripters, modders and server admins.


Created by manually analyzing the differences between 1.199 and 1.200.

Page last edited on 2025 April 29 02:53

All sections can affect modAPI too.
For example a new element in a definition noted in SBC section would not also be marked in the ModAPI section.

Servers & Admins

(Nothing)

SBC & Art Modding

  • New block types:
    • TurretControlBlock (CubeBlocks_Automation.sbc)
    • Searchlight (CubeBlocks_Warfare2.sbc)
    • HeatVentBlock (CubeBlocks_Warfare2.sbc)
  • ControllerSchemes.sbc now exists (not sure if it's intended to be modded)
  • TargetGroups.sbc now exists (has the groups that turrets can target, including types that automatically get them)
  • Fonts.sbc got Japanese data.
  • Block replaced: Cockpit/PassengerSeatSmall is now hidden and replaced by PassengerSeatSmallNew (CubeBlocks_Interiors.sbc)
  • All blocks that have On/Off in terminal got LCD support (<ScreenAreas> tag)
  • All blocks got:
    • <TargetingGroups> (string list) (see TargetGroups.sbc for values)
    • <PriorityModifier> and <NotWorkingPriorityMultiplier> (float) (cannot easily be set by modAPI, private setter)
    • <DamageEffectOffset> (vector3)
    • <AimingOffset> (vector3) (affects where turrets aim at this block, useful for blocks that have nothing in the center of the boundingbox)
    • <DamageMultiplierExplosion> (float)
    • <DetonateChance>, <DamageThreshold> (float)
    • <AmmoExplosionEffect>, <AmmoExplosionSound> (string)
  • All turret definitions got:
    • <HiddenTargetingOptions> and <EnabledTargetingOptions> (space separated tags), values: Players SmallShips LargeShips Stations Asteroids Missiles Neutrals Friends Enemies (mods cannot add to this list)
    • <UpCameraOffset> and <ForwardCameraOffset> (float)
    • <SubpartPairing> (see vanilla definition in CubeBlocks_Weapons.sbc at AutoCannonTurret)
    • <CameraDummyName> (string)
  • All weapon block definitions got:
    • <MuzzleProjectileDummyName>, <MuzzleMissileDummyName>, <HoldingDummyName> (string)
  • Weapon definitions (Weapon.sbc) got:
    • <ShotDelay> (float) (only usable on static missile launcher)
    • FlightSoundName and PreShotSoundName inside <MissileAmmoData ...>
    • <Effects>'s <Effect ...> now has a lot more params inside it + new Action="BeforeShoot" (usable by railguns).
    • <MinimumTimeBetweenIdleRotationsMs> (int, default: 3500, likely only usable on turrets)
    • <MaximumTimeBetweenIdleRotationsMs> (int, default: 4500, likely only usable on turrets)
  • Ammo definition (Ammo.sbc) got:
    • <MissileHealthPool> (float) (how much block health it can penetrate through, basically)
    • <MissileTrailEffect> (string, particle subtypeId)
    • <MissileGravityEnabled> (bool)
    • <ProjectileExplosionRadius> and <ProjectileExplosionDamage> (float)
  • Game.sbc got <Explosion*> tags at the bottom for ammo explosion.
  • HUD/Default.sbc got <TargetingMarkers> section.
  • EntityComponents.sbc got TargetFocusComponent (character) and EntityCapacitorComponent (static missile launcher).
  • Lighting blocks (interior light and spotlight) got:
    • <PointLightEmissiveMaterial>, <SpotLightEmissiveMaterial> (string)
    • <LightDummyName> (string)
  • JumpDrive definition got:
    • <PowerEfficiency> (float, default: 0.8)
    • <MinJumpDistance> (double, default: 5000)
  • Bot definition (Bots.sbc) got:
    • <GridDamage>, </CharacterDamage> (int)
    • <AttackLength>, <AttackRadius> (float)
    • <TargetGrids>, <TargetCharacters> (bool)
    • <AttackSound> (audio def subtypeId)
  • Planet generator definition got:
    • <MaxBotCount> (int, default 16)
    • <MaxBotsPerPlayer> (int, default 32)
  • Character definition got <HeadServerOffset> (float)
  • Cockpit/cryo block definition got <BackpackEnabled> (bool)
  • Cockpit/RC/cryo block definition got <TargetLockingEnabled> (bool, default: false)
  • ExhaustBlock block definition got <AvailableEffects> (string list) (probably is moddable now?)
  • Thruster's flame dummies (model) got "_nodamage" suffix to disable damage capsule on those flames
  • Gas/oxygen tank definition got:
    • <LeakPercent> (float, default 1)
    • <GasExplosionMaxRadius>, <GasExplosionNeededVolumeToReachMaxRadius>, <GasExplosionDamageMultiplier>
    • <GasExplosionSound> (string)
    • <EmptyDamagedSound> (string, default: ParticleWeapExpl)
    • <EmptyDamageEffectName> (string, default: Damage_HeavyMech_Damaged)

Programmable Block API

  • IMyHeatVentgot, IMyTurretControlBlock got added
  • IMyShipMergeBlock got State
  • IMyLargeTurretBase got TargetEnemies, GetTargetingGroups(), GetTargetingGroup(), SetTargetingGroup(), SetManualAzimuthAndElevation()
  • IMyShipDrill now implements IMyShipToolBase
  • IMyTextSurfaceProvider got UseGenericLcd (it's false for the classic LCD blocks)
  • MyGridProgram's ElapsedTime was removed (was obsolete before)

Visual Scripting Tool

(Nothing)

Mod API

  • Whitelist changes:
    • namespace of MyObjectBuilder_TextPanelDefinition (Sandbox.Common.ObjectBuilders.Definitions.* from VRage.Game.dll)
    • namespace of MyObjectBuilder_SafeZoneBlock (ObjectBuilders.SafeZone.* from SpaceEngineers.ObjectBuilders.dll)
    • namespace of MySessionComponentEconomyDefinition (VRage.Game.Definitions.SessionComponents* from VRage.Game.dll)
    • namespace of MySafeZoneSettingsDefinition (VRage.Game.Definitions.* from VRage.Game.dll)
    • namespace of MyReputationSettingsDefinition (VRage.Game.Definitions.Reputation.* from VRage.Game.dll)
    • namespace of MyHudDefinition (Sandbox.Definitions.GUI.* from Sandbox.Game.dll)
    • namespace of MySync<, > (VRage.Game.ModAPI.Network.* from VRage.Game.dll)
    • SyncDirection.BothWays, SyncDirection.FromServer, SyncExtensions, IMyEventProxy
    • MyBillboard, MyTriangleBillboard, MyBillboard.LocalTypeEnum
    • MyDecalPositionUpdate, MyDecalRenderInfo, MyDecalBindingInfo, MyDecalFlags
    • MyControlStateType, MyControlType, IMyControllerControl
    • MyTextureChange, MyMeshDrawTechnique, MyIntersectionResultLineTriangleEx, MyIntersectionResultLineTriangle
    • MyAmmoBase
  • Various interfaces and objects were moved in other namespaces, you'll need to update them in your own code (keen adds usings to mods themselves).
  • MyFunctionalBlockDefinition, MyHeatVentBlockDefinition, MyControllerSchemeDefinition was added
  • MyChatBotResponseDefinition was removed
  • MyJumpDriveDefinition's JumpDelay field was removed from code
  • MyCubeBlockDefinition.GetObjectBuilder() no longer hardcodedly throws an exception.
  • MyCubeBlockDefinition got MatchingTurretTargetingGroup(MyStringHash)
  • MyDefinitionManager got:
    • GetChatBotResponseDefinitions() was removed
    • GetControllerSchemesSelectable(), GetControllerScheme(), GetEmoteDefinitions() were added
    • GetTargetingGroupDefinitions(), HasDefaultTargetingGroup() were added
  • MyFactionDefinition got FactionIconWorkshopId (a mystery in how it works)
  • MyWeaponDefinition and MyWeaponItemDefinition got DummyNames dictionary (0 = projectile, 1 = missile, 2 = holding)
  • MyDecals got:
    • HandleAddDecal() got a List<int> param to get IDs of added decals, and a few other new params
    • AddDecal() got added
  • MyExplosionInfo got DirectionNormal, ShouldDetonateAmmo and EffectHitAngle
  • MyExplosions got OnExplosion static event
  • MyInventory got ExternalMass field
  • MyCompositeGameLogicComponent got Add<T>(), Remove<T>(), Remove(string) and GetComponents().
  • IMyCubeGrid got:
    • OnGridMerge event
    • GetGridGroup(), GetFatBlocks<T>(), ApplyDeformation()
    • ResourceDistributor, ConveyorSystem, WeaponSystem, ControlSystem, JumpSystem, GasSystem
  • MyCubeGrid got IsSolarOccluded, OnConnectionChanged, IsConnectedTo(), GetConnectedGrids(), ShootOrigin, GetAmmoDefinition, MaxShootRange
  • IMyGridGroups (MyAPIGateway.GridGroups) got OnGridGroupCreated, OnGridGroupDestroyed, GetGridGroup(), GetGridGroups<T>(), AddGridGroupLogic<T>()
  • MyDataBroadcaster got IsBeacon
  • MyEntity3DSoundEmitter got ClearSecondaryCue()
  • MyJumpDrive got CanJumpIfFull and CanJumpIfFullAndHasAccess()
  • MyPlanet got PrefetchShapeOnRay()
  • IMyProjectileDetector got added (MySafeZone implements it for example)
  • IMyTargetingCapableBlock got added (and is implemented by MyShipController and turret base)
  • MyShipController got IsTargetLockingEnabled and IsTargetLockingEnabled() (same thing)
  • MyVoxelBase got GetMaterialAt()
  • IMyVoxelMaps got CreatePredefinedVoxelMap(), CreateProceduralVoxelMap(), SpawnPlanet()
  • MyResourceDistributorComponent got OnPowerGenerationChanged, MaxAvailableResourceByType(), TotalRequiredInputByType()
  • MyResourceSinkComponent's SetRequiredInputFuncByType() now returns the old func
  • MyTargetingHelper now exists, Instance is statically accessible.
  • MyAPIGateway got Projectiles, Missiles, DLC
  • IMyMissile and IMyGunObject<T> (T:MyDeviceBase) was added
  • IMyUtilities (MyAPIGateway.Utilities) got ReadFileInModLocation(), ReadFileInGameContent(), ReadBinaryFileInModLocation(), ReadBinaryFileInGameContent(), FileExistsInModLocation(), FileExistsInGameContent()
  • IMyGui (MyAPIGateway.Gui) got ShowTerminalPage(), ChangeInteractedEntity()
  • IMyPhysics (MyAPIGateway.Physics) got CreatePhysics(), CreateMass(), CreateSettingsFor*()
  • MyModContext got ModItem
  • MyTransparentGeometry got AddBillboard(), AddBillboards(), RemovePersistentBillboard(), RemovePersistentBillboards(), ApplyActionOnPersistentBillboards() (2 overloads)
  • MyGameLogicComponent and IMyGameLogicComponent got ModContext
  • MyGameDefinition got Explosion*
  • MyEntity.Name is now a property that calls the proper things when you set the name (MyEntitiesInterface.SetEntityName())
  • MyEntity got RemovedFromScene event
  • IMyEntity got ModelCollision
  • IMyConfig got LightsQuality
  • IMyConfigDedicated removed AutoRestartSave, added RestartSave
  • IMyCubeBlock lost DebugDraw()
  • IMyCubeBuilder.AddConstruction() was marked obsolete
  • IMyDamageSystem (MyAPIGateway.Session.DamageSystem) got RaiseBeforeDamageApplied(), RaiseAfterDamageApplied()
  • IMyFactionCollection (MyAPIGateway.Session.Factions) got GetReputationBetweenPlayerAndFaction()
  • IMyModel got GetTriangle(), GetDrawTechnique(), GetVertex(), GetVertex()
  • IMyPlayerCollection (MyAPIGateway.Players) got ItemConsumed event
  • IMySession (MyAPIGateway.Session) got TotalBotLimit, TryGetAdminSettings(), IsUser*()
  • IMyDestroyableObject's DoDamage() got a shouldDetonateAmmo=true optional parameter
  • MyObjectBuilderType.LEGACY_TYPE_PREFIX is now public
  • IMyInput (MyAPIGateway.Input) got (for gamepad): GetControl(), TryGetControl(), GetCodeForControl(), IsControlAnalog(), IsDefined(), IsControl()
  • MySpectator got OnModeChanged event
  • IMyGridTerminalSystem (MyAPIGateway.TerminalActionsHelper.GetTerminalSystemForGrid(grid)) got GroupAdded and GroupRemoved events



This was adapted from the original on Digi's SE-ModScript-Examples wiki.