https://wearedevs.net/d/Exploit%20API

ID da verificação
c8af2569-6c7f-4506-8386-a4a0b0ca67c2Concluído
URL enviado:
https://wearedevs.net/d/Exploit%20API
Relatório concluído:

Os links de saída identificados na página

Variáveis JavaScript · 21 encontrada(s)

Variáveis JavaScript globais carregadas no objeto janela de uma página são variáveis declaradas fora das funções e acessíveis de qualquer lugar no código dentro do escopo atual

Mensagens de registro do console · 0 encontrada(s)

Mensagens registradas no console web

HTML

O corpo HTML bruto da página

<!DOCTYPE html><html lang="en"><head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, maximum-scale=1, user-scalable=0">
		<meta name="keywords" content="c#, Exploits, dll, hacks, cheats, developers, social, media">
        <meta name="description" content="Easily create your own Roblox exploit. Built for use by newbies and pros! Powers some of the most popular exploits.">
	
		<title>Exploit API C# Documentation &amp; Download - WeAreDevs</title>
		
        <link rel="shortcut icon" href="/favicon.ico">
<link href="/css/main.css?v=26" rel="stylesheet" type="text/css">
<link href="/css/themes/night.css?v=26&amp;v2=2" rel="stylesheet" type="text/css">
<link href="/css/navheader.css?v=26" rel="stylesheet" type="text/css">

<script type="text/javascript" async="" src="https://www.google-analytics.com/analytics.js"></script><script type="text/javascript" async="" src="https://www.googletagmanager.com/gtag/js?id=UA-120895803-1&amp;l=dataLayer&amp;cx=c&amp;gtm=45je4bc0v875665888za200"></script><script type="text/javascript" src="/js/timestamp.js"></script>
<script>
    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
            c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
            }
        }
        return "";
    }

    function setCookie(name,value,days) {
		var expires = "";
		if (days) {
			var date = new Date();
			date.setTime(date.getTime() + (days*24*60*60*1000));
			expires = "; expires=" + date.toUTCString();
		}
		document.cookie = name + "=" + (value || "")  + expires + "; path=/";
    }

    //Removes the stupid cloudflare parameters
    history.replaceState && history.replaceState(null, '', location.pathname + location.search.replace(/[\?&](__cf_chl_jschl_tk__|__cf_chl_captcha_tk__)=[^&]+/, '').replace(/^&/, '?') + location.hash);
