Aprender
Clase de motor
ChangeHistoryService
No creable
Servicio

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.


Resumen
Miembros heredados

Referencia API
Métodos
FinishRecording
Seguridad del plugin
ChangeHistoryService:FinishRecording(
identifier:string, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
):()
Parámetros
identifier:string
finalOptions:Dictionary?
Devuelve
()
Muestras de código
CambioHistóricoServicio:IntentarComenzarGrabación
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ejemplo de Plugin")
local button = toolbar:CreateButton("Neonízalo", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- No hay nada que hacer.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Establecer selección a neón")
if not recording then
-- Manejar el error aquí. Esto indica que tu plugin comenzó una grabación anterior
-- y nunca la completó. Solo puedes tener una grabación
-- por plugin activa a la vez.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

GetCanRedo
Seguridad del plugin
ChangeHistoryService:GetCanRedo():Tuple
Devuelve

GetCanUndo
Seguridad del plugin
ChangeHistoryService:GetCanUndo():Tuple
Devuelve

IsRecordingInProgress
Seguridad del plugin
ChangeHistoryService:IsRecordingInProgress(identifier:string?):boolean
Parámetros
identifier:string?
Devuelve

Redo
Seguridad del plugin
ChangeHistoryService:Redo():()
Devuelve
()

ResetWaypoints
Seguridad del plugin
ChangeHistoryService:ResetWaypoints():()
Devuelve
()

SetEnabled
Seguridad del plugin
ChangeHistoryService:SetEnabled(state:boolean):()
Parámetros
state:boolean
Devuelve
()

SetWaypoint
Seguridad del plugin
ChangeHistoryService:SetWaypoint(name:string):()
Parámetros
name:string
Devuelve
()
Muestras de código
CambioHistóricoServicio:EstablecerPuntoDeRuta
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ejemplo de Plugin")
local button = toolbar:CreateButton("Dale un toque neón", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts > 0 then
-- Llamar a EstablecerPuntoDeRuta antes del trabajo no causará problemas, sin embargo
-- es redundante, solo se necesita la llamada DESPUÉS del trabajo.
--ChangeHistoryService:SetWaypoint("Estableciendo selección en neón")
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
-- Llama a EstablecerPuntoDeRuta DESPUÉS de completar el trabajo
ChangeHistoryService:SetWaypoint("Establecer selección en neón")
else
-- Nada que hacer. No necesitas llamar a EstablecerPuntoDeRuta en el caso en que
-- la acción no terminó realizando ningún cambio en la experiencia.
end
end)

TryBeginRecording
Seguridad del plugin
ChangeHistoryService:TryBeginRecording(
name:string, displayName:string?
Parámetros
name:string
displayName:string?
Devuelve
Muestras de código
CambioHistóricoServicio:IntentarComenzarGrabación
local ChangeHistoryService = game:GetService("ChangeHistoryService")
local Selection = game:GetService("Selection")
local toolbar = plugin:CreateToolbar("Ejemplo de Plugin")
local button = toolbar:CreateButton("Neonízalo", "", "")
button.Click:Connect(function()
local parts = {}
for _, part in pairs(Selection:Get()) do
if part:IsA("BasePart") then
parts[#parts + 1] = part
end
end
if #parts < 1 then
-- No hay nada que hacer.
return
end
local recording = ChangeHistoryService:TryBeginRecording("Establecer selección a neón")
if not recording then
-- Manejar el error aquí. Esto indica que tu plugin comenzó una grabación anterior
-- y nunca la completó. Solo puedes tener una grabación
-- por plugin activa a la vez.
return
end
for _, part in pairs(parts) do
part.Material = Enum.Material.Neon
end
ChangeHistoryService:FinishRecording(recording, Enum.FinishRecordingOperation.Commit)
end)

Undo
Seguridad del plugin
ChangeHistoryService:Undo():()
Devuelve
()

Eventos
OnRecordingFinished
Seguridad del plugin
ChangeHistoryService.OnRecordingFinished(
name:string, displayName:string?, identifier:string?, operation:Enum.FinishRecordingOperation, finalOptions:Dictionary?
Parámetros
name:string
displayName:string?
identifier:string?
finalOptions:Dictionary?

OnRecordingStarted
Seguridad del plugin
ChangeHistoryService.OnRecordingStarted(
name:string, displayName:string?
Parámetros
name:string
displayName:string?

OnRedo
Seguridad del plugin
ChangeHistoryService.OnRedo(waypoint:string):RBXScriptSignal
Parámetros
waypoint:string

OnUndo
Seguridad del plugin
ChangeHistoryService.OnUndo(waypoint:string):RBXScriptSignal
Parámetros
waypoint:string

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.