[{"data":1,"prerenderedAt":1033},["ShallowReactive",2],{"navigation-docs_en":3,"\u002Fdocs\u002Fgetting-started\u002Fdocker":140,"\u002Fdocs\u002Fgetting-started\u002Fdocker-surround":1027,"\u002Fdocs\u002Fgetting-started\u002Fdocker-current":1032},[4,35,61,91,109,123,133],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":34},"Getting started","i-lucide-rocket","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[10,14,18,22,26,30],{"title":11,"path":12,"stem":13},"Introduction","\u002Fdocs\u002Fgetting-started\u002Fintroduction","docs\u002F1.getting-started\u002F01.introduction",{"title":15,"path":16,"stem":17},"Quick start","\u002Fdocs\u002Fgetting-started\u002Fquick-start","docs\u002F1.getting-started\u002F02.quick-start",{"title":19,"path":20,"stem":21},"CLI","\u002Fdocs\u002Fgetting-started\u002Fcli","docs\u002F1.getting-started\u002F03.cli",{"title":23,"path":24,"stem":25},"Installing on a server","\u002Fdocs\u002Fgetting-started\u002Finstall","docs\u002F1.getting-started\u002F04.install",{"title":27,"path":28,"stem":29},"A server in Docker","\u002Fdocs\u002Fgetting-started\u002Fdocker","docs\u002F1.getting-started\u002F05.docker",{"title":31,"path":32,"stem":33},"Limitations","\u002Fdocs\u002Fgetting-started\u002Flimitations","docs\u002F1.getting-started\u002F06.limitations",false,{"title":36,"icon":37,"path":38,"stem":39,"children":40,"page":34},"Core","i-lucide-zap","\u002Fdocs\u002Fcore","docs\u002F2.core",[41,45,49,53,57],{"title":42,"path":43,"stem":44},"Plugin","\u002Fdocs\u002Fcore\u002Fplugin","docs\u002F2.core\u002F01.plugin",{"title":46,"path":47,"stem":48},"Game events","\u002Fdocs\u002Fcore\u002Fhooks","docs\u002F2.core\u002F02.hooks",{"title":50,"path":51,"stem":52},"Forwards","\u002Fdocs\u002Fcore\u002Fforwards","docs\u002F2.core\u002F03.forwards",{"title":54,"path":55,"stem":56},"Async and promises","\u002Fdocs\u002Fcore\u002Fasync","docs\u002F2.core\u002F04.async",{"title":58,"path":59,"stem":60},"Performance","\u002Fdocs\u002Fcore\u002Fperformance","docs\u002F2.core\u002F05.performance",{"title":62,"icon":63,"path":64,"stem":65,"children":66,"page":34},"Game","i-lucide-gamepad-2","\u002Fdocs\u002Fgame","docs\u002F3.game",[67,71,75,79,83,87],{"title":68,"path":69,"stem":70},"Players and entities","\u002Fdocs\u002Fgame\u002Fentities","docs\u002F3.game\u002F01.entities",{"title":72,"path":73,"stem":74},"Players: actions","\u002Fdocs\u002Fgame\u002Fplayers","docs\u002F3.game\u002F02.players",{"title":76,"path":77,"stem":78},"Effects","\u002Fdocs\u002Fgame\u002Feffects","docs\u002F3.game\u002F03.effects",{"title":80,"path":81,"stem":82},"Flags","\u002Fdocs\u002Fgame\u002Fflags","docs\u002F3.game\u002F04.flags",{"title":84,"path":85,"stem":86},"Cvars","\u002Fdocs\u002Fgame\u002Fcvars","docs\u002F3.game\u002F05.cvars",{"title":88,"path":89,"stem":90},"Messages","\u002Fdocs\u002Fgame\u002Fmessages","docs\u002F3.game\u002F06.messages",{"title":92,"icon":93,"path":94,"stem":95,"children":96,"page":34},"Data","i-lucide-database","\u002Fdocs\u002Fdata","docs\u002F4.data",[97,101,105],{"title":98,"path":99,"stem":100},"Storage","\u002Fdocs\u002Fdata\u002Fstorage","docs\u002F4.data\u002F01.storage",{"title":102,"path":103,"stem":104},"Files","\u002Fdocs\u002Fdata\u002Ffs","docs\u002F4.data\u002F02.fs",{"title":106,"path":107,"stem":108},"HTTP","\u002Fdocs\u002Fdata\u002Fhttp","docs\u002F4.data\u002F03.http",{"title":110,"icon":111,"path":112,"stem":113,"children":114,"page":34},"Modules","i-lucide-package","\u002Fdocs\u002Fmodules","docs\u002F5.modules",[115,119],{"title":116,"path":117,"stem":118},"Shared modules","\u002Fdocs\u002Fmodules\u002Fshared-modules","docs\u002F5.modules\u002F01.shared-modules",{"title":120,"path":121,"stem":122},"Creating a module","\u002Fdocs\u002Fmodules\u002Fcreating-a-module","docs\u002F5.modules\u002F02.creating-a-module",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":34},"Pawn","i-lucide-plug","\u002Fdocs\u002Fpawn","docs\u002F6.pawn",[129],{"title":130,"path":131,"stem":132},"Natives","\u002Fdocs\u002Fpawn\u002Fnatives","docs\u002F6.pawn\u002F01.natives",{"title":134,"path":135,"stem":136,"children":137,"icon":139},"Testing","\u002Fdocs\u002Ftesting","docs\u002F7.testing\u002F01.index",[138],{"title":134,"path":135,"stem":136},"i-lucide-flask-conical",{"id":141,"title":27,"body":142,"description":1021,"extension":1022,"meta":1023,"navigation":1024,"path":28,"seo":1025,"stem":29,"__hash__":1026},"docs_en\u002Fdocs\u002F1.getting-started\u002F05.docker.md",{"type":143,"value":144,"toc":1012},"minimark",[145,153,182,214,219,226,301,322,326,397,415,423,432,443,447,453,572,582,587,601,607,635,638,644,651,682,686,800,806,854,857,903,909,913,1008],[146,147,148,152],"p",{},[149,150,151],"code",{},"ghcr.io\u002Famxts\u002Fserver"," is a Docker image of a Linux Counter-Strike 1.6\nserver that runs amxts: HLDS with ReHLDS, ReGameDLL, Metamod-R, AMX Mod X 1.10\nand ReAPI, the amxts module and its compiler. Your project is mounted into\nit, and the server runs your plugins with your configs and files - on\nWindows, macOS or Linux, with nothing to install but Docker.",[146,154,155,156,159,160,163,164,166,167,170,171,174,175,178,179,181],{},"Every amxts release has its image: ",[149,157,158],{},"ghcr.io\u002Famxts\u002Fserver:0.2.0"," is the\nserver of amxts ",[149,161,162],{},"0.2.0",", and ",[149,165,151],{}," (the tag ",[149,168,169],{},"latest",") is the\nnewest one. ",[149,172,173],{},"docker run"," downloads it the first time; ",[149,176,177],{},"docker pull ghcr.io\u002Famxts\u002Fserver"," takes a newer ",[149,180,169],{},".",[183,184,185],"warning",{},[146,186,187,191,194,195,198,199,202,203,206,207,210,211,213],{},[188,189,190],"strong",{},"One version with the project",[192,193],"br",{},"\nThe server loads only plugins compiled by the same release of amxts: run\nthe image of your project's version (",[149,196,197],{},"@amxts\u002Fcore"," in its ",[149,200,201],{},"package.json",").\nA plugin built by another release is refused, and the console says which one\nto build again: ",[149,204,205],{},"[amxts] myplugin.aot was built for amxts 0.1.0, this is 0.2.0 - build it again",". ",[149,208,209],{},"npx amxts dev --docker"," prints the ",[149,212,173],{}," line with\nyour project's version.",[215,216,218],"h2",{"id":217},"run-it","Run it",[146,220,221,222,225],{},"Build the plugins for Linux, then start the server with the project mounted\nat ",[149,223,224],{},"\u002Fproject",":",[227,228,233],"pre",{"className":229,"code":230,"language":231,"meta":232,"style":232},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx amxts build --os linux\ndocker run --rm -it -p 27015:27015\u002Fudp -v \"${PWD}:\u002Fproject\" ghcr.io\u002Famxts\u002Fserver\n","sh","",[149,234,235,257],{"__ignoreMap":232},[236,237,240,244,248,251,254],"span",{"class":238,"line":239},"line",1,[236,241,243],{"class":242},"sBMFI","npx",[236,245,247],{"class":246},"sfazB"," amxts",[236,249,250],{"class":246}," build",[236,252,253],{"class":246}," --os",[236,255,256],{"class":246}," linux\n",[236,258,260,263,266,269,272,275,278,281,285,289,292,295,298],{"class":238,"line":259},2,[236,261,262],{"class":242},"docker",[236,264,265],{"class":246}," run",[236,267,268],{"class":246}," --rm",[236,270,271],{"class":246}," -it",[236,273,274],{"class":246}," -p",[236,276,277],{"class":246}," 27015:27015\u002Fudp",[236,279,280],{"class":246}," -v",[236,282,284],{"class":283},"sMK4o"," \"${",[236,286,288],{"class":287},"sTEyZ","PWD",[236,290,291],{"class":283},"}",[236,293,294],{"class":246},":\u002Fproject",[236,296,297],{"class":283},"\"",[236,299,300],{"class":246}," ghcr.io\u002Famxts\u002Fserver\n",[146,302,303,304,307,308,311,312,314,315,318,319,181],{},"On Windows the folder can be written as it is: ",[149,305,306],{},"-v D:\\my-server:\u002Fproject",".\nThe console is in the terminal, and ",[149,309,310],{},"-it"," lets you type into it. Without\n",[149,313,310],{}," the server runs the same, and ",[149,316,317],{},"docker logs"," shows its console.\nConnect from the game with ",[149,320,321],{},"connect 127.0.0.1:27015",[215,323,325],{"id":324},"while-you-work","While you work",[327,328,330,348,364,380],"code-group",{"sync":329},"pm",[227,331,334],{"className":229,"code":332,"filename":333,"language":231,"meta":232,"style":232},"npx amxts dev --docker\n","npm",[149,335,336],{"__ignoreMap":232},[236,337,338,340,342,345],{"class":238,"line":239},[236,339,243],{"class":242},[236,341,247],{"class":246},[236,343,344],{"class":246}," dev",[236,346,347],{"class":246}," --docker\n",[227,349,352],{"className":229,"code":350,"filename":351,"language":231,"meta":232,"style":232},"pnpm amxts dev --docker\n","pnpm",[149,353,354],{"__ignoreMap":232},[236,355,356,358,360,362],{"class":238,"line":239},[236,357,351],{"class":242},[236,359,247],{"class":246},[236,361,344],{"class":246},[236,363,347],{"class":246},[227,365,368],{"className":229,"code":366,"filename":367,"language":231,"meta":232,"style":232},"yarn amxts dev --docker\n","yarn",[149,369,370],{"__ignoreMap":232},[236,371,372,374,376,378],{"class":238,"line":239},[236,373,367],{"class":242},[236,375,247],{"class":246},[236,377,344],{"class":246},[236,379,347],{"class":246},[227,381,384],{"className":229,"code":382,"filename":383,"language":231,"meta":232,"style":232},"bunx amxts dev --docker\n","bun",[149,385,386],{"__ignoreMap":232},[236,387,388,391,393,395],{"class":238,"line":239},[236,389,390],{"class":242},"bunx",[236,392,247],{"class":246},[236,394,344],{"class":246},[236,396,347],{"class":246},[146,398,399,402,403,406,407,410,411,414],{},[149,400,401],{},"dev --docker"," is ",[149,404,405],{},"dev"," for this server. It builds the plugins for Linux into\n",[149,408,409],{},"dist\u002F"," and again on every save; the running server sees the new files and\nreloads them by itself. Nothing is copied anywhere, and ",[149,412,413],{},"AMXTS_SERVER"," is not\nused. The server's answer shows up under the build:",[227,416,421],{"className":417,"code":419,"language":420},[418],"language-text","✔ 14:02:11 plugins\u002Fmy-plugin.ts changed: rebuilt my-plugin into dist (4.2s)\n  | [amxts] my-plugin.aot changed on disk\n  | [amxts] reloading\n  | [amxts] loaded my-plugin.aot\n","text",[149,422,419],{"__ignoreMap":232},[146,424,425,426,428,429,431],{},"The command finds the server by its mount: a running container with this\nproject at ",[149,427,224],{},". When there is none, it says so and shows the\n",[149,430,173],{}," line to start one. It never starts or stops a server itself.",[146,433,434,435,438,439,442],{},"A plugin added to the project goes into ",[149,436,437],{},"plugins.ini"," with the build and\nloads with ",[149,440,441],{},"amxts_reload"," in the server's console, or with the next map.",[215,444,446],{"id":445},"what-it-takes-from-the-project","What it takes from the project",[146,448,449,450,452],{},"At every start the server takes these from ",[149,451,224],{},", whichever exist:",[454,455,456,469],"table",{},[457,458,459],"thead",{},[460,461,462,466],"tr",{},[463,464,465],"th",{},"from the project",[463,467,468],{},"on the server",[470,471,472,485,506,521,549,562],"tbody",{},[460,473,474,479],{},[475,476,477],"td",{},[149,478,409],{},[475,480,481,482,484],{},"the plugins, and ",[149,483,437],{}," as the list of what runs",[460,486,487,492],{},[475,488,489],{},[149,490,491],{},"configs\u002F",[475,493,494,495,498,499,502,503],{},"over ",[149,496,497],{},"addons\u002Famxmodx\u002Fconfigs\u002F"," - ",[149,500,501],{},"configs\u002Fmyplugin\u002Fsettings.ini",", ",[149,504,505],{},"configs\u002Fusers.ini",[460,507,508,513],{},[475,509,510],{},[149,511,512],{},"data\u002F",[475,514,494,515,498,518],{},[149,516,517],{},"addons\u002Famxmodx\u002Fdata\u002F",[149,519,520],{},"data\u002Flang\u002Fmyplugin.txt",[460,522,523,546],{},[475,524,525,502,528,502,531,502,534,502,537,502,540,502,543],{},[149,526,527],{},"maps\u002F",[149,529,530],{},"models\u002F",[149,532,533],{},"sound\u002F",[149,535,536],{},"sprites\u002F",[149,538,539],{},"gfx\u002F",[149,541,542],{},"overviews\u002F",[149,544,545],{},"resource\u002F",[475,547,548],{},"over the game folder's own",[460,550,551,556],{},[475,552,553],{},[149,554,555],{},"addons\u002F",[475,557,558,559,561],{},"over the game folder's ",[149,560,555],{}," - an AMX Mod X module, a Pawn plugin",[460,563,564,569],{},[475,565,566],{},[149,567,568],{},"motd.txt",[475,570,571],{},"the message of the day; without it, a player sees none",[146,573,574,575,577,578,581],{},"The plugins are read from ",[149,576,409],{}," where they are, so a new build reaches the\nrunning server at once. Everything else is copied into the server when it\nstarts: a change to a config, a sound or a map reaches it with a restart,\n",[149,579,580],{},"docker restart"," and the container's name. What the server writes - a config\na plugin saves, a log - stays in the container.",[583,584,586],"h3",{"id":585},"modules-and-pawn-plugins","Modules and Pawn plugins",[146,588,589,590,593,594,597,598,225],{},"The server has AMX Mod X's own modules and ReAPI. A module it does not have\ncomes with the project: the Linux build (",[149,591,592],{},"\u003Cname>_amxx_i386.so",") in\n",[149,595,596],{},"addons\u002Famxmodx\u002Fmodules\u002F",", and its name in ",[149,599,600],{},"configs\u002Fmodules.ini",[227,602,605],{"className":603,"code":604,"language":420},[418],"my-server\u002F\n├── addons\u002Famxmodx\u002Fmodules\u002Fresemiclip_amxx_i386.so\n└── configs\u002Fmodules.ini          resemiclip\n",[149,606,604],{"__ignoreMap":232},[146,608,609,610,613,614,617,618,621,622,624,625,621,628,631,632,634],{},"A Pawn plugin goes into ",[149,611,612],{},"addons\u002Famxmodx\u002Fplugins\u002F",", and its name into\n",[149,615,616],{},"configs\u002Fplugins.ini",". A project's ",[149,619,620],{},"modules.ini"," and ",[149,623,437],{}," take the\nplace of the server's; ",[149,626,627],{},"reapi",[149,629,630],{},"amxts_amxx"," are added back at the end\nof ",[149,633,620],{},", as the server needs them.",[146,636,637],{},"A plugin that calls a native of a module the server does not have gets an\nerror on the call, and the console names the native:",[227,639,642],{"className":640,"code":641,"language":420},[418],"[amxts] resemiclip_take_control was called, and it is not on this server: the module or plugin that provides it is not loaded\n",[149,643,641],{"__ignoreMap":232},[146,645,646,647,650],{},"Without a project the server runs the example plugin it carries,\n",[149,648,649],{},"hello.ts",", which it compiles itself on the first start.",[183,652,653],{},[146,654,655,658,660,661,664,665,668,669,672,673,678,679,681],{},[188,656,657],{},"Built for Linux",[192,659],{},"\nA plugin built for a Windows server does not load on this one: build with\n",[149,662,663],{},"--os linux",", or put ",[149,666,667],{},"AMXTS_SERVER_OS=linux"," in the project's ",[149,670,671],{},".env","\n(",[674,675,677],"a",{"href":676},"\u002Fdocs\u002Fgetting-started\u002Fcli#the-servers-system","the server's system","). ",[149,680,401],{}," always\nbuilds for Linux.",[215,683,685],{"id":684},"settings","Settings",[454,687,688,701],{},[457,689,690],{},[460,691,692,695,698],{},[463,693,694],{},"variable",[463,696,697],{},"default",[463,699,700],{},"what",[470,702,703,718,733,751,764,779],{},[460,704,705,710,715],{},[475,706,707],{},[149,708,709],{},"MAP",[475,711,712],{},[149,713,714],{},"de_dust2",[475,716,717],{},"the first map",[460,719,720,725,730],{},[475,721,722],{},[149,723,724],{},"MAXPLAYERS",[475,726,727],{},[149,728,729],{},"16",[475,731,732],{},"the slots",[460,734,735,740,745],{},[475,736,737],{},[149,738,739],{},"PORT",[475,741,742],{},[149,743,744],{},"27015",[475,746,747,748],{},"the port the server listens on; publish the same one: ",[149,749,750],{},"-p 27016:27016\u002Fudp -e PORT=27016",[460,752,753,758,761],{},[475,754,755],{},[149,756,757],{},"RCON_PASSWORD",[475,759,760],{},"random",[475,762,763],{},"the rcon password; when it is not set, a random one is printed at start",[460,765,766,771,776],{},[475,767,768],{},[149,769,770],{},"SERVER_NAME",[475,772,773],{},[149,774,775],{},"amxts server",[475,777,778],{},"the name in the server browser",[460,780,781,786,791],{},[475,782,783],{},[149,784,785],{},"SV_LAN",[475,787,788],{},[149,789,790],{},"1",[475,792,793,795,796,799],{},[149,794,790],{}," for a server on your machine or LAN, ",[149,797,798],{},"0"," for one on the internet",[146,801,802,803,225],{},"They are passed with ",[149,804,805],{},"-e",[227,807,809],{"className":229,"code":808,"language":231,"meta":232,"style":232},"docker run --rm -it -p 27015:27015\u002Fudp -v \"${PWD}:\u002Fproject\" -e MAP=cs_office -e MAXPLAYERS=32 ghcr.io\u002Famxts\u002Fserver\n",[149,810,811],{"__ignoreMap":232},[236,812,813,815,817,819,821,823,825,827,829,831,833,835,837,840,843,845,848,852],{"class":238,"line":239},[236,814,262],{"class":242},[236,816,265],{"class":246},[236,818,268],{"class":246},[236,820,271],{"class":246},[236,822,274],{"class":246},[236,824,277],{"class":246},[236,826,280],{"class":246},[236,828,284],{"class":283},[236,830,288],{"class":287},[236,832,291],{"class":283},[236,834,294],{"class":246},[236,836,297],{"class":283},[236,838,839],{"class":246}," -e",[236,841,842],{"class":246}," MAP=cs_office",[236,844,839],{"class":246},[236,846,847],{"class":246}," MAXPLAYERS=",[236,849,851],{"class":850},"sbssI","32",[236,853,300],{"class":246},[146,855,856],{},"Anything after the image's name goes to the end of the server's command line:",[227,858,860],{"className":229,"code":859,"language":231,"meta":232,"style":232},"docker run --rm -it -p 27015:27015\u002Fudp -v \"${PWD}:\u002Fproject\" ghcr.io\u002Famxts\u002Fserver +mp_timelimit 0 +sv_cheats 1\n",[149,861,862],{"__ignoreMap":232},[236,863,864,866,868,870,872,874,876,878,880,882,884,886,888,891,894,897,900],{"class":238,"line":239},[236,865,262],{"class":242},[236,867,265],{"class":246},[236,869,268],{"class":246},[236,871,271],{"class":246},[236,873,274],{"class":246},[236,875,277],{"class":246},[236,877,280],{"class":246},[236,879,284],{"class":283},[236,881,288],{"class":287},[236,883,291],{"class":283},[236,885,294],{"class":246},[236,887,297],{"class":283},[236,889,890],{"class":246}," ghcr.io\u002Famxts\u002Fserver",[236,892,893],{"class":246}," +mp_timelimit",[236,895,896],{"class":850}," 0",[236,898,899],{"class":246}," +sv_cheats",[236,901,902],{"class":850}," 1\n",[146,904,905,906,181],{},"To join from another machine on your network, connect to this machine's\naddress and the published port: ",[149,907,908],{},"connect 192.168.1.20:27015",[215,910,912],{"id":911},"in-the-background","In the background",[227,914,916],{"className":229,"code":915,"language":231,"meta":232,"style":232},"docker run -dit --name myserver -p 27015:27015\u002Fudp -v \"${PWD}:\u002Fproject\" ghcr.io\u002Famxts\u002Fserver\ndocker logs -f myserver     # the console\ndocker attach myserver      # the console to type into; Ctrl-P Ctrl-Q leaves it running\ndocker restart myserver     # start again, with the project's files copied anew\ndocker rm -f myserver       # stop and remove it\n",[149,917,918,951,967,980,993],{"__ignoreMap":232},[236,919,920,922,924,927,930,933,935,937,939,941,943,945,947,949],{"class":238,"line":239},[236,921,262],{"class":242},[236,923,265],{"class":246},[236,925,926],{"class":246}," -dit",[236,928,929],{"class":246}," --name",[236,931,932],{"class":246}," myserver",[236,934,274],{"class":246},[236,936,277],{"class":246},[236,938,280],{"class":246},[236,940,284],{"class":283},[236,942,288],{"class":287},[236,944,291],{"class":283},[236,946,294],{"class":246},[236,948,297],{"class":283},[236,950,300],{"class":246},[236,952,953,955,958,961,963],{"class":238,"line":259},[236,954,262],{"class":242},[236,956,957],{"class":246}," logs",[236,959,960],{"class":246}," -f",[236,962,932],{"class":246},[236,964,966],{"class":965},"sHwdD","     # the console\n",[236,968,970,972,975,977],{"class":238,"line":969},3,[236,971,262],{"class":242},[236,973,974],{"class":246}," attach",[236,976,932],{"class":246},[236,978,979],{"class":965},"      # the console to type into; Ctrl-P Ctrl-Q leaves it running\n",[236,981,983,985,988,990],{"class":238,"line":982},4,[236,984,262],{"class":242},[236,986,987],{"class":246}," restart",[236,989,932],{"class":246},[236,991,992],{"class":965},"     # start again, with the project's files copied anew\n",[236,994,996,998,1001,1003,1005],{"class":238,"line":995},5,[236,997,262],{"class":242},[236,999,1000],{"class":246}," rm",[236,1002,960],{"class":246},[236,1004,932],{"class":246},[236,1006,1007],{"class":965},"       # stop and remove it\n",[1009,1010,1011],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":232,"searchDepth":259,"depth":969,"links":1013},[1014,1015,1016,1019,1020],{"id":217,"depth":259,"text":218},{"id":324,"depth":259,"text":325},{"id":445,"depth":259,"text":446,"children":1017},[1018],{"id":585,"depth":969,"text":586},{"id":684,"depth":259,"text":685},{"id":911,"depth":259,"text":912},"ghcr.io\u002Famxts\u002Fserver is a Docker image of a Linux Counter-Strike 1.6\nserver that runs amxts: HLDS with ReHLDS, ReGameDLL, Metamod-R, AMX Mod X 1.10\nand ReAPI, the amxts module and its compiler. Your project is mounted into\nit, and the server runs your plugins with your configs and files - on\nWindows, macOS or Linux, with nothing to install but Docker.","md",{},true,{"title":27,"description":1021},"7NRn6DD8YjyzLjYb28s1SNrQ62v5Msh_wJwTjyKeZwg",[1028,1030],{"title":23,"path":24,"stem":25,"description":1029,"children":-1},"A game server runs amxts plugins with two things: the amxts_amxx module\nand the addons\u002Famxts folder with the plugins. This page puts them on a\nserver of your own. The other way is the server in Docker,\nwhich has all of it inside.",{"title":31,"path":32,"stem":33,"description":1031,"children":-1},"What amxts cannot do yet, each with what to write instead. The build, the\neditor or the server console says so for almost every item below; this page\nis where to look up what it means.",null,1791273256991]