// == RLgg Online Script Loader with UI ==
// Works on RLgg JavaScript environment
// Built for remote Pastebin raw scripts
(function() {
// 🧩 Create Layout
let layout = {
view: "linear",
orientation: "vertical",
padding: 12,
gravity: "center",
children: [
{
view: "text",
text: "🌐 RLgg Online Loader",
textSize: 20,
textColor: "#00FFAA",
gravity: "center"
},
{
id: "linkInput",
view: "edit",
hint: "Paste your Pastebin raw link here",
singleLine: true,
textSize: 14,
textColor: "#FFFFFF",
hintTextColor: "#888888",
padding: 8,
background: "#222222"
},
{
id: "statusText",
view: "text",
text: "Status: Waiting for input...",
textColor: "#AAAAAA",
textSize: 13,
margin: [0, 10, 0, 10]
},
{
view: "button",
text: "🚀 Load Script",
textColor: "#FFFFFF",
background: "#00AAFF",
cornerRadius: 10,
onClick: function() {
let link = layoutData.linkInput.text;
if (!link || !link.startsWith("http")) {
layoutData.statusText.text = "⚠️ Invalid link.";
return;
}
loadScript(link);
}
}
]
};
// 🧠 Keep layout reference
let layoutData = rlgg.showLayout(layout);
// ⚙️ Fetch and execute function
async function loadScript(link) {
layoutData.statusText.text = "⏳ Fetching script...";
try {
const res = await fetch(link);
if (!res.ok) throw new Error("HTTP " + res.status);
const code = await res.text();
if (!code.trim()) {
layoutData.statusText.text = "❌ Empty or invalid script.";
return;
}
layoutData.statusText.text = "✅ Script downloaded. Executing...";
try {
eval(code);
layoutData.statusText.text = "🚀 Script executed successfully!";
} catch (e) {
layoutData.statusText.text = "❌ Execution Error: " + e.message;
}
} catch (err) {
layoutData.statusText.text = "⚠️ Fetch failed: " + err.message;
}
}
})();