Integrate Zynix Scripts directly into your app, hub, or executor. No authentication required. All endpoints return JSON unless noted otherwise.
https://zynixscripts.net
Returns all published scripts, newest first. Filter by category or free-text search.
| Param | Type | Description |
|---|---|---|
category | string | Filter by category (e.g. Combat, ESP) |
q | string | Search title or game name |
[
{
"id": 1,
"slug": "mm2-esp",
"title": "MM2 ESP",
"game_name": "Murder Mystery 2",
"category": "ESP",
"description": "See everyone through walls",
"views": 1337,
"updated_at": "2026-04-20T14:30:00",
"thumbnail_url": "https://i.imgur.com/example.png"
}
]Returns a single published script including its Lua source code.
{
"id": 1,
"slug": "mm2-esp",
"title": "MM2 ESP",
"game_name": "Murder Mystery 2",
"category": "ESP",
"description": "See everyone through walls",
"views": 1337,
"updated_at": "2026-04-20T14:30:00",
"thumbnail_url": "https://i.imgur.com/example.png",
"code": "-- Lua code here"
}Returns all distinct categories that have at least one published script.
["Combat", "ESP", "Farm", "Fun", "Hub", "Movement", "UI", "Utility"]
Returns the raw Lua script as text/plain. Perfect for loadstrings.
loadstring(game:HttpGet("https://zynixscripts.net/raw/mm2-esp"))()/api/scripts and /api/scripts/<slug> now return thumbnail_url.null or an empty string.
use reqwest;
use serde::Deserialize;
#[derive(Deserialize)]
struct ZynixScript {
id: i64,
slug: String,
title: String,
#[serde(default)]
game_name: String,
#[serde(default)]
category: String,
description: Option<String>,
#[serde(default)]
views: i64,
updated_at: String,
#[serde(default)]
thumbnail_url: Option<String>,
#[serde(default)]
code: String,
}
async fn fetch_scripts() -> Result<Vec<ZynixScript>, reqwest::Error> {
let client = reqwest::Client::builder()
.timeout(std::time::Duration::from_secs(10))
.build()?;
let scripts: Vec<ZynixScript> = client
.get("https://zynixscripts.net/api/scripts")
.query(&[("category", "Combat")])
.send()
.await?
.json()
.await?;
Ok(scripts)
}
async function getScripts(category = "") {
const url = new URL("https://zynixscripts.net/api/scripts");
if (category) url.searchParams.set("category", category);
const res = await fetch(url);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return await res.json(); // Array of scripts
}
async function getScript(slug) {
const res = await fetch(`https://zynixscripts.net/api/scripts/${slug}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return await res.json(); // Single script with code
}
// Raw loadstring
const loadstring = `loadstring(game:HttpGet("https://zynixscripts.net/raw/${slug}"))()`;
using System.Net.Http;
using System.Text.Json;
var client = new HttpClient { Timeout = TimeSpan.FromSeconds(10) };
// List scripts
var json = await client.GetStringAsync("https://zynixscripts.net/api/scripts?category=Combat");
var scripts = JsonSerializer.Deserialize<List<ZynixScript>>(json);
// Get single script
var scriptJson = await client.GetStringAsync($"https://zynixscripts.net/api/scripts/{slug}");
var script = JsonSerializer.Deserialize<ZynixScript>(scriptJson);
// Raw loadstring
var raw = await client.GetStringAsync($"https://zynixscripts.net/raw/{slug}");
public class ZynixScript
{
public long id { get; set; }
public string slug { get; set; }
public string title { get; set; }
public string game_name { get; set; }
public string category { get; set; }
public string description { get; set; }
public long views { get; set; }
public string updated_at { get; set; }
public string code { get; set; }
}
import requests
BASE = "https://zynixscripts.net"
# List scripts
r = requests.get(f"{BASE}/api/scripts", params={"category": "Combat"}, timeout=10)
r.raise_for_status()
scripts = r.json()
# Get single script
r = requests.get(f"{BASE}/api/scripts/mm2-esp", timeout=10)
script = r.json()
print(script["code"])
# Raw loadstring
raw = requests.get(f"{BASE}/raw/mm2-esp", timeout=10).text