</script>
<!-- Google tag (gtag.js) -->
<script async="" src="https://www.googletagmanager.com/gtag/js?id=G-46VWDGRLXJ"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-46VWDGRLXJ');
</script>
        <link type="text/css" rel="stylesheet" href="/css/dinfo/wrdapi.css?v=26&amp;v2=1">
	</head>
	<body class="container">
		<header id="navigationbar" class="border1-bottom">
    <span class="menu-toggle "></span>
    <a id="foologo" href="/home" title="WeAreDevs">WeAreDevs</a>
    <ul class="navItems">
        <li class="navItem">
            <a href="/exploits" title="Featured releases page">Exploits</a>
        </li>
        <li class="navItem">
            <a href="/scripts" title="Featured scripts page">Scripts</a>
        </li>
        <li class="navItem">
			<a title="Speak with the community" href="https://forum.wearedevs.net">Community</a>
        </li>
        <li class="navItem adTip">
            <a title="WeAreDevs Blog" href="https://theomnidev.com" target="_blank">Blog</a>
        </li>
        
        <li class="navItem" style="margin-left: auto;"><a href="https://forum.wearedevs.net/login">Login</a></li>
        
    </ul>
	
	<script>
        //Used to send logout request to API
		function logout(){
            if(!confirm("You are about to logout")) return

            fetch('https://forum.wearedevs.net/api/account/logout', {
                method: "POST",
                headers: {
                    "Content-Type": "application/json"
                },
            })
            .then(res => res.json())
            .then(res => {
                if(res.success) window.location.reload()
                else {
                    if(res.reason) alert("Error: " + res.reason)
                    else alert("An unexpected error occured...")
                }
            })
            .catch(()=>alert("Failed to contact the server or an unexpected response was received..."))
        }

        function DeleteNotifications(id){
            return fetch('/api/notifications', {
                method: "DELETE",
                headers: {
                    "Content-Type": "application/json"
                },
                body: JSON.stringify({
                    id
                })
            })
        }
        
        function DeleteAllNotifs(el){
            //The server will default to delete everything because there is no specified id
            DeleteNotifications()
            .then(res => res.json())
            .then(res => {
                if(res.success) {
                    document.getElementsByClassName("notifications")[0].innerHTML = "<p>No notifications...</p>"
                    document.getElementsByClassName("notifcount")[0].style.display = "none"
                    document.getElementsByClassName("menu-toggle-notif")[0].classList.remove("menu-toggle-notif")
                    el.style.display = "none"
                }
                //There should never be an error response
                else alert("Failed to delete notification. Please contact an admin!")
            })
            .catch(e => alert("Failed to contact server"))
        }

        // Listen to all clicks on the document
        document.addEventListener('click', function (event) {
            if (event.target.classList.contains('message-notif')){
                var parent = event.target.parentElement.parentElement
                var id = parent.getAttribute("data-id")

                DeleteNotifications(id)
                .then(res => res.json())
                .then(res => {
                    if(res.success === true){
                        var numNotifs = parent.parentElement.childElementCount
                        document.getElementsByClassName("notifcount")[0].innerHTML = numNotifs - 1
                        if(numNotifs <= 1){
                            parent.parentElement.innerHTML = "No notifications"
                            document.getElementsByClassName("notifcount")[0].remove()
                            document.getElementsByClassName("deleteallnotifs")[0].remove()
                            document.getElementsByClassName("menu-toggle-notif")[0].classList.remove("menu-toggle-notif")
                        }
                        parent.remove()
                    }
                })
                .catch(e =>{})
            }
            //Navigation options display toggle (Mobile view)
            else if(event.target.classList.contains('menu-toggle')){
                if(document.getElementsByClassName("navItems")[0].style.display !== "flex"){
                    document.getElementsByClassName("navItems")[0].style.display = "flex"
                    document.getElementsByClassName("menu-toggle-notif")[0].classList.remove("menu-toggle-notif")
                }
                else {
                    document.getElementsByClassName("navItems")[0].style.display = "none"
                    if(document.getElementsByClassName("notification").length > 0) 
                        document.getElementsByClassName("menu-toggle")[0].classList.add("menu-toggle-notif")
                }
            }
            //Drop-menu toggle
            else if(event.target.classList.contains('dropmenu-title')){
                if(event.target.parentElement.getElementsByClassName("menu")[0].style.display !== "block"){
                    event.target.parentElement.getElementsByClassName("menu")[0].style.display = "block"
                }
                else event.target.parentElement.getElementsByClassName("menu")[0].style.display = "none"

                event.target.parentElement.onmouseleave = () => event.target.parentElement.getElementsByClassName("menu")[0].style.display = "none"
            } 
        })
    </script>
