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
<MissileAmmoDatatag gotRicochetSoundNameattribute. -
Block definitions got
<WheelPlacementCollider>tag (see wheel blocks). -
Block definition's
<MountPointtag gotCouplingTagandAllowCouplingWithItselfattributes.
See Hidden SBC tags/features @ Mountpoints features -
TextPanelblock definition got<MaterialNamesToHideWhenOffline>(see Holo LCD). -
TurretControlBlockblock definition got:-
<PidGainProportional>= 1.1 -
<PidGainIntegral>= 0.5 -
<PidGainDerivative>= 0.005 -
<PidGainFilter>= 1
-
-
DefensiveCombatBlockblock definition got:-
<FleeDistanceMin>= 1 -
<FleeDistanceMax>= 50000 -
<EvasiveManeuverAngleMin>= 0 -
<EvasiveManeuverAngleMax>= 90 -
<EvasiveManeuverIntervalRangeMin>= 1 -
<EvasiveManeuverIntervalRangeMax>= 30
-
-
CockpitandCryoChamberdefinitions got<CharacterAnimations>(see decorative pack 3). -
Beaconblock definition got<EnableLight>(defaults true). -
TargetLockingComponentandTargetLockingBlockComponentgot:-
<LockingModifierCharacter>= 2 -
<LockingTimeMinCharacter>= 1 -
<LockingTimeMaxCharacter>= 10 -
<LockingModifierDistanceCharacter>= 10
-
- New objects:
-
IMyComponentContainer(replaces theMyComponentContainerinblock.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
-
MyExplosionFlagsgotFORCE_CUSTOM_END_OF_LIFE_EFFECT. -
MyParticlesManager.TryCreateParticleEffect()got aint keepXFramesAhead = 0parameter. -
MyExplosionInfogotGetCueByExplosionType()andGetExplosionEffect(). -
MyExplosionInfoSimplifiedgotCustomSoundfield. -
MySoundPairgotGetCueName().
-
-
New objects:
IMyEntityComponentContainerIMyResourceSinkComponentIMyLcdSurfaceComponentIMyMultiTextPanelComponentOwnerIMyRenderWithLightsMyCustomRenderEntitySubpart<T>
-
VRage.Game.Components.Interfacesis now whitelisted. -
MyUpdateOrchestratorwas removed. -
PathUtilsgotEnsureSafePath()
WARNING: it only works for appdata folder or game data folder, it will NOT allow from published mod folders. -
MyObjectBuilderSerializermethods got changed to checkPathUtils.EnsureSafePath(). -
MyLognow only allowsInit()in specific folders (seePathUtils.EnsureSafePath()). -
DictionaryExtensionsgotGetValueOrNew(). -
MyEntityUpdateEnumgotEACH_FRAME_AFTER;EntityFlagsgotNeedsUpdateAfter;MyParallelUpdateFlagsgotEACH_FRAME_AFTER. -
MyEntity:- Changed
Componentsprop toIMyEntityComponentContainertype. - Added
ctor(bool testingPurpouses)andInitComponentsForTesting(). - Added
OnDebugDrawevent. - Added
protected virtual void BeforeGameLogicInit(). - Changed
InstantiateSubpart()to use the first non-null entity given. - Added
OnModelRefreshevent (was since 202 but somehow missed it).
- Changed
-
IMyCockpitgotAttachPilot(IMyCharacter, int animation)overload. -
IMyOffensiveCombatHitAndRungotGetFirstWeaponForwardVectordelegate. -
IMyShipConnectorgotDetachFinishedevent. -
IMyTargetingCapableBlockgotSetLockedTarget(IMyCharacter). -
MyBlockVariantGroupgotHasNewContent()andMarkAsViewedContent(). -
MyCubeBlockDefinitionGroupandMyGuiBlockCategoryDefinitiongotCreateNewContentNotificator(). -
MyVisualScriptLogicProvidergotChangeDoorState(). -
MyRenderComponentPlanet(which is internal) got override forRemoveRenderObjects()(which is accessible fromMyRenderComponent/Base). -
MyRenderComponentScreenAreasgotHideScreenArea(int). -
IMyUpdateOrchestratorgotGetStats(),StatsFilter,StatsViewDirFilter,ClearStats(). -
MyAutopilotWaypointgotIsCorrectRotationNeeded,static AreEqualByResultCoordinates(). -
MyCockpit.AttachPilot()gotint seedparameter (which is the seating animation). -
MyCubeGrid:- Added
MassSyncPropertyprop andOnGridMarkedDirtyevent. - Removed
DebugDrawRange()andDebugDrawPositions().
- Added
-
MyGamePruningStructuregotGetAproximateDynamicClustersForSizeDebug(). -
MyPlanetgotGetHeightFromSurface(). -
MySafeZonegotIsActionAllowed(MySafeZoneAction, long, BoundingBoxD?, BoundingSphereD?, Vector3D?)(and something similar forMySessionComponentSafeZonestoo), -
MyShipControllergotAreBreaksOn,PreviousController,SetLockedTarget(IMyCharacter). -
MyVoxelBasegotIsAnyOfPointInside(). -
IMyTargetLockingComponentgotMyEntity TargetEntityandMyCubeGrid Targetwas marked obsolete. -
MyGridTargetinggotTrackedCharactersChangedevent;SetLockedGrids()was renamed toSetLockedGridsOrCharacters(). -
MyIngameScriptComponentreplacedNextUpdatewithUpdateFrequency. -
MyLightingLogicgotIsPreview. -
MyDefinitionManagergotTryGetContainerDefinition()andTryGetComponentDefinition(). -
MyDefinitionIdgotstatic DropToStringCache(). -
MyDefinitionBasegotCheckDefinitionDLCs(). -
BoundingBoxgotIsBetween(). -
MyDynamicAABBTreeDgotGetAproximateClustersForAabbDebug().