23 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

DataModel

Inherits from: ServiceProvider → Instance → Object

The Data Model (commonly known as game after the global variable used to access it) is the root of Roblox's parent-child hierarchy. Its direct children are services, such as Workspace and Lighting, that act as the fundamental components of a Roblox game.

Inherits from: ServiceProvider

Memory category: Instances

Tags: NotCreatable

Code samples: View on Creator Hub (DataModel1).

Properties

NameType / ReturnsDescription
DataModel.CreatorIdint64Describes the ID of the user or group that owns the place.
DataModel.CreatorTypeCreatorTypeDescribes the CreatorType of the place, whether the place is owned by a user or a group.
DataModel.GameIdint64Describes the ID of the experience that the place running on the server belongs to.
DataModel.GearGenreSettingGearGenreSettingNot functional. Historically described the gear permissions of the place as set on the Roblox website.
DataModel.GenreGenreNot functional. Historically described the Genre of the place as set on the Roblox website.
DataModel.JobIdstringA unique identifier for the running game server instance.
DataModel.lightingInstanceRefers to the game's Lighting service.
DataModel.MatchmakingTypeMatchmakingTypeRepresents how players in the server are handled by matchmaking.
DataModel.PlaceIdint64Describes the ID of the place running on the server.
DataModel.PlaceVersionintDescribes the version of the place the server is running on.
DataModel.PrivateServerIdstringDescribes the private server ID of the server, if the server is a private server or a reserved server.
DataModel.PrivateServerOwnerIdint64Describes the UserId of the Player that owns the private server if the server is private.
DataModel.RunServiceRunServiceA reference to the RunService service.
DataModel.VIPServerIdstringA string that could identify the current server as a private server.
DataModel.VIPServerOwnerIdint64The UserId of the account who owns the private server.
DataModel.WorkspaceWorkspaceA reference to the Workspace service.
DataModel.workspaceWorkspace

Inherited from Instance

NameType / ReturnsDescription
Instance.ArchivablebooleanDetermines if an Instance and its descendants can be cloned using Instance:Clone(), and can be saved/published.
Instance.archivableboolean
Instance.CapabilitiesSecurityCapabilitiesThe set of capabilities allowed to be used for scripts inside this container.
Instance.IsInSandboxbooleanIndicates whether the instance is inside a sandboxed container.
Instance.NamestringA non-unique identifier of the Instance.
Instance.ParentInstanceDetermines the hierarchical parent of the Instance.
Instance.PredictionModePredictionModeReflects the client-side prediction mode applied to the instance under server-authoritative physics.
Instance.RobloxLockedbooleanA deprecated property that used to protect CoreGui objects.
Instance.SandboxedbooleanWhen enabled, the instance can only access abilities in its Capabilities list.
Instance.UniqueIdUniqueIdA unique identifier for the instance.

Inherited from Object

NameType / ReturnsDescription
Object.ClassNamestringA read-only string representing the class this Object belongs to.
Object.classNamestring

DataModel.CreatorId

This property describes the ID of the user or group that owns the place. If the DataModel.CreatorType property is User then CreatorId will be the Player.UserId of the place's owner. If the DataModel.CreatorType is Group then CreatorId will be the ID of the group that owns the place.

FieldValue
typeint64
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

Code samples: View on Creator Hub (detect-when-the-place-owner-joins-the-game).

DataModel.CreatorType

This property describes the CreatorType of the place, whether the place is owned by a user or a group. If User, then the DataModel.CreatorId property will describe the UserId of the account that owns the game. If Group, then it will describe the group ID.

FieldValue
typeCreatorType
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

Code samples: View on Creator Hub (detect-when-the-place-owner-joins-the-game).

DataModel.GameId

This property describes the ID of the experience that the place running on the server belongs to.

See Also

FieldValue
typeint64
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

DataModel.GearGenreSetting

Deprecated. This property is deprecated and is no longer functional. It should not be used.

This property, along with DataModel.Genre, no longer functions correctly and attempting to read it may throw an error.

