AMXX Compiler Online

Compile AMXX plugins online for free. Paste or upload .sma source, choose AMXX 1.8 / 1.9 / 1.10, download the .amxx for your Counter-Strike 1.6 server - no AMX Mod X install on your PC.

Checking…

1 Configuration

2 Custom includes optional

Optional .inc files (ReAPI, etc.) sent to the compiler as-is.

Upload your .sma source or paste in the editor

Drop .sma here or

xcstrike_demo.sma
—
Output
Ready

                        
                    

Frequently asked questions

What is an online AMXX compiler and who is it for?

An online AMXX compiler turns AMX Mod X plugin source (.sma) into a binary (.amxx) that a Counter-Strike 1.6 server can load. XCSTRIKE runs official amxxpc in the browser so plugin authors and server admins do not need a local AMXX scripting folder, Linux 32-bit libraries, or a full AMX Mod X install on their PC. You paste or upload source, choose the AMXX branch your server actually runs, and download the plugin. It is meant for CS 1.6 / GoldSrc plugins, not SourceMod or CounterStrikeSharp.

Do I still need AMX Mod X installed on my computer?

No. Compilation happens on the XCSTRIKE server. You only need a modern browser. After you download the .amxx, that file still has to go on the game server: copy it into addons/amxmodx/plugins, add the filename to plugins.ini, and change the map or restart so AMXX loads it. Matching AMXX versions matters: a plugin built with 1.10 includes can fail on a 1.8.2 server, so pick the same branch as your dedicated server.

Which AMXX versions can I compile with, and how do I choose?

The tool exposes AMX Mod X 1.8.2, 1.8.3, 1.9, and 1.10. Use the version printed by "amxx version" in server console, or the folder name under addons/amxmodx. 1.10 is the usual choice for current CS 1.6 communities. Stay on 1.8.2 or 1.8.3 only if the server has never been upgraded and older plugins or includes expect that ABI. Custom natives from extra modules still need those modules installed on the game server; the compiler cannot add missing server-side modules for you.

Can I compile plugins that use extra .inc include files?

Yes. Attach up to eight custom .inc files (64 KB each) next to your main .sma. That covers VIP includes, extra stocks, and third-party API headers that are not in the stock AMXX package. Max source size is 512 KB. If an include calls a native from a module that is not on the server, the plugin may compile and still fail at runtime - install the matching AMXX module on the dedicated server as well. Builds are rate-limited to 30 per hour per IP.

Where do I put the compiled .amxx and how long is the download valid?

Download the .amxx immediately and save it on your PC. Cloud downloads expire after one hour. On the CS 1.6 server, place the file in addons/amxmodx/plugins, enable it in addons/amxmodx/configs/plugins.ini (or plugins-*.ini), then changelevel. If AMXX says the plugin failed to load, check the compile log for missing includes and confirm the AMXX version dropdown matched the server. The compiler is free; there is no account required to build.

Common AMXX compile errors and how to fix them

amxxpc prints errors as file(line) : error NNN: message. The line number points at where the compiler noticed the problem, which is often one line after the real mistake. These are the ones that come up most on CS 1.6 plugins.

Fatal 100

fatal error 100: cannot read from file: "reapi"

An #include could not be found. Either the .inc is not part of stock AMX Mod X (attach it with Custom Includes above), the name is misspelled, or it belongs to a newer AMXX branch than the one selected. Pick the same AMXX version your server runs.

Error 017

error 017: undefined symbol "cs_set_user_money"

A variable, constant or native is used but never declared. Check the spelling and case (Pawn is case-sensitive), make sure the variable is declared in the right scope, and that the include which defines the native is present. Natives such as cs_set_user_money need #include <cstrike>; fun natives need #include <fun>.

Error 001

error 001: expected token: ";", but found "return"

Usually a missing semicolon or closing bracket on the line above the one reported. Look at the previous statement first.

Error 010

error 010: invalid function or declaration

Code is sitting outside of a function, or a closing brace earlier in the file is missing or doubled, so everything after it is parsed at the wrong level. Check that every { has its }.

Error 021

error 021: symbol already defined: "plugin_init"

Two functions or global variables share the same name, or the same code was pasted twice. It also happens when a custom include defines something that a stock include already defines.

Error 025

error 025: function heading differs from prototype

A forward or public function is declared with different parameters than its definition, or a forward you implement (for example client_putinserver) has the wrong signature for the selected AMXX version.

Error 035

error 035: argument type mismatch (argument N)

You passed the wrong kind of value to a native, for example a string where a number is expected, or a plain integer where an array is required. Check the native signature in the include file.

Error 088

error 088: number of arguments does not match definition

A function is called with too many or too few arguments. Natives sometimes gain or lose parameters between AMXX 1.8.2 and 1.10, so code written for one branch can fail on another.

Server

Plugin file open error (plugin "admin_vip.amxx")

Not a compile error: AMXX prints this in the server console or amxx log when a plugin listed in plugins.ini is not found in addons/amxmodx/plugins. Check that the .amxx was uploaded to that folder and that the name in plugins.ini matches the file exactly, including the .amxx extension and letter case on Linux servers.

Warning 213

warning 213: tag mismatch

A Float value is mixed with an integer (or another tag) without conversion. Use float() to turn an integer into a Float and floatround() to go the other way. It is only a warning, but it often means the plugin will behave wrongly in game.

Warning 217

warning 217: loose indentation

Tabs and spaces are mixed, so the compiler thinks the indentation is inconsistent. Harmless for the .amxx, but you can silence it by using only tabs or only spaces, or by adding #pragma tabsize 0 at the top.