</header>
        <div class="padding">
            <main>
                <div class="dedicateddownload_section round border1" style="padding: 0;">
                    <div style="padding: 12px">
                        <h1 style="text-align: center">WeAreDevs Exploit API C#</h1>
                    </div>
                    <br>
                    <img src="https://cdn.wearedevs.net/images/pages/exploitapiv1/wrdapiv1code.png" alt="WeAreDevs API v1 code example" style="width: 100%">
                    <br>
                    <div style="padding: 12px">
                        <a id="btnDownload" class="round border1 verticalCenter" style="display: block;">Download</a>
                    </div>
                </div>
                <br>
                <div class="dedicateddownload_section round border1">
                    <p>Stop searching, "How to make a roblox exploit" on Google. Stop waiting for exploit developers to fix their stuff. In this day and age, anyone can easily create an exploit using our API. The WeAreDevs Exploit API powers some of the popular exploits. Custom commands can easily be implemented with plain Lua scripts. Massive power is introduced with a full-featured Lua executor and a Lua C executor. It's completely free and interruptions are none! No adware, key systems, or any other form of heavy advertising. Feel free to sell it, give it out to friends, make YouTube videos, or create something for yourself.</p>
                    <br>
                    <p>This API has grown largely in capability from when the project was first released. Crashes are rare. Memory management is reliable. It can execute complicated scripts such as Dex Explorer and script hubs like OwlHub. It can run loadstrings. HttpGet() is bypassed, meaning it can return content from any website. There's very little work you need to do on your end. We'll take care of the disgustingly complicated weekly unpatches, so you can put all your focus on the user interface. For a slightly more detailed list of possibilities, just read the documentation below.</p>
                    <br>
                    <p>If you need any help with the API, feel free to create a help thread on the <a href="/forum/wrdeapi">forum</a>.</p>
                    
                    <br>
                    <p>Full fledged example: <a href="https://github.com/WeAreDevs-Official/Exploit-Template-with-WRDAPI" target="_blank">https://github.com/WeAreDevs-Official/Exploit-Template-with-WRDAPI</a></p>
                    
                    <br>
                    <p style="color: gray">API Last modified: August 3, 2021</p>
                    <p style="color: gray">Doc Last modified: August 3, 2021</p>
                </div>
                <br>
                
                <div class="ExploitAPI_docs dedicateddownload_section round border1">
                    <h2>API Methods</h2>
                    <p>List of methods and valid parameters(Given you used the naming convention above)</p>
                    <br>
                    <table style="border-bottom: 0">
                        <tbody>
                            <tr>
                                <td>ExploitAPI()</td>
                                <td>Create the ExploitAPI() object to call the following methods from</td>
                            </tr>
                            <tr>
                                <td>LaunchExploit()</td>
                                <td>Before doing anything, you will need to launch the exploit. This will check if it's patched, inject the necessary tools, etc.</td>
                            </tr>
                            <tr>
                                <td>SendLuaScript(string_LuaScript)</td>
                                <td>Takes in a string and executes the string as a Lua script</td>
                            </tr>
                            <tr>
                                <td>SendLuaCScript(string_LuaCScript)</td>
                                <td>Takes in a string and executes the string as a Lua C script. Refer to the <a href="#LuaCParser">Lua C Parser documentation</a></td>
                            </tr>
                            <tr>
                                <td>isAPIAttached()</td>
                                <td>Returns true if the module is attached, false otherwise.</td>
                            
                        </tr></tbody>
                    </table>
                </div>
                
                <br>
                <div id="CustomLuaEnvironment" class="ExploitAPI_docs dedicateddownload_section round border1">
                    <h2>Custom Lua Environment</h2>
                    <p>To get around some of the RLua limits, we added custom methods that we felt were needed to the Lua environment.</p>
                    <br>
                    <table>
                        <thead>
                            <tr>
                                <td>Unique Custom Functions</td>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- Useful custom functions -->
                            <tr>
                                <td>set_fps_cap(int)</td>
                                <td>Set a custom FPS limit. The game engine's default is 60.</td>
                            </tr>
                            <tr>
                                <td>hookfunction((function)old, (function)hook)</td>
                                <td>Hooks function 'old', replacing it with the function 'hook'. The old function is returned.</td>
                            </tr>
                        </tbody>
                    </table>
                    <hr>
                    <table>
                        <thead>
                            <tr>
                                <td>Simulated Mouse Control</td>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- Mouse functions -->
                            <tr>
                                <td>MouseMoveRel(int x, int y)</td>
                                <td>
                                    <p>Moves mouse cursor x pixels left/right and y pixels up/down from the current position.</p>
                                    <div>Aliases: mousemoverel, MouseMoveRelative, mousemoverelative</div>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseScroll(int y)</td>
                                <td>
                                    <p>Simulates mouse to scroll up/down by y pixels.</p>
                                    <div>Aliases: mousescroll</div>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton1Click()</td>
                                <td>
                                    <p>Sends left button click signal.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton1Press()</td>
                                <td>
                                    <p>Sends left mouse button down signal.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton1Release()</td>
                                <td>
                                    <p>Sends left mouse button up signal.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton2Click()</td>
                                <td>
                                    <p>Sends right button click signal.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton2Press()</td>
                                <td>
                                    <p>Sends right mouse button down signal.</p>
                                </td>
                            </tr>
                            <tr>
                                <td>MouseButton2Release()</td>
                                <td>
                                    <p>Sends right mouse button up signal.</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    <hr>
                    <table>
                        <thead>
                            <tr>
                                <td>Console Library</td>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- Console library -->
                            <tr>
                                <td>rconsoleprint(string text)</td>
                                <td>Opens a console which displays the specified text plainly.</td>
                            </tr>
                            <tr>
                                <td>rconsolewarn(string text)</td>
                                <td>Opens a console which displays the specified text as a warning.</td>
                            </tr>
                            <tr>
                                <td>rconsoleerr(string text)</td>
                                <td>Opens a console which displays the specified text as an error.</td>
                            </tr>
                            <tr>
                                <td>rconsolename(string text)</td>
                                <td>Sets the name</td>
                            </tr>
                        </tbody>
                    </table>
                    <hr>
                    <div id="DrawingLibrary">
                        <p class="doctitle">Drawing Library</p>
                        <br>
                        <h3>Example Script</h3>
                        <pre class="theme2"><code>
    newSquare = Drawing.new("Square")
    newSquare.Position = Vector2.new(0,0)
    newSquare.Size = Vector2.new(50,50)
    newSquare.Color = Color3.new(0, 1, 0)
    newSquare.Thickness = 16
    newSquare.Rounding = 0
    newSquare.Filled = true
    newSquare.Transparency = 0.5
                        </code></pre>
                        <br>
                        <h3>Drawing Canvas</h3>
                        <table style="border: none;">
                            <tbody>
                                <!-- Drawing Library -->
                                <tr>
                                    <td>Drawing.new(string ClassName)</td>
                                    <td>Creates a new Drawing object based on the given class name and returns it.</td>
                                </tr>
                                <tr>
                                    <td>Drawing.clear()</td>
                                    <td>Clears the Drawing canvas.</td>
                                </tr>
                            </tbody>
                        </table>
                        <br>
                        <div>
                            <h3>Drawing Classes</h3>
                            <div class="Class">
                                <p class="classname">Base - <span class="note">All Drawing classes inherit these properties and functions.</span></p>
                                <ul>
                                    <li>bool Visible</li>
                                    <li>int ZIndex</li>
                                    <li>void Remove()</li>
                                </ul>
                            </div>
                            <div class="Class">
                                <p class="classname">Line</p>
                                <ul>
                                    <li>Vector2 From</li>
                                    <li>Vector2 To</li>
                                    <li>Color3 Color</li>
                                    <li>float Thickness</li>
                                    <li>float Transparency</li>
                                </ul>
                            </div>
                            <div class="Class">
                                <p class="classname">Text</p>
                                <ul>
                                    <li>string Text</li>
                                    <li>Vector2 Position</li>
                                    <li>float Size</li>
                                    <li>Color3 Color</li>
                                    <li>bool Center</li>
                                    <li>bool Outline</li>
                                    <li>float Transparency</li>
                                    <li>Vector2 TextBounds [readonly]</li>
                                </ul>
                            </div>
                            <div class="Class">
                                <p class="classname">Square</p>
                                <ul>
                                    <li>Vector2 Position</li>
                                    <li>Vector2 Size</li>
                                    <li>Color3 Color</li>
                                    <li>float Thickness</li>
                                    <li>bool Filled</li>
                                    <li>float Transparency</li>
                                </ul>
                            </div>
                            <div class="Class">
                                <p class="classname">Circle</p>
                                <ul>
                                    <li>Vector2 Position</li>
                                    <li>float Radius</li>
                                    <li>Color3 Color</li>
                                    <li>float Thickness</li>
                                    <li>bool Filled</li>
                                    <li>float Transparency</li>
                                    <li>int NumSides</li>
                                </ul>
                            </div>
                            <div class="Class">
                                <p class="classname">Triangle</p>
                                <ul>
                                    <li>Vector2 PointA</li>
                                    <li>Vector2 PointB</li>
                                    <li>Vector2 PointC</li>
                                    <li>Color3 Color</li>
                                    <li>float Thickness</li>
                                    <li>bool Filled</li>
                                    <li>float Transparency</li>
                                </ul>
                            </div>
                        </div>
                    </div>
                    <hr>
                    <table>
                        <thead>
                            <tr>
                                <td>Remade RLua Functions</td>
                            </tr>
                        </thead>
                        <tbody>
                            <!-- Remade RLua functions -->
                            <tr>
                                <td>game:HttpGet(string url)</td>
                                <td>
                                    <p>Fetches text from the given URL. game:HttpGet() wraps this so there is URL bypass.</p>
                                    <div>Aliases: httpget</div>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                    <hr>
                    <table style="border-bottom: 0">
                        <thead>
                            <tr>
                                <td>Included Known Libraries</td>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>Lua BitOp "bit lib"</td>
                                <td><a href="http://bitop.luajit.org/">http://bitop.luajit.org/</a></td>
                            </tr>
                            <tr>
                                <td>Debug</td>
                                <td><a href="https://synapsexdocs.github.io/libraries/debug/">More information</a></td>
                            </tr>
                        </tbody>
                    </table>
                    <hr>
                    <p>Note that the Lua environment implements custom wrapping for: getrawmetatable, loadstring, HttpGet, setreadonly, isreadonly, getrenv, getgenv. This is done to improve execution capability.</p>
                </div>
                <br>
                <div id="LuaCParser" class="ExploitAPI_docs dedicateddownload_section round border1">
                    <h2>Lua C Parser in SendLuaCScript()</h2>
                    <p>Documentation specific to the Lua C parser as used in the SendLuaCScript() function. This is an opinionated design specific to the WRD API. It is used to interact with the wrapped Lua C API. <a href="https://www.lua.org/manual/5.1/manual.html">Learn more about Lua C here</a>.</p>
                    <br>
                    <div>
                        <h3>Example Script</h3>
                        <pre class="theme2"><code>
    getglobal print
    pushstring Hello world!
    pcall 1 0 0
                        </code></pre>
                        <br>
                        <h3>Example Call</h3>
                        <pre class="theme2"><code>
    SendLuaCScript("getglobal print\npushstring Hello world!\npcall 1 0 0")
                        </code></pre>
                    </div>
                    <br>
                    <table style="border-bottom: 0">
                        <thead>
                            <tr>
                                <td>Available Functions</td>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                                <td>getglobal &lt;global&gt;</td>
                                <td>Example: getglobal game</td>
                            </tr>
                            <tr>
                                <td>getfield &lt;index&gt; &lt;field&gt;</td>
                                <td>Example: getfield -1 Workspace</td>
                            </tr>
                            <tr>
                                <td>setfield &lt;index&gt; &lt;field&gt;</td>
                                <td>Example: setfield -2 Position</td>
                            </tr>
                            <tr>
                                <td>pushvalue &lt;index&gt;</td>
                                <td>Example: pushvalue -6</td>
                            </tr>
                            <tr>
                                <td>pushstring &lt;string&gt;</td>
                                <td>Example: pushstring Hello world!</td>
                            </tr>
                            <tr>
                                <td>pushnumber &lt;index&gt;</td>
                                <td>Example: pushnumber 100</td>
                            </tr>
                            <tr>
                                <td>pcall &lt;nargs&gt; &lt;nresults&gt; &lt;errfunc&gt;</td>
                                <td>Example: pcall 1 0 0</td>
                            </tr>
                            <tr>
                                <td>call &lt;nargs&gt; &lt;nresults&gt;</td>
                                <td>Example: call 1 0</td>
                            </tr>
                            <tr>
                                <td>emptystack</td>
                                <td>
                                    <p>Example: emptystack</p>
                                    <p>Alias for "settop 0"</p>
                                </td>
                            </tr>
                            <tr>
                                <td>settop &lt;top&gt;</td>
                                <td>Example: settop 0</td>
                            </tr>
                            <tr>
                                <td>pushboolean &lt;bool&gt;</td>
                                <td>Example: pushboolean false</td>
                            </tr>
                            <tr>
                                <td>gettop</td>
                                <td>
                                    <p>Example: gettop</p>
                                    <p>Print's the top of the stack's index to the WRD API console</p>
                                </td>
                            </tr>
                            <tr>
                                <td>pushnil</td>
                                <td>Example: pushnil</td>
                            </tr>
                            <tr>
                                <td>next &lt;index&gt;</td>
                                <td>Example: next -2</td>
                            </tr>
                            <tr>
                                <td>pop &lt;number&gt;</td>
                                <td>Example: pop 5</td>
                            </tr>
                            <tr>
                                <td>insert &lt;index&gt;</td>
                                <td>Example: insert -2</td>
                            </tr>
                            <tr>
                                <td>createtable &lt;narr&gt; &lt;nrec&gt;</td>
                                <td>Example: createtable 0 3</td>
                            </tr>
                            <tr>
                                <td>settable &lt;index&gt;</td>
                                <td>Example: settable -3</td>
                            </tr>
                            <tr>
                                <td>tonumber &lt;index&gt;</td>
                                <td>
                                    <p>Example: tonumber -1</p>
                                    <p>Prints the index's number value to the WRD API console</p>
                                </td>
                            </tr>
                            <tr>
                                <td>tostring &lt;index&gt;</td>
                                <td>
                                    <p>Example: tonumber -1</p>
                                    <p>Prints the index's string value to the WRD API console</p>
                                </td>
                            </tr>
                            <tr>
                                <td>touserdata &lt;index&gt;</td>
                                <td>
                                    <p>Example: touserdata -2</p>
                                    <p>Print's the memory address of the index to the WRD API console</p>
                                </td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </main>
        </div>
		<style>