FieldValue
typeGearGenreSetting
tags["ReadOnly","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

DataModel.Genre

Deprecated. This property is deprecated and is no longer functional. It should not be used.

This property is broken and should not be used.

This property historically described the Genre of the place as set on the Roblox website.

This property, along with DataModel.GearGenreSetting, no longer functions correctly due to genres existing on the Roblox website that are not reflected in the Genre enum. As a result, attempting to read this property may throw an error.

FieldValue
typeGenre
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

DataModel.JobId

This property is a unique identifier for the running game server instance. It is a universally unique identifier (UUID), meaning that no two servers, past or present, will ever have the same ID.

Defaults to an empty string in Studio.

See Also

FieldValue
typestring
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryJobInfo
serialization{"can_load":false,"can_save":false}

DataModel.lighting

Deprecated. This item has been superseded by game:GetService("Lighting"), which should be used instead.

This property was once used to get the game's Lighting service.

FieldValue
typeInstance
tags["ReadOnly","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":false}

DataModel.MatchmakingType

This property represents how players in the server are handled by matchmaking. Players with different MatchmakingTypes cannot be in or teleport to the same server.

Note that this property is only valid on the server DataModel and it will be the MatchmakingType.Default value for all clients, so only reference this property inside of a server‑side Script.

FieldValue
typeMatchmakingType
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":true}

DataModel.PlaceId

This property describes the ID of the place running on the server.

If the place has not been published to Roblox, this ID will correspond with the template being used.

See Also

FieldValue
typeint64
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

DataModel.PlaceVersion

This property describes the version of the place the server is running on.

This version number corresponds with the version number shown under the Version History section of the place's settings. It is not the current version of the Roblox client. This property is 0 for all unpublished experiences.

When a server instance is created for a place, it uses the place's current version. If the place is later updated while this server is running, the server will remain at its current version.

This property can be used to display a ScreenGui showing the current version of the game to Players to assist with debugging.

FieldValue
typeint
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryState
serialization{"can_load":false,"can_save":false}

Code samples: View on Creator Hub (server-version-number-gui).

DataModel.PrivateServerId

This property describes the private server ID of the server, if the server is a private server.

If the server is not a private server, then this property will be an empty string.

Private servers

Private servers refer to the following:

PrivateServerId vs JobId

The PrivateServerId of a server is different from the DataModel.JobId. The JobId is the unique identifier of the current server instance.

Private servers (private or reserved servers) can have multiple server instances associated with them over time. This is because, although only one server instance can be running at once for a private server, new server instances can open and close as players join and leave the game. For example, no server instance is running when nobody is playing in the server. The PrivateServerId will be consistent across all of these server instances, and the DataModel.JobId will be unique for each one.

See also:

FieldValue
typestring
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":true}

Code samples: View on Creator Hub (detecting-private-servers).

DataModel.PrivateServerOwnerId

This property describes the UserId of the Player that owns the private server if the server is private.

If the server is a standard or reserved server then this property will be set to 0.

This property could be used to identify if a Player is the owner of the private server, for example:

local Players = game:GetService("Players")

-- is this a private server?
if game.PrivateServerId ~= "" and game.PrivateServerOwnerId ~= 0 then

    -- listen for new players being added
    Players.PlayerAdded:Connect(function(player)

        -- check if the player is the server owner
        if player.UserId == game.PrivateServerOwnerId then
            print("The private server owner has joined the game")
        end
    end)
end

See also:

FieldValue
typeint64
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":true}

Code samples: View on Creator Hub (detecting-private-servers).

DataModel.RunService

A reference to the RunService service. Always points to RunService and is never nil. You can also retrieve it with GetService(), for example game:GetService("RunService").

FieldValue
typeRunService
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":false}

DataModel.VIPServerId

Deprecated. This property has been deprecated. Use DataModel.PrivateServerId instead.

This property was string that could identify the current server as a private server.

FieldValue
typestring
tags["Hidden","ReadOnly","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":true}

DataModel.VIPServerOwnerId

Deprecated. This property has been deprecated. Use DataModel.PrivateServerOwnerId instead.

This property indicates the UserId of the account who owns the private server.

FieldValue
typeint64
tags["Hidden","ReadOnly","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":true}

DataModel.Workspace

This property is a reference to the Workspace service. It always points to Workspace and will never be nil.

FieldValue
typeWorkspace
tags["ReadOnly","NotReplicated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":false}

DataModel.workspace

Deprecated. This deprecated property is a variant of DataModel.Workspace which should be used instead.

FieldValue
typeWorkspace
tags["ReadOnly","NotReplicated","Deprecated"]
security{"read":"None","write":"None"}
thread safetyReadSafe
categoryData
serialization{"can_load":false,"can_save":false}

Methods

NameType / ReturnsDescription
DataModel:BindToClose()Binds a function to be called before the server shuts down.
DataModel:GetJobsInfoArrayReturns a table containing basic information about the jobs performed by the task scheduler.
DataModel:GetMessagestring[OBSOLETE]: This function will always return a blank string.
DataModel:GetObjectsInstancesReturns an array of Instances associated with the given content URL.
DataModel:GetRemoteBuildModebooleanThis method is no longer useful and will always return false.
DataModel:IsGearTypeAllowedbooleanReturns whether gear of the given GearType is permitted to be added to Players' StarterGears.
DataModel:IsLoadedbooleanReturns true if the client has finished loading the game for the first time.
DataModel:SavePlacebooleanSaves the current place.
DataModel:SetPlaceId()Sets the DataModel.PlaceId of the current game instance.
DataModel:SetUniverseId()Sets the DataModel.GameId of the current game instance to the given universeId.

Inherited from ServiceProvider

NameType / ReturnsDescription
ServiceProvider:FindServiceInstanceReturns the service specified by the given className if it's already created, errors for an invalid name.
ServiceProvider:GetServiceInstanceReturns the service with the requested class name, creating it if it does not exist.
ServiceProvider:getServiceInstance
ServiceProvider:serviceInstance

Inherited from Instance

NameType / ReturnsDescription
Instance:AddTag()Applies a tag to the instance.
Instance:childrenInstancesReturns an array of the object's children.
Instance:ClearAllChildren()This method destroys all of an instance's children.
Instance:CloneInstanceCreate a copy of an instance and all its descendants, ignoring instances that are not Archivable.
Instance:cloneInstance
Instance:Destroy()Sets the Instance.Parent property to nil, locks the Instance.Parent property, disconnects all connections, and calls Destroy() on all children.
Instance:destroy()
Instance:FindFirstAncestorInstance?Returns the first ancestor of the Instance whose Instance.Name is equal to the given name.
Instance:FindFirstAncestorOfClassInstance?Returns the first ancestor of the Instance whose Object.ClassName is equal to the given className.
Instance:FindFirstAncestorWhichIsAInstance?Returns the first ancestor of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstChildInstance?Returns the first child of the Instance found with the given name.
Instance:findFirstChildInstance
Instance:FindFirstChildOfClassInstance?Returns the first child of the Instance whose ClassName is equal to the given class name.
Instance:FindFirstChildWhichIsAInstance?Returns the first child of the Instance for whom Object:IsA() returns true for the given className.
Instance:FindFirstDescendantInstance?Returns the first descendant found with the given Instance.Name.
Instance:GetActorActor?Returns the Actor associated with the Instance, if any.
Instance:GetAttributeVariantReturns the value which has been assigned to the given attribute name.
Instance:GetAttributeChangedSignalRBXScriptSignalReturns an event that fires when the given attribute changes.
Instance:GetAttributesDictionaryReturns a dictionary of the instance's attributes.
Instance:GetChildrenInstancesReturns an array containing all of the instance's children.
Instance:getChildrenInstances
Instance:GetDebugIdstringReturns a coded string of the debug ID used internally by Roblox.
Instance:GetDescendantsInstancesReturns an array containing all of the descendants of the instance.
Instance:GetFullNamestringReturns a string describing the instance's ancestry.
Instance:GetStyledVariantReturns the styled or explicitly modified value of the specified property, or else the default property value if it hasn't been styled/modified.
Instance:GetStyledPropertyChangedSignalRBXScriptSignalReturns an event that fires when the given style property changes on the instance.
Instance:GetTagsArrayGets an array of all tags applied to the instance.
Instance:HasTagbooleanCheck whether the instance has a given tag.
Instance:IsAncestorOfbooleanReturns true if an Instance is an ancestor of the given descendant.
Instance:IsDescendantOfbooleanReturns true if an Instance is a descendant of the given ancestor.
Instance:isDescendantOfboolean
Instance:IsPropertyModifiedbooleanReturns true if the value stored in the specified property is not equal to the code-instantiated default.
Instance:QueryDescendantsInstancesReturns an array containing all descendants of the instance that match the selector string.
Instance:Remove()Sets the object's Parent to nil, and does the same for all its descendants.
Instance:remove()
Instance:RemoveTag()Removes a tag from the instance.
Instance:ResetPropertyToDefault()Resets a property to its default value.
Instance:SetAttribute()Sets the attribute with the given name to the given value.
Instance:WaitForChildInstanceReturns the child of the Instance with the given name. If the child does not exist, it will yield the current thread until it does.

Inherited from Object

NameType / ReturnsDescription
Object:GetPropertyChangedSignalRBXScriptSignalGet an event that fires when a given property of the object changes.
Object:IsAbooleanReturns true if an object's class matches or inherits from a given class.
Object:isAboolean

DataModel:BindToClose

Binds a function to be called before the server shuts down. If the bound function accepts a parameter, it passes CloseReason specifying the reason for the server shutdown.

You can bind multiple functions by calling BindToClose() repeatedly. Bound functions are called in parallel and run at the same time.

The experience server waits 30 seconds for all bound functions to stop running before it shuts down. After 30 seconds, the server shuts down even if functions are still running. Teleports are disabled during moderation shutdowns.

To verify that the current session is not in Roblox Studio, use RunService:IsStudio(). This prevents bound functions from completing their run in offline testing sessions.

When you use DataStoreService, you should also use BindToClose to bind a function saving all unsaved data to DataStores. This prevents data loss if the server shuts down unexpectedly.

See also:

Parameters

NameTypeDefaultDescription
functionFunctionA function called before the experience server shuts down. If the bound function accepts a parameter, it passes CloseReason specifying the reason for the server shutdown.

Returns

TypeDescription
()
FieldValue
securityNone
thread safetyUnsafe

Code samples: View on Creator Hub (saving-player-data-before-shutting-down, DataModel-BindToClose1).

DataModel:GetJobsInfo

Returns a table containing basic information about the jobs performed by the task scheduler.

In computing, a task scheduler is a system responsible for executing key tasks at the appropriate intervals.

You can also find live task scheduler statistics in the Task Scheduler window in Roblox Studio.

The first entry in the table returned is a reference dictionary containing the statistics (or headings) available. It is in the following format:

{
    ["name"] = "name",
    ["averageDutyCycle"] = "averageDutyCycle",
    ["averageStepsPerSecond"] = "averageStepsPerSecond",
    ["averageStepTime"] = "averageStepTime",
    ["averageError"] = "averageError",
    ["isRunning"] = "isRunning",
}

The subsequent entries in the table returned are dictionaries containing the above statistics for jobs performed by the task scheduler. For example:

{
    ["name"] = "Heartbeat",
    ["averageDutyCycle"] = 0,
    ["averageStepsPerSecond"] = 0,
    ["averageStepTime"] = 0,
    ["averageError"] = 0,
    ["isRunning"] = false,
}

See also:

Returns

TypeDescription
ArrayA table containing information about the jobs performed by the task scheduler, see above for the format.
FieldValue
securityPluginSecurity
thread safetyUnsafe

Code samples: View on Creator Hub (DataModel-GetJobsInfo1).

DataModel:GetMessage

Deprecated. This item is deprecated since the system was phased out a very long time ago, and recently the APIs for setting this message were removed.

This function will always return a blank string. It was originally used to set the message displayed on screen while the game was loading.

This system was phased out a very long time ago, and recently the APIs for setting this message were removed.

Returns

TypeDescription
string
FieldValue
tags["Deprecated"]
securityNone
thread safetyUnsafe

DataModel:GetObjects

Deprecated. This item is deprecated. Do not use it for new work.

This method returns an array of Instances associated with the given content URL. It can be used to insert content from the Roblox library. It's not possible to insert Sounds using this method as they do not have an Instance associated with them and have only a content URL.

Unlike InsertService:LoadAsset(), DataModel:GetObjects() does not require an asset to be "trusted," meaning that an asset doesn't need to be owned by the logged in user, or created by Roblox, to be inserted. However, if the asset is not owned by the logged in user it must be freely available.

Due to this function's security context it can only be used by plugins or the command bar. For an alternative that can be used in Scripts and LocalScripts, see InsertService:LoadAsset().

Parameters

NameTypeDefaultDescription
urlContentIdThe given content URL.

Returns

TypeDescription
InstancesAn array of Instances associated with the content URL.
FieldValue
securityPluginSecurity
thread safetyUnsafe

Code samples: View on Creator Hub (view-a-plugin-s-source-code, batch-convert-decal-web-urls-to-image-content-ids).

DataModel:GetRemoteBuildMode

Deprecated. This item is deprecated. Use RunService:IsServer() to see if your code is running on the server.

This method is no longer useful and will always return false. Use RunService:IsServer() to see if your code is running on the server.

Returns

TypeDescription
boolean
FieldValue
tags["Deprecated"]
securityNone
thread safetyUnsafe

DataModel:IsGearTypeAllowed

Deprecated. This property is deprecated and is no longer functional. It should not be used.

Currently this function only returns the correct value on the client

This function returns whether gear of the given GearType is permitted to be added to Players' StarterGears. For example:

local meleeWeaponsAllowed = game:IsGearTypeAllowed(Enum.GearType.MeleeWeapons)

Whether gear of a specific GearType is permitted in the game is determined in a place's settings page under 'Permissions'. Note, all of a gear's associated GearTypes must be enabled for it to be permitted in a place.

Parameters

NameTypeDefaultDescription
gearTypeGearTypeThe given GearType.

Returns

TypeDescription
booleanWhether gear of the given GearType is permitted in the game.
FieldValue
tags["Deprecated"]
securityNone
thread safetyUnsafe

DataModel:IsLoaded

When all initial Instances in the game have finished replicating to the client, this function returns true.

Unless they are parented to ReplicatedFirst, LocalScripts do not run until the game has loaded. The following snippet, run from a LocalScript in ReplicatedFirst yields until the game has loaded:

if not game:IsLoaded() then
    game.Loaded:Wait()
end

See also:

Returns

TypeDescription
booleanWhether the client has finished loading the game for the first time.
FieldValue
securityNone
thread safetyUnsafe

Code samples: View on Creator Hub (Custom-Loading-Screen).

DataModel:SavePlace

Deprecated. This item is deprecated. Do not use it for new work.

This function was used by an ancient data persistence method to save the current place.

Note:

Parameters

NameTypeDefaultDescription
saveFilterSaveFilterSaveAll

Returns

TypeDescription
boolean
FieldValue
tags["Yields","Deprecated"]
securityNone
thread safetyUnsafe

DataModel:SetPlaceId

This function sets the DataModel.PlaceId of the game instance to the given placeId.

Parameters

NameTypeDefaultDescription
placeIdint64The ID to set the DataModel.PlaceId to.

Returns

TypeDescription
()
FieldValue
securityPluginSecurity
thread safetyUnsafe

DataModel:SetUniverseId

This function sets the DataModel.GameId of the current game instance to the given universeId. This is useful when testing local .rbxl files that have not been published to Roblox.

To access the DataStoreService in an unpublished place, both DataModel:SetUniverseId() and DataModel:SetPlaceId() must be set.

Parameters

NameTypeDefaultDescription
universeIdint64The ID to set the DataModel.GameId to.

Returns

TypeDescription
()
FieldValue
securityPluginSecurity
thread safetyUnsafe

Events

NameType / ReturnsDescription
DataModel.AllowedGearTypeChangedFires when SetGearSettings is called with a different value for allowedGenres.
DataModel.GraphicsQualityChangeRequestFires when the user prompts and increase or decrease in graphics quality using the hotkeys.
DataModel.ItemChangedFires when a property of any object in the DataModel is changed.
DataModel.LoadedFires on the client when the game finishes loading for the first time.
DataModel.ServerRestartScheduledFires on the server when the server has been scheduled to restart. Provides the scheduled restart time, source, and custom attributes.

Inherited from ServiceProvider

NameType / ReturnsDescription
ServiceProvider.CloseFires when the current place is exited.
ServiceProvider.ServiceAddedFired when a service is created.
ServiceProvider.ServiceRemovingFired when a service is about to be removed.

Inherited from Instance

NameType / ReturnsDescription
Instance.AncestryChangedFires when the Instance.Parent property of this object or one of its ancestors is changed.
Instance.AttributeChangedFires whenever an attribute is changed on the Instance.
Instance.ChildAddedFires after an object is parented to this Instance.
Instance.childAdded
Instance.ChildRemovedFires after a child is removed from this Instance.
Instance.DescendantAddedFires after a descendant is added to the Instance.
Instance.DescendantRemovingFires immediately before a descendant of the Instance is removed.
Instance.DestroyingFires immediately before (or is deferred until after) the instance is destroyed via Instance:Destroy().
Instance.StyledPropertiesChangedFires whenever any style property is changed on the instance, including when a property is set to nil.

Inherited from Object

NameType / ReturnsDescription
Object.ChangedFires immediately after a property of the object changes, with some limitations.

DataModel.AllowedGearTypeChanged

Deprecated. This item is deprecated . Do not use it for new work.

This event fires when SetGearSettings is called with a different value for allowedGenres.

FieldValue
tags["Deprecated"]
securityNone

DataModel.GraphicsQualityChangeRequest

Fires when the user prompts an increase or decrease in graphics quality using the hotkeys.

This event fires under the following conditions:

This event does not provide the current graphics quality level or cover all updates to the graphics quality. For example, changes made in the core GUI escape menu are not registered.

You can retrieve a user's SavedQualitySetting using UserGameSettings with the following snippet:

UserSettings():GetService("UserGameSettings").SavedQualityLevel

If the user's graphics settings are set to automatic then the SavedQualitySetting will be Automatic. There is currently no way for developers to reliably get the current graphics quality level of a user's machine.

Parameters

NameTypeDefaultDescription
betterQualitybooleanWhether the user has prompted an increase (true) or a decrease (false) in graphics quality.
FieldValue
securityNone

Code samples: View on Creator Hub (DataModel-GraphicsQualityChangeRequest1).

DataModel.ItemChanged

Deprecated. This function has been superseded by Object.Changed, which should be used in new work instead.

This event fires when a property of any object in the DataModel is changed.

Parameters

NameTypeDefaultDescription
objectInstance
descriptorstring
FieldValue
tags["Deprecated"]
securityNone

Code samples: View on Creator Hub (DataModel-ItemChanged1).

DataModel.Loaded

This event fires on the client when all initial Instances in the game have finished replicating to the client.

Unless they are parented to ReplicatedFirst, LocalScripts do not run until the game has loaded. The following snippet, run from a LocalScript in ReplicatedFirst yields until the game has loaded:

if not game:IsLoaded() then
    game.Loaded:Wait()
end

See also:

FieldValue
securityNone

DataModel.ServerRestartScheduled

Fires when the server has been scheduled to restart, for example when you restart servers from the Creator Hub or Open Cloud to release an experience update, or when Roblox needs to restart servers for infrastructure maintenance.

You can use this event to inform players on the server of the impending restart. You could then let them save their progress or teleport them to updated servers at the most convenient time for your game.

Parameters

NameTypeDefaultDescription
restartTimeDateTimeA DateTime indicating when the server is scheduled to shut down. The actual restart may happen slightly after this projected time, but not before.
sourceCloseReasonAn CloseReason describing what triggered the restart. The value will be CloseReason.DeveloperUpdate for experience updates, and CloseReason.RobloxMaintenance for server maintenance updates.
attributesDictionaryA dictionary of developer-supplied metadata associated with the restart. If no attributes are provided, then this will be an empty table.
FieldValue
securityNone
capabilities["ServerCommunication"]

Code samples: View on Creator Hub (DataModel-ServerRestartScheduled1).

Callbacks

NameType / ReturnsDescription
DataModel.OnCloseTupleInvoked before the game is shut down. When this callback returns, or the timeout period is hit, the game finishes shutting down.

DataModel.OnClose

Deprecated. This function is deprecated. It is recommended to use DataModel:BindToClose() instead.

Invoked before the game is shut down. When this callback returns, or the timeout period is hit, the game finishes shutting down.

Returns

TypeDescription
Tuple
FieldValue
tags["Deprecated"]
securityNone
thread safetyUnsafe

Code samples: View on Creator Hub (DataModel-OnClose1).