Lernen
Engine-Klasse
ScriptDocument
Nicht erstellbar
Nicht repliziert

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.


Zusammenfassung
Methoden
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
Events
SelectionChanged(positionLine: number,positionCharacter: number,anchorLine: number,anchorCharacter: number):RBXScriptSignal
Geerbte Mitglieder

API-Referenz
Methoden
CloseAsync
Angehalten
Plugin-Sicherheit
ScriptDocument:CloseAsync():Tuple
Rückgaben
Code-Beispiele
ScriptDocument:CloseAsync
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
local scriptDocument
-- Finde das erste geöffnete Skriptdokument
for _, document in documents do
-- Die Befehlszeile kann nicht geschlossen werden, also wähle sie nicht aus
if not document:IsCommandBar() then
scriptDocument = document
break
end
end
if scriptDocument then
local success, err = scriptDocument:CloseAsync()
if success then
print(`Geschlossen {scriptDocument.Name}`)
else
warn(`Fehler beim Schließen von {scriptDocument.Name} weil: {err}`)
end
else
print("Keine offenen Skripte")
end

EditTextAsync
Angehalten
Plugin-Sicherheit
ScriptDocument:EditTextAsync(
newText:string, startLine:number, startCharacter:number, endLine:number, endCharacter:number
Parameter
newText:string
startLine:number
startCharacter:number
endLine:number
endCharacter:number
Rückgaben

ForceSetSelectionAsync
Angehalten
Plugin-Sicherheit
ScriptDocument:ForceSetSelectionAsync(
cursorLine:number, cursorCharacter:number, anchorLine:number?, anchorCharacter:number?
Parameter
cursorLine:number
cursorCharacter:number
anchorLine:number?
Standardwert: "nil"
anchorCharacter:number?
Standardwert: "nil"
Rückgaben
Code-Beispiele
ScriptDocument:ForceSetSelectionAsync()
--!nocheck
-- Führen Sie den folgenden Code in der Eingabeaufforderung aus, während ein Skript geöffnet ist
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
-- Holen Sie sich den Text in der aktuellen Zeile des Cursors
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Zwingen Sie die gesamte Zeile Text auszuwählen
local success, err = scriptDocument:ForceSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("Auswahl festgelegt!")
else
print(`Auswahl konnte nicht festgelegt werden, weil: {err}`)
end
else
print("Keine Skripte geöffnet")
end

GetLine
Plugin-Sicherheit
ScriptDocument:GetLine(lineIndex:number?):string
Parameter
lineIndex:number?
Standardwert: "nil"
Rückgaben
Code-Beispiele
ScriptDocument.SelectionChanged und ScriptDocument:GetLine()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Ausgewählt: Zeile {positionLine}, Zeichen {positionCharacter}`)
print(`Anker: Zeile {anchorLine}, Zeichen {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Ausgewählter Zeileninhalt: {lineText}`)
end)
else
print("Keine Skripte geöffnet")
end

GetLineCount
Plugin-Sicherheit
ScriptDocument:GetLineCount():number
Rückgaben
Code-Beispiele
ScriptDocument:GetLineCount()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Das Skript hat {lineCount} Zeilen!`)
else
print("Keine Skripte geöffnet")
end

GetScript
Plugin-Sicherheit
ScriptDocument:GetScript():LuaSourceContainer
Code-Beispiele
ScriptDocument:GetScript()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
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(`Aktuell geöffnetes Skript: {openScript:GetFullName()}`)
else
print("Keine Skripte geöffnet")
end

GetSelectedText
Plugin-Sicherheit
ScriptDocument:GetSelectedText():string
Rückgaben
Code-Beispiele
ScriptDocument:HatAusgewähltenText() und :GetSelectedText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
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:HatAusgewähltenText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Aktuell ausgewählter Text: {selectedText}`)
else
print("Kein Text aktuell ausgewählt")
end
end)
else
print("Keine Skripte geöffnet")
end

GetSelection
Plugin-Sicherheit
ScriptDocument:GetSelection():Tuple
Rückgaben

GetSelectionEnd
Plugin-Sicherheit
ScriptDocument:GetSelectionEnd():Tuple
Rückgaben
Code-Beispiele
ScriptDocument:GetSelectionStart() und :GetSelectionEnd()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Auswahlstart: Zeile {startLine}, Char {startCharacter}`)
print(`Auswahlende: Zeile {endLine}, Char {endCharacter}`)
else
print("Keine Skripte geöffnet")
end

GetSelectionStart
Plugin-Sicherheit
ScriptDocument:GetSelectionStart():Tuple
Rückgaben
Code-Beispiele
ScriptDocument:GetSelectionStart() und :GetSelectionEnd()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Auswahlstart: Zeile {startLine}, Char {startCharacter}`)
print(`Auswahlende: Zeile {endLine}, Char {endCharacter}`)
else
print("Keine Skripte geöffnet")
end

GetText
Plugin-Sicherheit
ScriptDocument:GetText(
startLine:number?, startCharacter:number?, endLine:number?, endCharacter:number?
Parameter
startLine:number?
Standardwert: "nil"
startCharacter:number?
Standardwert: "nil"
endLine:number?
Standardwert: "nil"
endCharacter:number?
Standardwert: "nil"
Rückgaben
Code-Beispiele
ScriptDokument:GetText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
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(`Skriptinhalte: {text}`)
else
print("Keine Skripte geöffnet")
end

GetViewport
Plugin-Sicherheit
ScriptDocument:GetViewport():Tuple
Rückgaben
Code-Beispiele
ScriptDocument:GetViewport
---!nocheck
--- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Derzeit werden die Zeilen {firstLine} bis {lastLine} angezeigt`)
else
print("Keine Skripte geöffnet")
end

