Aprender
Clase de motor
ScriptDocument
No creable
No replicado

*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
Métodos
EditTextAsync(newText: string,startLine: number,startCharacter: number,endLine: number,endCharacter: number):Tuple
ForceSetSelectionAsync(cursorLine: number,cursorCharacter: number,anchorLine: number?,anchorCharacter: number?):Tuple
GetLine(lineIndex: number?):string
GetText(startLine: number?,startCharacter: number?,endLine: number?,endCharacter: number?):string
RequestSetSelectionAsync(cursorLine: number,cursorCharacter: number,anchorLine: number?,anchorCharacter: number?):Tuple
Eventos
SelectionChanged(positionLine: number,positionCharacter: number,anchorLine: number,anchorCharacter: number):RBXScriptSignal
Miembros heredados

Referencia API
Métodos
CloseAsync
Proporciona
Seguridad del plugin
ScriptDocument:CloseAsync():Tuple
Devuelve
Muestras de código
ScriptDocument:CloseAsync
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
local scriptDocument
-- Encuentra el primer documento de script abierto
for _, document in documents do
-- La Barra de Comandos no se puede cerrar, así que no la selecciones
if not document:IsCommandBar() then
scriptDocument = document
break
end
end
if scriptDocument then
local success, err = scriptDocument:CloseAsync()
if success then
print(`Cerrado {scriptDocument.Name}`)
else
warn(`No se pudo cerrar {scriptDocument.Name} porque: {err}`)
end
else
print("No hay scripts abiertos")
end

EditTextAsync
Proporciona
Seguridad del plugin
ScriptDocument:EditTextAsync(
newText:string, startLine:number, startCharacter:number, endLine:number, endCharacter:number
Parámetros
newText:string
startLine:number
startCharacter:number
endLine:number
endCharacter:number
Devuelve

ForceSetSelectionAsync
Proporciona
Seguridad del plugin
ScriptDocument:ForceSetSelectionAsync(
cursorLine:number, cursorCharacter:number, anchorLine:number?, anchorCharacter:number?
Parámetros
cursorLine:number
cursorCharacter:number
anchorLine:number?
Valor predeterminado: "nil"
anchorCharacter:number?
Valor predeterminado: "nil"
Devuelve
Muestras de código
ScriptDocument:ForceSetSelectionAsync()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
-- Obtener el texto en la línea actual del cursor
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Seleccionar forzadamente toda la línea de texto
local success, err = scriptDocument:ForceSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("¡Selección establecida!")
else
print(`Error al establecer la selección porque: {err}`)
end
else
print("No hay scripts abiertos")
end

GetLine
Seguridad del plugin
ScriptDocument:GetLine(lineIndex:number?):string
Parámetros
lineIndex:number?
Valor predeterminado: "nil"
Devuelve
Muestras de código
ScriptDocument.SelectionChanged y ScriptDocument:GetLine()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function(positionLine, positionCharacter, anchorLine, anchorCharacter)
print(`Seleccionado: Línea {positionLine}, Carácter {positionCharacter}`)
print(`Ancla: Línea {anchorLine}, Carácter {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Texto de la línea seleccionada: {lineText}`)
end)
else
print("No hay scripts abiertos")
end

GetLineCount
Seguridad del plugin
ScriptDocument:GetLineCount():number
Devuelve
Muestras de código
ScriptDocument:GetLineCount()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local lineCount = scriptDocument:GetLineCount()
print(`¡El script tiene {lineCount} líneas!`)
else
print("No hay scripts abiertos")
end

GetScript
Seguridad del plugin
ScriptDocument:GetScript():LuaSourceContainer
Muestras de código
ScriptDocument:GetScript()
--!nocheck
-- Ejecute el siguiente código en la Barra de Comandos mientras un script esté abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local openScript = scriptDocument:GetScript()
print(`Script actualmente abierto: {openScript:GetFullName()}`)
else
print("No hay scripts abiertos")
end

GetSelectedText
Seguridad del plugin
ScriptDocument:GetSelectedText():string
Devuelve
Muestras de código
ScriptDocument:HasSelectedText() y :GetSelectedText()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script esté abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function()
if scriptDocument:HasSelectedText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Texto actualmente seleccionado: {selectedText}`)
else
print("No hay texto actualmente seleccionado")
end
end)
else
print("No hay scripts abiertos")
end

GetSelection
Seguridad del plugin
ScriptDocument:GetSelection():Tuple
Devuelve

GetSelectionEnd
Seguridad del plugin
ScriptDocument:GetSelectionEnd():Tuple
Devuelve
Muestras de código
ScriptDocument:GetSelectionStart() y :GetSelectionEnd()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local startLine, startCharacter = scriptDocument:GetSelectionStart()
local endLine, endCharacter = scriptDocument:GetSelectionEnd()
print(`Inicio de selección: Línea {startLine}, Carácter {startCharacter}`)
print(`Fin de selección: Línea {endLine}, Carácter {endCharacter}`)
else
print("No hay scripts abiertos")
end

GetSelectionStart
Seguridad del plugin
ScriptDocument:GetSelectionStart():Tuple
Devuelve
Muestras de código
ScriptDocument:GetSelectionStart() y :GetSelectionEnd()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local startLine, startCharacter = scriptDocument:GetSelectionStart()
local endLine, endCharacter = scriptDocument:GetSelectionEnd()
print(`Inicio de selección: Línea {startLine}, Carácter {startCharacter}`)
print(`Fin de selección: Línea {endLine}, Carácter {endCharacter}`)
else
print("No hay scripts abiertos")
end

GetText
Seguridad del plugin
ScriptDocument:GetText(
startLine:number?, startCharacter:number?, endLine:number?, endCharacter:number?
Parámetros
startLine:number?
Valor predeterminado: "nil"
startCharacter:number?
Valor predeterminado: "nil"
endLine:number?
Valor predeterminado: "nil"
endCharacter:number?
Valor predeterminado: "nil"
Devuelve
Muestras de código
ScriptDocument:GetText()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local text = scriptDocument:GetText()
print(`Contenido del script: {text}`)
else
print("No hay scripts abiertos")
end

GetViewport
Seguridad del plugin
ScriptDocument:GetViewport():Tuple
Devuelve
Muestras de código
ScriptDocument:GetViewport
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
local firstLine, lastLine = scriptDocument:GetViewport()
print(`Actualmente viendo las líneas {firstLine} a {lastLine}`)
else
print("No hay scripts abiertos")
end

HasSelectedText
Seguridad del plugin
ScriptDocument:HasSelectedText():boolean
Devuelve
Muestras de código
ScriptDocument:HasSelectedText() y :GetSelectedText()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script esté abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function()
if scriptDocument:HasSelectedText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Texto actualmente seleccionado: {selectedText}`)
else
print("No hay texto actualmente seleccionado")
end
end)
else
print("No hay scripts abiertos")
end