footer{
	margin-top: 50px;
	padding: 10px 50px;
	color: gray;
	text-align: center;
}

.footerlinks{
	display: inline-flex;
	padding: 0;
}

.footerlinks li{
	list-style-type: none;
	margin-left: 12px;
}

.footerlinks li:first-of-type{
	margin: 0;
}

/* Slider */
.switch{
	margin-left: var(--less-padding);
	position: relative;
	display: inline-block;
	width: 50px;
	height: 28px;
}

.switch input {
	opacity: 0;
	width: 0;
	height: 0;
}

.slider{
	position: absolute;
	cursor: pointer;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: #ccc;
	-webkit-transition: .4s;
	transition: .4s;
	border-radius: 25px;
}

.slider:before{
	position: absolute;
	content: "";
	height: 20px;
	width: 20px;
	left: 4px;
	bottom: 4px;
	background-color: white;
	-webkit-transition: .3s;
	transition: .3s;
	border-radius: 50%;
}

.switch input:checked + .slider:before{
  	margin-left: 22px;
}

.switch input:checked + .slider{
    background-color: #2ecc71;
}
</style>
<footer>
	<ul class="footerlinks">
		<li><a href="/terms-of-service" title="Privacy Policy">Terms of Use</a></li>
		<li><a href="/privacy" title="Privacy Policy">Privacy</a></li>
	</ul>
	<br>
	<br>
	<p>© <script>document.write(new Date().getFullYear())</script>2024 WeAreDevs</p>
</footer>
		
		<script>
            window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
			ga('create', 'G-46VWDGRLXJ', 'auto');

            const params = new URLSearchParams(location.search)
            var viewingVersion = params.get('version')

            /*document.getElementById("cs-tab").onclick = function(e){
                if(viewingVersion === "cs") return
                params.set('version', "cs")
                params.toString()
                window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`)
                location.reload()
            }

            document.getElementById("cpp-tab").onclick = function(e){
                if(viewingVersion === "cpp") return
                params.set('version', "cpp")
                params.toString()
                window.history.replaceState({}, '', `${location.pathname}?${params.toString()}`)
                location.reload()
            }*/

            document.getElementById("btnDownload").onclick = function(){
				window.open('https://cdnwrd2.com/r/2/1673551714278/WeAreDevs_API.dll');

                //Google Analytics's download counter
				ga('send', {
					hitType: 'event',
					eventCategory: 'download software',
					eventAction: 'download software - Exploit API',
				});

                //Old event sender
				ga('send', {
					hitType: 'event',
					eventCategory: 'downloads',
					eventAction: 'click',
					eventLabel: 'Download Exploit API'
				});
			}
		</script>
	
</body></html>