SE v203 modding & scripting changes - THDigi/SE-ModScript-Examples GitHub Wiki
Moved to SE wiki: https://spaceengineers.wiki.gg/wiki/Modding/Reference/Patch_Changes/1.203
Old content
I compared the decompiled Space Engineers' game code for v203.505 against v202.124 and this is what I found that is relevant to modding and scripting (including PB).-
v203.505
- World settings got
<EnableTrashSettingsPlatformOverride>
, game's description of it: "Enable trash settings to be overriden by console specific settings" -
<SyncDistance>
is capped to 2000 for crossplay dedicated servers. -
<ViewDistance>
gets capped to 7000 for console clients (not sure what that means if it's larger and a PC player joins, they probably don't have it capped?).
- World settings got
-
New session settings (sandbox_config.sbc)
-
UpdateRespawnDictionary
= false
Unknown, but it is set to true in the Space Standoff scenario. -
BlueprintShare
= true
Allows players to share blueprints with other online players (players can also turn it off for themselves in game settings). -
BlueprintShareTimeout
= 30
Timeout between sharing blueprints. -
PrefetchShapeRayLengthLimit
= 15000
Max distance weapons can interact with voxels. -
EnemyTargetIndicatorDistance
= 20
Max distance to show enemy character indicator when aiming at them.
-
-
v203.505
- Ammo BasicProperties got
<EndOfLifeEffect>
and<EndOfLifeSound>
. - Ammo MissileProperties got
<ExplosionFlags>
(nullable MyExplosionFlags, defaults null).
- Ammo BasicProperties got
-
Breaking changes:
- Missile ammo definition's
<MissileRicochetAngle>
was replaced by<MissileMinRicochetAngle>
and<MissileMaxRicochetAngle>
. - Missile ammo definition's
<MissileRicochetProbability>
was replaced by<MissileMinRicochetProbability>
and<MissileMaxRicochetProbability>
.
- Missile ammo definition's
-
New Entity Components:
RotatingSubpartComponent
,RandomMovementSubpartComponent
,ParticleEntityComponent
,LcdSurfaceComponent
,MultiTextPanelComponent
. -
Weapon definition's
<MissileAmmoData
tag gotRicochetSoundName
attribute. -
Block definitions got
<WheelPlacementCollider>
tag (see wheel blocks). -
Block definition's
<MountPoint
tag gotCouplingTag
andAllowCouplingWithItself
attributes.
See Hidden SBC tags/features @ Mountpoints features -
TextPanel
block definition got<MaterialNamesToHideWhenOffline>
(see Holo LCD). -
TurretControlBlock
block definition got:-
<PidGainProportional>
= 1.1 -
<PidGainIntegral>
= 0.5 -
<PidGainDerivative>
= 0.005 -
<PidGainFilter>
= 1
-
-
DefensiveCombatBlock
block definition got:-
<FleeDistanceMin>
= 1 -
<FleeDistanceMax>
= 50000 -
<EvasiveManeuverAngleMin>
= 0 -
<EvasiveManeuverAngleMax>
= 90 -
<EvasiveManeuverIntervalRangeMin>
= 1 -
<EvasiveManeuverIntervalRangeMax>
= 30
-
-
Cockpit
andCryoChamber
definitions got<CharacterAnimations>
(see decorative pack 3). -
Beacon
block definition got<EnableLight>
(defaults true). -
TargetLockingComponent
andTargetLockingBlockComponent
got:-
<LockingModifierCharacter>
= 2 -
<LockingTimeMinCharacter>
= 1 -
<LockingTimeMaxCharacter>
= 10 -
<LockingModifierDistanceCharacter>
= 10
-
- New objects:
-
IMyComponentContainer
(replaces theMyComponentContainer
inblock.Components
).
-
-
block.Components.TryGet<T>()
now supports inputting interfaces (Get<T>()
still does not). - Obsolete methods and properties were removed from
IMyTextPanel
. -
Vector3/D.Angle()
was fixed to clamp the value before calling Acos().
-
v203.505
-
MyExplosionFlags
gotFORCE_CUSTOM_END_OF_LIFE_EFFECT
. -
MyParticlesManager.TryCreateParticleEffect()
got aint keepXFramesAhead = 0
parameter. -
MyExplosionInfo
gotGetCueByExplosionType()
andGetExplosionEffect()
. -
MyExplosionInfoSimplified
gotCustomSound
field. -
MySoundPair
gotGetCueName()
.
-
-
New objects:
IMyEntityComponentContainer
IMyResourceSinkComponent
IMyLcdSurfaceComponent
IMyMultiTextPanelComponentOwner
IMyRenderWithLights
MyCustomRenderEntitySubpart<T>
-
VRage.Game.Components.Interfaces
is now whitelisted. -
MyUpdateOrchestrator
was removed. -
PathUtils
gotEnsureSafePath()
WARNING: it only works for appdata folder or game data folder, it will NOT allow from published mod folders. -
MyObjectBuilderSerializer
methods got changed to checkPathUtils.EnsureSafePath()
. -
MyLog
now only allowsInit()
in specific folders (seePathUtils.EnsureSafePath()
). -
DictionaryExtensions
gotGetValueOrNew()
. -
MyEntityUpdateEnum
gotEACH_FRAME_AFTER
;EntityFlags
gotNeedsUpdateAfter
;MyParallelUpdateFlags
gotEACH_FRAME_AFTER
. -
MyEntity
:- Changed
Components
prop toIMyEntityComponentContainer
type. - Added
ctor(bool testingPurpouses)
andInitComponentsForTesting()
. - Added
OnDebugDraw
event. - Added
protected virtual void BeforeGameLogicInit()
. - Changed
InstantiateSubpart()
to use the first non-null entity given. - Added
OnModelRefresh
event (was since 202 but somehow missed it).
- Changed
-
IMyCockpit
gotAttachPilot(IMyCharacter, int animation)
overload. -
IMyOffensiveCombatHitAndRun
gotGetFirstWeaponForwardVector
delegate. -
IMyShipConnector
gotDetachFinished
event. -
IMyTargetingCapableBlock
gotSetLockedTarget(IMyCharacter)
. -
MyBlockVariantGroup
gotHasNewContent()
andMarkAsViewedContent()
. -
MyCubeBlockDefinitionGroup
andMyGuiBlockCategoryDefinition
gotCreateNewContentNotificator()
. -
MyVisualScriptLogicProvider
gotChangeDoorState()
. -
MyRenderComponentPlanet
(which is internal) got override forRemoveRenderObjects()
(which is accessible fromMyRenderComponent/Base
). -
MyRenderComponentScreenAreas
gotHideScreenArea(int)
. -
IMyUpdateOrchestrator
gotGetStats()
,StatsFilter
,StatsViewDirFilter
,ClearStats()
. -
MyAutopilotWaypoint
gotIsCorrectRotationNeeded
,static AreEqualByResultCoordinates()
. -
MyCockpit.AttachPilot()
gotint seed
parameter (which is the seating animation). -
MyCubeGrid
:- Added
MassSyncProperty
prop andOnGridMarkedDirty
event. - Removed
DebugDrawRange()
andDebugDrawPositions()
.
- Added
-
MyGamePruningStructure
gotGetAproximateDynamicClustersForSizeDebug()
. -
MyPlanet
gotGetHeightFromSurface()
. -
MySafeZone
gotIsActionAllowed(MySafeZoneAction, long, BoundingBoxD?, BoundingSphereD?, Vector3D?)
(and something similar forMySessionComponentSafeZones
too), -
MyShipController
gotAreBreaksOn
,PreviousController
,SetLockedTarget(IMyCharacter)
. -
MyVoxelBase
gotIsAnyOfPointInside()
. -
IMyTargetLockingComponent
gotMyEntity TargetEntity
andMyCubeGrid Target
was marked obsolete. -
MyGridTargeting
gotTrackedCharactersChanged
event;SetLockedGrids()
was renamed toSetLockedGridsOrCharacters()
. -
MyIngameScriptComponent
replacedNextUpdate
withUpdateFrequency
. -
MyLightingLogic
gotIsPreview
. -
MyDefinitionManager
gotTryGetContainerDefinition()
andTryGetComponentDefinition()
. -
MyDefinitionId
gotstatic DropToStringCache()
. -
MyDefinitionBase
gotCheckDefinitionDLCs()
. -
BoundingBox
gotIsBetween()
. -
MyDynamicAABBTreeD
gotGetAproximateClustersForAabbDebug()
.