HasSelectedText
Plugin-Sicherheit
ScriptDocument:HasSelectedText():boolean
Rückgaben
Code-Beispiele
ScriptDocument:HatAusgewähltenText() und :GetSelectedText()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus, während ein Skript geöffnet ist
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:HatAusgewähltenText() then
local selectedText = scriptDocument:GetSelectedText()
print(`Aktuell ausgewählter Text: {selectedText}`)
else
print("Kein Text aktuell ausgewählt")
end
end)
else
print("Keine Skripte geöffnet")
end

IsCommandBar
Plugin-Sicherheit
ScriptDocument:IsCommandBar():boolean
Rückgaben
Code-Beispiele
ScriptDocument:IsCommandBar()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlszeile aus
local ScriptEditorService = game:GetService("ScriptEditorService")
local documents = ScriptEditorService:GetScriptDocuments()
for _, document in documents do
if document:IsCommandBar() then
print("Befehlszeiledokument:", document)
end
end

MultiEditTextAsync
Angehalten
Plugin-Sicherheit
ScriptDocument:MultiEditTextAsync(edits:{any}):Tuple
Parameter
edits:{any}
Rückgaben

RequestSetSelectionAsync
Angehalten
Plugin-Sicherheit
ScriptDocument:RequestSetSelectionAsync(
cursorLine:number, cursorCharacter:number, anchorLine:number?, anchorCharacter:number?
Parameter
cursorLine:number
cursorCharacter:number
anchorLine:number?
Standardwert: "nil"
anchorCharacter:number?
Standardwert: "nil"
Rückgaben
Code-Beispiele
ScriptDocument:RequestSetSelectionAsync()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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
-- Holen Sie sich den Text in der aktuellen Zeile des Cursors
local cursorLine = scriptDocument:GetSelection()
local lineText = scriptDocument:GetLine(cursorLine)
-- Erzwingen Sie die Auswahl der gesamten Zeile
local success, err = scriptDocument:RequestSetSelectionAsync(cursorLine, 1, cursorLine, #lineText + 1)
if success then
print("Auswahl gesetzt!")
else
print(`Fehler beim Setzen der Auswahl: {err}`)
end
else
print("Keine Skripte geöffnet")
end

Events
SelectionChanged
Plugin-Sicherheit
ScriptDocument.SelectionChanged(
positionLine:number, positionCharacter:number, anchorLine:number, anchorCharacter:number
Parameter
positionLine:number
positionCharacter:number
anchorLine:number
anchorCharacter:number
Code-Beispiele
ScriptDocument.SelectionChanged und ScriptDocument:GetLine()
--!nocheck
-- Führen Sie den folgenden Code in der Befehlsleiste aus, während ein Skript geöffnet ist
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(`Ausgewählt: Zeile {positionLine}, Zeichen {positionCharacter}`)
print(`Anker: Zeile {anchorLine}, Zeichen {anchorCharacter}`)
local lineText = scriptDocument:GetLine(positionLine)
print(`Ausgewählter Zeileninhalt: {lineText}`)
end)
else
print("Keine Skripte geöffnet")
end

ViewportChanged
Plugin-Sicherheit
ScriptDocument.ViewportChanged(
startLine:number, endLine:number
Parameter
startLine:number
endLine:number
Code-Beispiele
Verbindung zu ScriptDocument.ViewportChanged
--!nocheck
--[[
Um es auszuführen:
1. Stellen Sie sicher, dass die Ausgabeansicht geöffnet ist
2. Führen Sie den folgenden Code in der Befehlszeile aus
3. Scrollen Sie im geöffneten Skriptfenster nach oben und unten
Ausgabe von Print-Anweisungen des ViewportChanged-Ereignisses erscheint in der Ausgabe
]]
local Workspace = game:GetService("Workspace")
local ScriptEditorService = game:GetService("ScriptEditorService")
-- Erstellen Sie Text, der sich über viele Zeilen erstreckt
local dummyText = string.rep("-- Dummy Text\n", 60)
-- Erstellen Sie ein Skript, das den Dummy-Text enthält, und öffnen Sie es
local otherScript = Instance.new("Script")
otherScript.Source = dummyText
otherScript.Parent = Workspace
local success, err = ScriptEditorService:OpenScriptDocumentAsync(otherScript)
if not success then
warn(`Fehler beim Öffnen des Skripts, weil: {err}`)
return
end
-- Holen Sie sich eine Referenz zum geöffneten Skript
local scriptDocument = ScriptEditorService:FindScriptDocument(otherScript)
local function onViewportChanged(startLine: number, endLine: number)
print(`Viewport des Skripts geändert - Startzeile: {startLine}, Endzeile: {endLine}`)
end
-- Verbinden Sie das ViewportChanged-Ereignis mit der obigen Funktion, die die Start- und Endzeile des aktualisierten Viewports ausgibt
scriptDocument.ViewportChanged:Connect(onViewportChanged)

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.