Interface IMySession
ModAPI giving access to MySession functions and properties for modders
Namespace: VRage.Game.ModAPI
Assembly: VRage.Game.dll
Syntax
public interface IMySessionProperties
AssemblerEfficiencyMultiplier
Gets game session global assembler efficiency multiplier
Declaration
float AssemblerEfficiencyMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
AssemblerSpeedMultiplier
Gets game session global assembler speed multiplier
Declaration
float AssemblerSpeedMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
AutoHealing
Gets if game settings allows auto healing
Declaration
bool AutoHealing { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
AutoSaveInMinutes
Gets auto save game setting
Declaration
uint AutoSaveInMinutes { get; }Property Value
| Type | Description | 
|---|---|
| System.UInt32 | 
BlocksInventorySizeMultiplier
Gets game session global block inventory size multiplier
Declaration
float BlocksInventorySizeMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
Camera
Gets current camera
Declaration
IMyCamera Camera { get; }Property Value
| Type | Description | 
|---|---|
| IMyCamera | 
CameraController
Gets current camera controller
Declaration
IMyCameraController CameraController { get; }Property Value
| Type | Description | 
|---|---|
| IMyCameraController | 
CameraTargetDistance
Gets or sets the third person camera distance.
Declaration
double CameraTargetDistance { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Double | 
CargoShipsEnabled
Gets if game settings allows auto healing
Declaration
bool CargoShipsEnabled { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
CharactersInventoryMultiplier
Gets game session global characters inventory size multiplier
Declaration
float CharactersInventoryMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
ClientCanSave
Declaration
bool ClientCanSave { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
Config
Obtaining values from config is slow and can allocate memory! Do it only when necessary.
Declaration
IMyConfig Config { get; }Property Value
| Type | Description | 
|---|---|
| IMyConfig | 
ControlledObject
Declaration
IMyControllableEntity ControlledObject { get; }Property Value
| Type | Description | 
|---|---|
| IMyControllableEntity | 
CreativeMode
Gets whether current create game is in creative mode
Declaration
bool CreativeMode { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
CurrentPath
Gets current game save path
Declaration
string CurrentPath { get; }Property Value
| Type | Description | 
|---|---|
| System.String | 
DamageSystem
Gets ModAPI interface providing control over damage system
Declaration
IMyDamageSystem DamageSystem { get; }Property Value
| Type | Description | 
|---|---|
| IMyDamageSystem | 
Description
Gets or sets current game description (used in MOTD)
Declaration
string Description { get; set; }Property Value
| Type | Description | 
|---|---|
| System.String | 
ElapsedPlayTime
Gets time elapsed since the start of current session
Declaration
TimeSpan ElapsedPlayTime { get; }Property Value
| Type | Description | 
|---|---|
| System.TimeSpan | 
EnableCopyPaste
Get whether current player can copy/paste grids.
Declaration
bool EnableCopyPaste { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
EnvironmentHostility
Gets current game environment hostility setting
Declaration
MyEnvironmentHostilityEnum EnvironmentHostility { get; }Property Value
| Type | Description | 
|---|---|
| MyEnvironmentHostilityEnum | 
Factions
Gets ModAPI interface providing control over faction
Declaration
IMyFactionCollection Factions { get; }Property Value
| Type | Description | 
|---|---|
| IMyFactionCollection | 
GameDateTime
Gets and sets game date time, that is a sum of 2081 Jan 1 at 0:00:00 and ElapsedPlayTime Note using setter, would change ElapsedPlayTime as well
Declaration
DateTime GameDateTime { get; set; }Property Value
| Type | Description | 
|---|---|
| System.DateTime | 
GameplayFrameCounter
Gets current game amounts of ticks passed from start. Only gets updated when the game is not paused
Declaration
int GameplayFrameCounter { get; }Property Value
| Type | Description | 
|---|---|
| System.Int32 | 
GPS
Gets ModAPI interface providing control over gps coordinates
Declaration
IMyGpsCollection GPS { get; }Property Value
| Type | Description | 
|---|---|
| IMyGpsCollection | 
GrinderSpeedMultiplier
Gets game session global grinder speed multiplier
Declaration
float GrinderSpeedMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
HackSpeedMultiplier
Gets game session global hacking speed multiplier
Declaration
float HackSpeedMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
HasAdminPrivileges
Declaration
bool HasAdminPrivileges { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
HasCreativeRights
Checks if the local player is an admin or is promoted to space master (or higher).
Declaration
bool HasCreativeRights { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
InventoryMultiplier
Not used
Declaration
float InventoryMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
IsCameraAwaitingEntity
Not used
Declaration
bool IsCameraAwaitingEntity { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
IsCameraControlledObject
Gets if the current camera is the current controlled object (not spectator)
Declaration
bool IsCameraControlledObject { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
IsCameraUserControlledSpectator
Gets if the current camera is the user controlled spectator
Declaration
bool IsCameraUserControlledSpectator { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
IsServer
Gets whether this game instance is server. (Not if game is multiplayer)
Declaration
bool IsServer { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
LocalHumanPlayer
Gets player that playing on this game window. Always null, when called on dedicated server instance, and not null in any other cases
Declaration
IMyPlayer LocalHumanPlayer { get; }Property Value
| Type | Description | 
|---|---|
| IMyPlayer | 
MaxBackupSaves
Gets maximum backups allowed in game settings
Declaration
short MaxBackupSaves { get; }Property Value
| Type | Description | 
|---|---|
| System.Int16 | 
MaxFloatingObjects
Gets maximum floating objects allowed in game settings
Declaration
short MaxFloatingObjects { get; }Property Value
| Type | Description | 
|---|---|
| System.Int16 | 
MaxPlayers
Gets maximum players allowed in game settings
Declaration
short MaxPlayers { get; }Property Value
| Type | Description | 
|---|---|
| System.Int16 | 
Mods
Gets or sets mods added to current game
Declaration
List<MyObjectBuilder_Checkpoint.ModItem> Mods { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Collections.Generic.List<MyObjectBuilder_Checkpoint.ModItem> | 
Remarks
Setting mods won't add them to current game, but will save them in game save
MultiplayerAlive
Gets or sets whether there is connection with server. When it is false, a warning would appear.
Declaration
bool MultiplayerAlive { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
MultiplayerDirect
Declaration
bool MultiplayerDirect { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
MultiplayerLastMsg
Gets or sets time in seconds, from last message from server
Declaration
double MultiplayerLastMsg { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Double | 
Name
Gets or sets name of the game
Declaration
string Name { get; set; }Property Value
| Type | Description | 
|---|---|
| System.String | 
NegativeIntegrityTotal
Gets or sets amount of damage applied to blocks
Declaration
float NegativeIntegrityTotal { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
OnlineMode
Gets current session online mode
Declaration
MyOnlineModeEnum OnlineMode { get; }Property Value
| Type | Description | 
|---|---|
| MyOnlineModeEnum | 
OxygenProviderSystem
Gets ModAPI interface providing control oxygen system
Declaration
IMyOxygenProviderSystem OxygenProviderSystem { get; }Property Value
| Type | Description | 
|---|---|
| IMyOxygenProviderSystem | 
Password
Gets or sets password, that player must enter to join server
Declaration
string Password { get; set; }Property Value
| Type | Description | 
|---|---|
| System.String | 
Player
Declaration
IMyPlayer Player { get; }Property Value
| Type | Description | 
|---|---|
| IMyPlayer | 
PositiveIntegrityTotal
Gets or sets amount of integrity added to blocks
Declaration
float PositiveIntegrityTotal { get; set; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
PromoteLevel
Gets the local player's promote level.
Declaration
MyPromoteLevel PromoteLevel { get; }Property Value
| Type | Description | 
|---|---|
| MyPromoteLevel | 
RefinerySpeedMultiplier
Gets or sets global refinery speed multiplier
Declaration
float RefinerySpeedMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
SessionSettings
Declaration
MyObjectBuilder_SessionSettings SessionSettings { get; }Property Value
| Type | Description | 
|---|---|
| MyObjectBuilder_SessionSettings | 
ShowPlayerNamesOnHud
Gets whether player names should be drawn on hud
Declaration
bool ShowPlayerNamesOnHud { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
SurvivalMode
Gets whether current create game is in creative mode
Declaration
bool SurvivalMode { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
ThrusterDamage
Gets whether thruster damage setting is enable
Declaration
bool ThrusterDamage { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
ThumbPath
Gets current game path to thumbnail
Declaration
string ThumbPath { get; }Property Value
| Type | Description | 
|---|---|
| System.String | 
TimeOnBigShip
Gets time spent on controlling large grid
Declaration
TimeSpan TimeOnBigShip { get; }Property Value
| Type | Description | 
|---|---|
| System.TimeSpan | 
TimeOnFoot
Gets time spent on foot
Declaration
TimeSpan TimeOnFoot { get; }Property Value
| Type | Description | 
|---|---|
| System.TimeSpan | 
TimeOnJetpack
Gets time spent flying on jetpack
Declaration
TimeSpan TimeOnJetpack { get; }Property Value
| Type | Description | 
|---|---|
| System.TimeSpan | 
TimeOnSmallShip
Gets time spent on controlling small ship
Declaration
TimeSpan TimeOnSmallShip { get; }Property Value
| Type | Description | 
|---|---|
| System.TimeSpan | 
TotalBotLimit
Gets limitation on maximum bot amount
Declaration
int TotalBotLimit { get; }Property Value
| Type | Description | 
|---|---|
| System.Int32 | 
Version
Get version of Space Engineers
Declaration
Version Version { get; }Property Value
| Type | Description | 
|---|---|
| System.Version | 
VoxelMaps
Gets ModAPI interface providing control over voxel maps
Declaration
IMyVoxelMaps VoxelMaps { get; }Property Value
| Type | Description | 
|---|---|
| IMyVoxelMaps | 
WeaponsEnabled
Gets whether weapons are enabled in current game
Declaration
bool WeaponsEnabled { get; }Property Value
| Type | Description | 
|---|---|
| System.Boolean | 
WeatherEffects
Gets MySectorWeatherComponent ModAPI interface
Declaration
IMyWeatherEffects WeatherEffects { get; }Property Value
| Type | Description | 
|---|---|
| IMyWeatherEffects | 
WelderSpeedMultiplier
Gets current game welder speed global multiplier
Declaration
float WelderSpeedMultiplier { get; }Property Value
| Type | Description | 
|---|---|
| System.Single | 
WorkshopId
Gets current game scenario workshop id
Declaration
Nullable<ulong> WorkshopId { get; }Property Value
| Type | Description | 
|---|---|
| System.Nullable<System.UInt64> | 
WorldBoundaries
Gets world boundaries. Not letting character leaving them
Declaration
BoundingBoxD WorldBoundaries { get; }Property Value
| Type | Description | 
|---|---|
| BoundingBoxD | 
Methods
BeforeStartComponents()
Triggers BeforeStart for each game session component, resets game timer.
Declaration
void BeforeStartComponents()Remarks
You should avoid calling this method, as it can crash the game
Draw()
Calls Draw on all game session components
Declaration
void Draw()GameOver()
Does nothing
Declaration
void GameOver()GameOver(Nullable<MyStringId>)
Does nothing
Declaration
void GameOver(Nullable<MyStringId> customMessage)Parameters
| Type | Name | Description | 
|---|---|---|
| System.Nullable<MyStringId> | customMessage | 
GetCheckpoint(String)
Gets current game save. Game is saved in several files. This function returns object builder for file: Sandbox.sbc
Declaration
MyObjectBuilder_Checkpoint GetCheckpoint(string saveName)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | saveName | Name of save | 
Returns
| Type | Description | 
|---|---|
| MyObjectBuilder_Checkpoint | One of game save parts | 
See Also
GetComponentByInterfaceType<T>()
Gets session component of interface type T
Declaration
MySessionComponentBase GetComponentByInterfaceType<T>()Returns
| Type | Description | 
|---|---|
| MySessionComponentBase | session component | 
Type Parameters
| Name | Description | 
|---|---|
| T | interface type of the session component | 
GetSector()
Gets current game save. Game is saved in several files. This function returns object builder for file: SANDBOX_0_0_0_.sbs
Declaration
MyObjectBuilder_Sector GetSector()Returns
| Type | Description | 
|---|---|
| MyObjectBuilder_Sector | One of game save parts | 
See Also
GetUserPromoteLevel(UInt64)
Gets a remote player's promote level.
Declaration
MyPromoteLevel GetUserPromoteLevel(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| MyPromoteLevel | Player access level | 
GetVoxelMapsArray()
Declaration
Dictionary<string, byte[]> GetVoxelMapsArray()Returns
| Type | Description | 
|---|---|
| System.Collections.Generic.Dictionary<System.String, System.Byte[]> | 
GetWorld()
Gets information what receives client when connecting to server
Declaration
MyObjectBuilder_World GetWorld()Returns
| Type | Description | 
|---|---|
| MyObjectBuilder_World | Object builder of world | 
Remarks
Entities are not streamed to client. Also some information maybe not sent to server
IsPausable()
Get whether game is pauseable (not multiplayer)
Declaration
bool IsPausable()Returns
| Type | Description | 
|---|---|
| System.Boolean | True if game is pauseable | 
IsUserAdmin(UInt64)
Checks if a given player is an admin (or higher).
Declaration
bool IsUserAdmin(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
IsUserIgnorePCULimit(UInt64)
Gets whether user can ignore pcu and block limits
Declaration
bool IsUserIgnorePCULimit(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can ignore pcu and block limits | 
IsUserIgnoreSafeZones(UInt64)
Gets whether user can ignore safezone settings
Declaration
bool IsUserIgnoreSafeZones(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can ignore safezone settings | 
IsUserInvulnerable(UInt64)
Gets whether user is invulnerable
Declaration
bool IsUserInvulnerable(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player is invulnerable | 
IsUserKeepOriginalOwnershipOnPaste(UInt64)
Gets whether user can keep original BuiltBy of blocks when pasting grid
Declaration
bool IsUserKeepOriginalOwnershipOnPaste(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can keep original BuiltBy of blocks when pasting grid | 
IsUserPromoted(UInt64)
Declaration
bool IsUserPromoted(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
IsUserShowAllPlayers(UInt64)
Gets whether user can see all players
Declaration
bool IsUserShowAllPlayers(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can see all players | 
IsUserUntargetable(UInt64)
Gets whether user can't be targeted by turrets
Declaration
bool IsUserUntargetable(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can't be targeted by turrets | 
IsUserUseAllTerminals(UInt64)
Gets whether user can see use all terminals
Declaration
bool IsUserUseAllTerminals(ulong steamId)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steamId | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True if player can use all terminals | 
RegisterComponent(MySessionComponentBase, MyUpdateOrder, Int32)
Registers game session component for updates.
Declaration
void RegisterComponent(MySessionComponentBase component, MyUpdateOrder updateOrder, int priority)Parameters
| Type | Name | Description | 
|---|---|---|
| MySessionComponentBase | component | Game session that should receive updates | 
| MyUpdateOrder | updateOrder | Defines which update methods should be called | 
| System.Int32 | priority | Ignored | 
Save(String)
Saves game
Declaration
bool Save(string customSaveName = null)Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | customSaveName | Name of game save folder | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
SetAsNotReady()
Making game "not ready", preventing joining server for EOS server
Declaration
void SetAsNotReady()SetCameraController(MyCameraControllerEnum, IMyEntity, Nullable<Vector3D>)
Sets mode of camera controller
Declaration
void SetCameraController(MyCameraControllerEnum cameraControllerEnum, IMyEntity cameraEntity = null, Nullable<Vector3D> position = null)Parameters
| Type | Name | Description | 
|---|---|---|
| MyCameraControllerEnum | cameraControllerEnum | Mode of work | 
| IMyEntity | cameraEntity | Entity that camera should follow | 
| System.Nullable<Vector3D> | position | Position of camera | 
SetComponentUpdateOrder(MySessionComponentBase, MyUpdateOrder)
Change the update order of a session component.
There is a proxy for this method in the session component itself.
Declaration
void SetComponentUpdateOrder(MySessionComponentBase component, MyUpdateOrder order)Parameters
| Type | Name | Description | 
|---|---|---|
| MySessionComponentBase | component | The component to set the update order for | 
| MyUpdateOrder | order | The update order | 
TryGetAdminSettings(UInt64, out MyAdminSettingsEnum)
Gets enabled admins settings
Declaration
bool TryGetAdminSettings(ulong steamId, out MyAdminSettingsEnum adminSettings)Parameters
| Type | Name | Description | 
|---|---|---|
| System.UInt64 | steamId | Player steam id | 
| MyAdminSettingsEnum | adminSettings | Admin settings that is enabled for player | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | True when player found | 
Unload()
Unloads current game session. Calls UnloadDataComponents(), UnloadMultiplayer()
Declaration
void Unload()UnloadDataComponents()
Unloads data components. Shouldn't be called directly. Use Unload() instead
Declaration
void UnloadDataComponents()UnloadMultiplayer()
Unloads data components. Shouldn't be called directly. Use Unload() instead
Declaration
void UnloadMultiplayer()UnregisterComponent(MySessionComponentBase)
Unregisters components from updates and calls.
Declaration
void UnregisterComponent(MySessionComponentBase component)Parameters
| Type | Name | Description | 
|---|---|---|
| MySessionComponentBase | component | Component that should no longer work | 
Update(MyTimeSpan)
Updates games. Does 1 simulation tick
Declaration
void Update(MyTimeSpan time)Parameters
| Type | Name | Description | 
|---|---|---|
| MyTimeSpan | time | Used in counting whether game save is required. Usually it is 16.67ms | 
UpdateComponents()
Updates games. Does 1 simulation tick, but without any other logic, that is executed in Update(MyTimeSpan)
Declaration
void UpdateComponents()Events
OnSessionLoading
Called when session started loading
Declaration
event Action OnSessionLoadingEvent Type
| Type | Description | 
|---|---|
| System.Action | 
OnSessionReady
Called when session is ready
Declaration
event Action OnSessionReadyEvent Type
| Type | Description | 
|---|---|
| System.Action |