IsCommandBar
Seguridad del plugin
ScriptDocument:IsCommandBar():boolean
Devuelve
Muestras de código
ScriptDocument:IsCommandBar()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if document:IsCommandBar() then
print("Documento de la barra de comandos:", document)
end
end

MultiEditTextAsync
Proporciona
Seguridad del plugin
ScriptDocument:MultiEditTextAsync(edits:{any}):Tuple
Parámetros
edits:{any}
Devuelve

RequestSetSelectionAsync
Proporciona
Seguridad del plugin
ScriptDocument:RequestSetSelectionAsync(
cursorLine:number, cursorCharacter:number, anchorLine:number?, anchorCharacter:number?
Parámetros
cursorLine:number
cursorCharacter:number
anchorLine:number?
Valor predeterminado: "nil"
anchorCharacter:number?
Valor predeterminado: "nil"
Devuelve
Muestras de código
ScriptDocument:RequestSetSelectionAsync()
--!nocheck
-- Ejecuta el siguiente código en la barra de comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
-- Obtén el texto en la línea actual del cursor
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Forzar la selección de toda la línea de texto
local success, err = scriptDocument:RequestSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("¡Selección establecida!")
else
print(`No se pudo establecer la selección debido a: {err}`)
end
else
print("No hay scripts abiertos")
end

Eventos
SelectionChanged
Seguridad del plugin
ScriptDocument.SelectionChanged(
positionLine:number, positionCharacter:number, anchorLine:number, anchorCharacter:number
Parámetros
positionLine:number
positionCharacter:number
anchorLine:number
anchorCharacter:number
Muestras de código
ScriptDocument.SelectionChanged y ScriptDocument:GetLine()
--!nocheck
-- Ejecuta el siguiente código en la Barra de Comandos mientras un script está abierto
local ScriptEditorService = game:GetService("ScriptEditorService")
local function getFirstOpenDocument()
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if not document:IsCommandBar() then
return document
end
end
return nil
end
local scriptDocument = getFirstOpenDocument()
if scriptDocument then
scriptDocument.SelectionChanged:Connect(function(positionLine, positionCharacter, anchorLine, anchorCharacter)
print(`Seleccionado: Línea {positionLine}, Carácter {positionCharacter}`)
print(`Ancla: Línea {anchorLine}, Carácter {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Texto de la línea seleccionada: {lineText}`)
end)
else
print("No hay scripts abiertos")
end

ViewportChanged
Seguridad del plugin
ScriptDocument.ViewportChanged(
startLine:number, endLine:number
Parámetros
startLine:number
endLine:number
Muestras de código
Conectando a ScriptDocument.ViewportChanged
--!nocheck
--[[
Para ejecutar:
1. Asegúrate de que la vista de Salida esté abierta
2. Ejecuta el siguiente código en la Barra de Comandos
3. Desplázate hacia arriba y hacia abajo en la ventana del Script abierta
Las declaraciones de impresión del evento ViewportChanged aparecerán en la Salida
]]
local Workspace = game:GetService("Workspace")
local ScriptEditorService = game:GetService("ScriptEditorService")
-- Crear texto que abarca muchas líneas
local dummyText = string.rep("-- Dummy Text\n", 60)
-- Crear un script que contenga el texto ficticio y abrirlo
local otherScript = Instance.new("Script")
otherScript.Source = dummyText
otherScript.Parent = Workspace
local success, err = ScriptEditorService:OpenScriptDocumentAsync(otherScript)
if not success then
warn(`Error al abrir el script porque: {err}`)
return
end
-- Obtener una referencia al script abierto
local scriptDocument = ScriptEditorService:FindScriptDocument(otherScript)
local function onViewportChanged(startLine: number, endLine: number)
print(`Viewport del Script Cambiado - startLine: {startLine}, endLine: {endLine}`)
end
-- Conectar el evento ViewportChanged a la función anterior que imprime la línea de inicio y la línea final del viewport actualizado
scriptDocument.ViewportChanged:Connect(onViewportChanged)

©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.