<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[open.mp forum - All Forums]]></title>
		<link>https://forum.open.mp/</link>
		<description><![CDATA[open.mp forum - https://forum.open.mp]]></description>
		<pubDate>Mon, 12 Oct 2026 06:33:09 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[mysql_samp 1.4.0 — notas de versão para SA-MP e open.mp]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6558</link>
			<pubDate>Sun, 11 Oct 2026 15:43:52 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=7983">NullSablex</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6558</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #0e639c;" class="mycode_color">🦀 mysql_samp 1.4.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">MySQL para SA-MP e open.mp — o mesmo binário nos dois</span><br />
<span style="font-style: italic;" class="mycode_i">MySQL for SA-MP and open.mp — the same binary on both</span></span><br />
<br />
<a href="https://github.com/NullSablex/mysql_samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download</span></a> · <a href="https://github.com/NullSablex/mysql_samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">GitHub</span></a> · <a href="https://nullsablex.github.io/mysql_samp/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> · <a href="https://github.com/NullSablex/mysql_samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">CHANGELOG</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Plugin MySQL em Rust, <span style="font-weight: bold;" class="mycode_b">79 natives</span>, sem dependência para instalar. Esta versão, em três linhas:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Uma mudança de comportamento:</span> o <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> entregava seus cinco argumentos na ordem invertida, desde a 1.0.0. Se você trata esse forward, confira o handler.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Uma correção de estabilidade:</span> uma rajada de queries num único tick podia abortar o servidor e travar a fila de callbacks permanentemente.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Uma novidade:</span> <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> faz uma chamada específica esperar o banco, sem callback.<br />
</li>
</ul>
<br />
🇧🇷 Nenhuma native foi removida ou renomeada e nenhuma assinatura mudou: gamemode de 1.3.0 compila como está.<br />
<br />
🇬🇧 MySQL plugin in Rust, <span style="font-weight: bold;" class="mycode_b">79 natives</span>, nothing to install. One behaviour change (<span style="font-weight: bold;" class="mycode_b">OnQueryError</span> delivered its five arguments reversed since 1.0.0 — check your handler), one stability fix (a burst of queries in one tick could abort the server and stall the callback queue for good), one new feature (<span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> makes a single call wait on the database, with no callback). Nothing removed, renamed or re-signed: 1.3.0 gamemodes compile unchanged.</blockquote>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚠️ Mudança de comportamento: OnQueryError</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Behaviour change: OnQueryError</span></span><br />
<br />
🇧🇷 O forward é declarado assim:<br />
🇬🇧 The forward is declared as:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>forward OnQueryError(errorid, error[], callback[], query[], connId);</code></div></div><br />
🇧🇷 Até a 1.3.0 o gamemode recebia os campos ao contrário: o id da conexão chegava como <span style="font-weight: bold;" class="mycode_b">errorid</span>, o texto da query como <span style="font-weight: bold;" class="mycode_b">error</span>, a mensagem de erro como <span style="font-weight: bold;" class="mycode_b">query</span> e o código do MySQL como <span style="font-weight: bold;" class="mycode_b">connId</span>.<br />
<br />
🇧🇷 A causa estava no despacho. O <span style="font-weight: bold;" class="mycode_b">exec_public!</span> empilha os argumentos ao contrário — é a convenção da pilha do AMX — logo a ordem escrita na chamada já é a ordem que o <span style="font-weight: bold;" class="mycode_b">public</span> recebe. O código os listava de trás para frente, como se tivesse de inverter à mão.<br />
<br />
🇧🇷 A inversão era consistente, então um handler podia parecer funcionar há bastante tempo lendo o id da conexão como código de erro. <span style="font-weight: bold;" class="mycode_b">Presente desde a 1.0.0</span> — se você trata esse forward, é o primeiro lugar a olhar depois de atualizar.<br />
<br />
🇬🇧 Up to 1.3.0 the fields arrived reversed: connection id as <span style="font-weight: bold;" class="mycode_b">errorid</span>, query text as <span style="font-weight: bold;" class="mycode_b">error</span>, error message as <span style="font-weight: bold;" class="mycode_b">query</span>, MySQL code as <span style="font-weight: bold;" class="mycode_b">connId</span>. <span style="font-weight: bold;" class="mycode_b">exec_public!</span> pushes arguments in reverse (the AMX stack convention), so the order written at the call site is already the order the <span style="font-weight: bold;" class="mycode_b">public</span> receives; the code listed them backwards as if it had to invert them by hand. Consistent enough that a handler could appear to work for a long time. Present since 1.0.0.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 E ao atualizar / 🇬🇧 And when updating</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Troque o binário e os includes.</span> O release traz <span style="font-weight: bold;" class="mycode_b">.so</span>, <span style="font-weight: bold;" class="mycode_b">.dll</span>, <span style="font-weight: bold;" class="mycode_b">mysql_samp.inc</span> e <span style="font-weight: bold;" class="mycode_b">mysql_samp_omp.inc</span>. Sem o include novo não existem <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> nem as natives novas — e include velho com binário novo é o erro mais comum numa atualização. O <span style="font-weight: bold;" class="mycode_b">MYSQL_SAMP_VERSION</span> do include serve justamente para comparar na subida / 🇬🇧 replace the binary and the includes; <span style="font-weight: bold;" class="mycode_b">MYSQL_SAMP_VERSION</span> exists to catch a stale one<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Binário de 32 bits</span>, como o servidor. SA-MP em <span style="font-weight: bold;" class="mycode_b">plugins/</span>; open.mp nativo em <span style="font-weight: bold;" class="mycode_b">components/</span>, sem mexer no <span style="font-weight: bold;" class="mycode_b">config.json</span> / 🇬🇧 <span style="font-weight: bold;" class="mycode_b">32-bit</span>, like the server<br />
</li>
<li>🇧🇷 Fora o handler do <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, nada mais a fazer / 🇬🇧 apart from the <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> handler, nothing else to do<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🐛 Correções</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Fixed</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 Uma rajada de queries matava o servidor — e podia travar a fila para sempre</span><br />
🇧🇷 Submeter 2000 queries num tick abortava o processo com <span style="font-weight: bold;" class="mycode_b">memory allocation of 4194304 bytes failed</span>. A causa é específica desta arquitetura: uma thread por query, com a pilha padrão de 8 MiB, dentro de um servidor <span style="font-weight: bold;" class="mycode_b">32 bits</span>. Algumas centenas de workers vivos esgotam o espaço de endereçamento, e a próxima alocação que falha leva o processo junto. Foi achado por teste de força bruta, não por relato.<br />
<br />
🇧🇷 Eram dois problemas, os dois corrigidos:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Pilha de 256 KiB por worker</span> — um worker abre conexão, roda um statement e monta um cache; não recursa. O teto medido saiu de cerca de 1700 para mais de 9000 workers<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Thread recusada pelo sistema não é mais pânico</span> — e esta parte era pior que o crash: a submissão se perdia junto com o número de sequência, de modo que toda callback ordenada atrás dela esperaria para sempre. Agora é um resultado com erro comum: a sequência é contabilizada, o <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> dispara e a native devolve <span style="font-weight: bold;" class="mycode_b">false</span><br />
</li>
</ul>
🇧🇷 Medido depois da correção: 9000 queries num tick, 9000 callbacks entregues, ordem intacta, nada preso no caminho.<br />
🇬🇧 2000 queries in one tick aborted the process — one thread per query, 8 MiB default stack, <span style="font-weight: bold;" class="mycode_b">32-bit</span> server. Workers now get a 256 KiB stack (ceiling moved from ~1700 to past 9000), and a thread the OS refuses is now an ordinary failed result instead of a panic that lost the sequence number and stalled every ordered callback behind it forever.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 As natives de submissão passaram a dizer a verdade</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span>, <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>, <span style="font-weight: bold;" class="mycode_b">mysql_stmt_execute</span>, <span style="font-weight: bold;" class="mycode_b">mysql_stmt_pexecute</span>, <span style="font-weight: bold;" class="mycode_b">mysql_transaction_execute</span> e as natives CRUD do ORM devolviam <span style="font-weight: bold;" class="mycode_b">true</span> sempre que o id da conexão era válido. Agora devolvem o que a submissão realmente fez.<br />
🇬🇧 They returned <span style="font-weight: bold;" class="mycode_b">true</span> whenever the connection id was valid; they now return what the submission actually did.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 Pedir TLS em host local rodava em texto claro</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL = 1</span> contra <span style="font-weight: bold;" class="mycode_b">127.0.0.1</span> reportava sucesso enquanto o cipher voltava vazio. O driver tem <span style="font-weight: bold;" class="mycode_b">prefer_socket</span> ligado por padrão e, depois do handshake, move uma conexão de loopback para o socket unix do servidor — onde ela não protege nada. As duas condições se encontravam na configuração local mais comum que existe. Pedir TLS agora desliga essa otimização; sem TLS ela continua, que é onde ajuda. Verificado contra MariaDB 11.8: <span style="font-weight: bold;" class="mycode_b">TLS_AES_256_GCM_SHA384</span> onde antes havia string vazia.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL = 1</span> against <span style="font-weight: bold;" class="mycode_b">127.0.0.1</span> reported success with an empty cipher: the driver moves a loopback connection onto the unix socket after the handshake, where it secures nothing. Asking for TLS now switches that off.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 E ainda / 🇬🇧 And also</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Erro do driver chegava ao Pawn com entranha de Rust</span> — tabela faltando vinha como <span style="font-weight: bold;" class="mycode_b">MySqlError { ERROR 1146 (42S02): Table 'db.t' doesn't exist }</span>. Agora passa a mensagem do servidor, sozinha / 🇬🇧 Rust internals no longer wrap the server's own message<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_query_file falhava sem avisar</span> — arquivo ilegível ou sem statements era só uma linha de log, que a forma sem callback (a recomendada para schema) nunca vê. Agora dispara <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, com o caminho no lugar da query / 🇬🇧 now fires <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, naming the file<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">rustls 0.23.45 (RUSTSEC-2026-0285)</span> — mensagens de handshake TLS 1.3 eram aceitas atravessando limites de nível de criptografia. O transcript segue autenticado, então ninguém na rede altera ou completa um handshake; o efeito prático é um par conseguir mandar em texto claro o que deveria ir cifrado / 🇬🇧 TLS 1.3 handshake messages accepted across encryption level boundaries<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🆕 MYSQL_SYNC: bloquear quando a chamada pede</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">New: MYSQL_SYNC</span></span><br />
<br />
🇧🇷 Até a 1.3.0 não havia caminho bloqueante na API, de propósito. O problema é que existe trabalho que não é sobre desempenho: criar tabela no <span style="font-weight: bold;" class="mycode_b">OnGameModeInit</span>, ler uma configuração que a linha seguinte precisa, migrar schema. Exigir callback para isso é cerimônia, e a resposta para "como eu leio isto agora?" não podia ser "não leia".<br />
<br />
🇬🇧 Up to 1.3.0 there was no blocking path in the API, by design. But some work isn't about performance: creating tables in <span style="font-weight: bold;" class="mycode_b">OnGameModeInit</span>, reading a setting the next line needs, migrating schema.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "SELECT COUNT(*) AS n FROM contas", MYSQL_SYNC);<br />
new total = cache_get_value_name_int(0, "n");  // o resultado já está aqui</code></div></div><br />
🇧🇷 Funciona em <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span> e <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span> — onde vive o trabalho de schema na subida do servidor.<br />
🇬🇧 Supported on <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span> and <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Por que é um valor e não uma native nova</span><br />
🇧🇷 Porque uma native chamada <span style="font-weight: bold;" class="mycode_b">mysql_query_sync</span> acaba dentro do <span style="font-weight: bold;" class="mycode_b">OnPlayerUpdate</span>. Um valor escrito no lugar do callback põe a intenção onde o custo é pago: quem lê a linha vê que ela espera. E não podia ser um argumento novo — o Pawn não aceita parâmetro depois de <span style="font-weight: bold;" class="mycode_b">{Float,_}:...</span>, e colocá-lo antes do callback quebraria toda chamada existente.<br />
🇬🇧 A native called <span style="font-weight: bold;" class="mycode_b">mysql_query_sync</span> ends up inside <span style="font-weight: bold;" class="mycode_b">OnPlayerUpdate</span>. A value at the call site states the intent where the cost is paid. It couldn't be a new argument either: Pawn refuses any parameter after <span style="font-weight: bold;" class="mycode_b">{Float,_}:...</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">As três regras que mantêm isso honesto</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Recusado dentro de callback</span> — lá "o cache atual" já significa o do próprio callback; um resultado bloqueante ou o encobriria ou ficaria ilegível. A recusa vai para o log, não passa calada / 🇬🇧 refused inside a callback, out loud<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Liberado no tick seguinte</span> — a mesma garantia que o caminho assíncrono ganha do callback retornar. Nada para liberar à mão / 🇬🇧 freed at the next server tick, nothing to free by hand<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Recusado nas natives que não podem honrá-lo</span> — prepared statements, transações, ORM e hash de senha. Aceito em silêncio, o valor passaria por nome de callback que nunca dispara, e a chamada viraria fire-and-forget sem você saber / 🇬🇧 refused on every native that cannot honour it — otherwise the call would silently become fire-and-forget<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚖️ Como usar assíncrono e síncrono</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Using async and sync</span></span><br />
<br />
🇧🇷 A regra em uma frase: <span style="font-weight: bold;" class="mycode_b">se um jogador está esperando, é assíncrono; se o servidor ainda está subindo, pode ser síncrono.</span><br />
🇬🇧 One sentence: if a player is waiting, async. If the server is still starting up, sync is fine.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Assíncrono com callback — o caso normal</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "SELECT id, nome FROM contas WHERE nome = 'x'", "OnContaCarregada", "d", playerid);<br />
<br />
forward OnContaCarregada(playerid);<br />
public OnContaCarregada(playerid)<br />
{<br />
    if (!cache_get_row_count()) return 0;  // conta não existe<br />
<br />
    new nome[MAX_PLAYER_NAME];<br />
    cache_get_value_name(0, "nome", nome);<br />
    printf("conta de %s carregada", nome);<br />
    return 1;<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">2. Assíncrono sem callback — quando o resultado não interessa</span><br />
🇧🇷 O callback sempre foi opcional, mas isso estava num parágrafo no pé de uma página enquanto todos os exemplos sugeriam o contrário — daí a reclamação de que o plugin "obriga a escrever callback para tudo". Um <span style="font-weight: bold;" class="mycode_b">UPDATE</span> cujo resultado você não vai ler é uma linha:<br />
🇬🇧 The callback was always optional; the docs buried it. An <span style="font-weight: bold;" class="mycode_b">UPDATE</span> whose result you won't read is one line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "UPDATE contas SET online = 0 WHERE id = 7");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">3. Síncrono — trabalho de subida</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>public OnGameModeInit()<br />
{<br />
    g_mysql = mysql_connect_file();                      // credenciais fora do código<br />
<br />
    mysql_query_file(g_mysql, "schema.sql", MYSQL_SYNC); // schema pronto ANTES de seguir<br />
<br />
    mysql_query(g_mysql, "SELECT valor FROM config WHERE chave = 'preco'", MYSQL_SYNC);<br />
    g_preco = cache_get_value_name_int(0, "valor");      // já disponível aqui<br />
    return 1;<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">4. FIFO ordena callbacks, não execução — a armadilha</span><br />
🇧🇷 Isto merece destaque porque a documentação antiga recomendava errado. O <span style="font-weight: bold;" class="mycode_b">mysql_query</span> entrega os callbacks na ordem em que você submeteu, mas cada statement roda na sua própria conexão, ao mesmo tempo. Um <span style="font-weight: bold;" class="mycode_b">CREATE TABLE</span> seguido de um <span style="font-weight: bold;" class="mycode_b">INSERT</span> corre junto, e o insert falha. Quem serializa de verdade é o <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span> (arquivo inteiro, em ordem) e a transação (lote atômico) — ou o <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>, que simplesmente espera.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">mysql_query</span> dispatches callbacks in submission order, but each statement runs on its own connection, concurrently: a <span style="font-weight: bold;" class="mycode_b">CREATE TABLE</span> followed by an <span style="font-weight: bold;" class="mycode_b">INSERT</span> races. What actually serialises is <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>, a transaction, or <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">5. E o mysql_pquery?</span><br />
🇧🇷 Entrega assim que cada uma termina, sem ordem garantida — bom para muitas queries independentes. Com <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> ele é igual ao <span style="font-weight: bold;" class="mycode_b">mysql_query</span>: uma chamada que espera não tem com o que rodar em paralelo.<br />
🇬🇧 Delivers as each finishes, no ordering. With <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> it's identical to the FIFO native.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔐 Outras novidades</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Also new in 1.4.0</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Diagnóstico de TLS</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_tls_active(connId)</span> e <span style="font-weight: bold;" class="mycode_b">mysql_tls_cipher(connId, dest[], max_len)</span> dizem no que o handshake realmente terminou, não o que o <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL</span> pediu. Os dois leem um valor capturado quando a conexão abriu, então nenhum custa uma query. Sessão sem criptografia devolve <span style="font-weight: bold;" class="mycode_b">false</span> e cipher vazio — essa é a resposta, e o retorno separa isso de uma conexão que não existe.<br />
🇬🇧 What the handshake actually settled on, rather than what <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL</span> asked for. Both read a value captured when the connection opened, so neither costs a query.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>if (!mysql_tls_active(g_mysql)) print("[MySQL] atenção: conexão em texto claro");<br />
else<br />
{<br />
    new cipher[64];<br />
    mysql_tls_cipher(g_mysql, cipher, sizeof(cipher));<br />
    printf("[MySQL] TLS: %s", cipher);          // ex.: TLS_AES_256_GCM_SHA384<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Os tetos de memória deixaram de ser fixos</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_limit_set</span> e <span style="font-weight: bold;" class="mycode_b">mysql_limit_get</span> mexem em três limites antes cravados no código: <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_SAVED_CACHES</span> (1024), <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_RESULT_ROWS</span> (100000) e <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_ORM_STRING_LEN</span> (4096). Quem precisa de mais, aumenta; máquina apertada, diminui. São globais e não por conexão, porque a memória protegida é a do servidor. O valor <span style="font-weight: bold;" class="mycode_b">0</span> é recusado em vez de ser lido como "ilimitado" — ilimitado é justamente o estado que esses limites existem para evitar — e abaixar um teto não joga fora o que já está guardado.<br />
🇬🇧 Three caps that used to be hardcoded. Global, not per connection. <span style="font-weight: bold;" class="mycode_b">0</span> is refused rather than read as "unlimited", and lowering a cap keeps what is already held.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_limit_set(MYSQL_LIMIT_RESULT_ROWS, 250000);  // relatório grande<br />
printf("caches guardados: %d", mysql_limit_get(MYSQL_LIMIT_SAVED_CACHES));</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">&#36;{VARIÁVEL} no arquivo de conexão</span><br />
🇧🇷 O <span style="font-weight: bold;" class="mycode_b">mysql_connect_file</span> já tirava a senha do gamemode; agora o arquivo pode citar o segredo em vez de guardá-lo, e uma cópia roubada não vale nada por si:<br />
🇬🇧 The file can now name the secret instead of holding it:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>host = 127.0.0.1<br />
user = samp<br />
password = &#36;{MYSQL_PASSWORD}<br />
database = meu_banco</code></div></div><br />
🇧🇷 Nome não definido expande para vazio e diz no log qual faltou — mandar o literal <span style="font-weight: bold;" class="mycode_b">&#36;{MYSQL_PASSWORD}</span> para o servidor falharia como "access denied" e mandaria você procurar no lugar errado. Só <span style="font-weight: bold;" class="mycode_b">&#36;{...}</span> é referência, então senha com sinal de dólar continua funcionando.<br />
🇬🇧 An unset name expands to nothing and logs which one was missing. Only <span style="font-weight: bold;" class="mycode_b">&#36;{...}</span> is a reference, so a password with a dollar sign still works.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">IPv6</span><br />
🇧🇷 É suportado, entre colchetes: <span style="font-weight: bold;" class="mycode_b">[::1]</span> é interpretado e validado como endereço. Sem colchetes vira nome de host — normalmente ainda conecta, mas não valida nada.<br />
🇬🇧 Supported, in brackets: <span style="font-weight: bold;" class="mycode_b">[::1]</span> is parsed and validated as an address; without brackets it's taken as a host name.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚙️ Por dentro: o SDK e o que ele destravou</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Under the hood</span></span><br />
<br />
🇧🇷 O plugin roda sobre o <a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">rust-samp</span></a>, o SDK em Rust para SA-MP e open.mp, que aqui vai para a <span style="font-weight: bold;" class="mycode_b">3.6.0</span> e sai de uma tag do git para o crates.io. A mudança já conserta uma esquisitice: a tag <span style="font-weight: bold;" class="mycode_b">v3.5.0</span> declarava <span style="font-weight: bold;" class="mycode_b">version = "3.4.0"</span> no próprio manifesto, então o lockfile registrava 3.4.0 apontando para a tag v3.5.0.<br />
<br />
🇧🇷 O que a 3.6.0 trouxe de útil aqui foi uma rota que faltava. Quando uma query termina numa worker thread, o resultado precisa aterrissar no estado do plugin — e até a 3.5.0 não havia caminho do SDK para isso, limitação que o plugin contornava com canal próprio. O <span style="font-weight: bold;" class="mycode_b">post_with</span> entrega o plugin ao job, e com ele os canais de resultado do plugin deixaram de existir, tanto na query quanto no hash de senha.<br />
<br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">Não é ganho de desempenho, e eu não vou vender como se fosse.</span> O SDK drena essa fila imediatamente antes do <span style="font-weight: bold;" class="mycode_b">on_tick</span>, então o despacho continua acontecendo no <span style="font-weight: bold;" class="mycode_b">on_tick</span> e nada chega um tick depois do que chegava. O ganho é de arquitetura: menos código próprio fazendo o que o SDK passou a fazer, num ponto onde errar custa caro. Os ganhos de robustez que você sente nesta versão — a rajada de 9000 queries — são do plugin, não do SDK.<br />
🇬🇧 It is not a performance win and I won't sell it as one. The SDK drains that queue immediately before <span style="font-weight: bold;" class="mycode_b">on_tick</span>, so dispatch still happens there and nothing arrives a tick later than it used to. The gain is architectural. The robustness wins you feel in this release are the plugin's, not the SDK's.<br />
<br />
🇧🇷 Um detalhe de projeto que não é questão de gosto: entregar o resultado e despachar o callback tiveram de ficar em dois passos. Chamar o Pawn de dentro do job deixaria um <span style="font-weight: bold;" class="mycode_b">public</span> reentrar numa native e pegar um segundo empréstimo mutável do mesmo plugin, que é instantaneamente um bug de memória. Então o job só bufferiza, e quem invoca callback é o <span style="font-weight: bold;" class="mycode_b">on_tick</span>, que detém esse empréstimo legitimamente. A ordem FIFO continua sendo nossa, no buffer de sequência, porque os jobs terminam na ordem em que o banco responde, não na que você pediu.<br />
🇬🇧 Handing the result over and dispatching the callback had to be two steps: calling Pawn from inside the job would let a <span style="font-weight: bold;" class="mycode_b">public</span> re-enter a native and take a second mutable borrow of the plugin. The job only buffers; <span style="font-weight: bold;" class="mycode_b">on_tick</span> dispatches.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Gargalo antigo que já não é seu problema</span><br />
🇧🇷 Vindo de outro plugin MySQL você provavelmente aprendeu a chamar <span style="font-weight: bold;" class="mycode_b">mysql_tick()</span> num timer. Aqui não é necessário desde a 3.0.0 do SDK: a fila é bombeada a cada tick, sozinha. A native continua existindo só por compatibilidade — e ela não libera o resultado do <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>, que sai no tick seguinte de todo jeito.<br />
🇬🇧 Coming from another MySQL plugin you probably learned to call <span style="font-weight: bold;" class="mycode_b">mysql_tick()</span> on a timer. Not needed here since SDK 3.0.0: the queue is pumped every tick automatically.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📖 A referência da API agora se escreve sozinha</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">The API reference generates itself</span></span><br />
<br />
🇧🇷 A <a href="https://nullsablex.github.io/mysql_samp/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">referência da API</span></a> era uma tabela escrita à mão com cada native, seu tipo e uma descrição — exatamente a informação que o include já carrega ao lado de cada declaração, mantida em sincronia a dedo. Agora ela é gerada do include a cada build: natives, o forward, as constantes documentadas e os enums com seus valores, cada um com assinatura, apelido open.mp, parâmetros e retorno. A cópia manual foi apagada, e a URL é a mesma.<br />
<br />
🇧🇷 O gerador lê dois formatos de comentário: o <span style="font-weight: bold;" class="mycode_b">JavaDoc</span> (<span style="font-weight: bold;" class="mycode_b">@param</span>, <span style="font-weight: bold;" class="mycode_b">@return</span>), que é o que estes includes usam, e o <span style="font-weight: bold;" class="mycode_b">pawndoc</span> (<span style="font-weight: bold;" class="mycode_b">&lt;summary&gt;</span>, <span style="font-weight: bold;" class="mycode_b">&lt;param name=""&gt;</span>, <span style="font-weight: bold;" class="mycode_b">&lt;returns&gt;</span>), que é o que você encontra em includes de terceiros. E tem autoteste: se uma native entrar sem bloco de documentação, o build da doc falha em vez de publicar uma linha vazia.<br />
<br />
🇧🇷 Esses mesmos comentários chegam ao hover do seu editor — na extensão <a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> para VS Code, por exemplo, você passa o mouse na native e lê o que cada parâmetro espera sem abrir o <span style="font-weight: bold;" class="mycode_b">.inc</span>. Nesta versão as três natives que aceitam <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> carregam o exemplo bloqueante no próprio comentário, então o jeito de fazer uma chamada esperar aparece onde a native é documentada, não só na página de queries.<br />
<br />
🇬🇧 The API reference is now generated from the includes on every docs build — natives, forward, documented constants and enums with their values. Two comment formats are read: <span style="font-weight: bold;" class="mycode_b">JavaDoc</span>, used here, and <span style="font-weight: bold;" class="mycode_b">pawndoc</span>. A native without a doc block fails the docs build. The same comments reach your editor's hover — e.g. the <a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> VS Code extension.<br />
<br />
<hr class="mycode_hr" />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Prepared statement continua sendo a via segura. O <span style="font-weight: bold;" class="mycode_b">mysql_format</span> e o ORM interpolam texto e dependem do escaping; o <span style="font-weight: bold;" class="mycode_b">mysql_stmt_*</span> manda os valores pelo protocolo binário e não tem esse risco. Para qualquer coisa que carregue o que o jogador digitou, prefira statement — isso não mudou nesta versão e não vai mudar.<br />
🇬🇧 Prepared statements are still the safe path for anything carrying player input.</blockquote>
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📚 Links</span></span><ul class="mycode_list"><li><a href="https://github.com/NullSablex/mysql_samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download da 1.4.0</span></a> — 🇧🇷 <span style="font-weight: bold;" class="mycode_b">.so</span>, <span style="font-weight: bold;" class="mycode_b">.dll</span> e os dois includes / 🇬🇧 binaries and both includes<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> — 🇧🇷 conexão, queries, cache, ORM, opções e segurança / 🇬🇧 connection, queries, cache, ORM, options, security<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Referência da API</span></a> — 🇧🇷 as 79 natives, geradas do include / 🇬🇧 all 79 natives, generated from the include<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/migration/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Guia de migração</span></a> — 🇧🇷 para quem vem de outro plugin MySQL / 🇬🇧 coming from another MySQL plugin<br />
</li>
<li><a href="https://github.com/NullSablex/mysql_samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">CHANGELOG completo</span></a> — 🇧🇷 com o que não caberia aqui / 🇬🇧 the full list<br />
</li>
</ul>
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">🇧🇷 Projeto independente, mantido por uma pessoa. Não é afiliado, endossado nem patrocinado pelo SA-MP ou pelo open.mp. "SA-MP", "open.mp" e "MySQL" pertencem a seus respectivos donos e são citados apenas para descrever compatibilidade.<br />
🇬🇧 Independent project, maintained by one person. Not affiliated with or endorsed by SA-MP or open.mp.</span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Dúvidas, sugestões e relatos de bug são bem-vindos — aqui no tópico ou nas issues.<br />
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.</span><br />
<br />
<a href="https://github.com/NullSablex/mysql_samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/mysql_samp</span></a></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #0e639c;" class="mycode_color">🦀 mysql_samp 1.4.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">MySQL para SA-MP e open.mp — o mesmo binário nos dois</span><br />
<span style="font-style: italic;" class="mycode_i">MySQL for SA-MP and open.mp — the same binary on both</span></span><br />
<br />
<a href="https://github.com/NullSablex/mysql_samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download</span></a> · <a href="https://github.com/NullSablex/mysql_samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">GitHub</span></a> · <a href="https://nullsablex.github.io/mysql_samp/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> · <a href="https://github.com/NullSablex/mysql_samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">CHANGELOG</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Plugin MySQL em Rust, <span style="font-weight: bold;" class="mycode_b">79 natives</span>, sem dependência para instalar. Esta versão, em três linhas:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Uma mudança de comportamento:</span> o <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> entregava seus cinco argumentos na ordem invertida, desde a 1.0.0. Se você trata esse forward, confira o handler.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Uma correção de estabilidade:</span> uma rajada de queries num único tick podia abortar o servidor e travar a fila de callbacks permanentemente.<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Uma novidade:</span> <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> faz uma chamada específica esperar o banco, sem callback.<br />
</li>
</ul>
<br />
🇧🇷 Nenhuma native foi removida ou renomeada e nenhuma assinatura mudou: gamemode de 1.3.0 compila como está.<br />
<br />
🇬🇧 MySQL plugin in Rust, <span style="font-weight: bold;" class="mycode_b">79 natives</span>, nothing to install. One behaviour change (<span style="font-weight: bold;" class="mycode_b">OnQueryError</span> delivered its five arguments reversed since 1.0.0 — check your handler), one stability fix (a burst of queries in one tick could abort the server and stall the callback queue for good), one new feature (<span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> makes a single call wait on the database, with no callback). Nothing removed, renamed or re-signed: 1.3.0 gamemodes compile unchanged.</blockquote>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚠️ Mudança de comportamento: OnQueryError</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Behaviour change: OnQueryError</span></span><br />
<br />
🇧🇷 O forward é declarado assim:<br />
🇬🇧 The forward is declared as:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>forward OnQueryError(errorid, error[], callback[], query[], connId);</code></div></div><br />
🇧🇷 Até a 1.3.0 o gamemode recebia os campos ao contrário: o id da conexão chegava como <span style="font-weight: bold;" class="mycode_b">errorid</span>, o texto da query como <span style="font-weight: bold;" class="mycode_b">error</span>, a mensagem de erro como <span style="font-weight: bold;" class="mycode_b">query</span> e o código do MySQL como <span style="font-weight: bold;" class="mycode_b">connId</span>.<br />
<br />
🇧🇷 A causa estava no despacho. O <span style="font-weight: bold;" class="mycode_b">exec_public!</span> empilha os argumentos ao contrário — é a convenção da pilha do AMX — logo a ordem escrita na chamada já é a ordem que o <span style="font-weight: bold;" class="mycode_b">public</span> recebe. O código os listava de trás para frente, como se tivesse de inverter à mão.<br />
<br />
🇧🇷 A inversão era consistente, então um handler podia parecer funcionar há bastante tempo lendo o id da conexão como código de erro. <span style="font-weight: bold;" class="mycode_b">Presente desde a 1.0.0</span> — se você trata esse forward, é o primeiro lugar a olhar depois de atualizar.<br />
<br />
🇬🇧 Up to 1.3.0 the fields arrived reversed: connection id as <span style="font-weight: bold;" class="mycode_b">errorid</span>, query text as <span style="font-weight: bold;" class="mycode_b">error</span>, error message as <span style="font-weight: bold;" class="mycode_b">query</span>, MySQL code as <span style="font-weight: bold;" class="mycode_b">connId</span>. <span style="font-weight: bold;" class="mycode_b">exec_public!</span> pushes arguments in reverse (the AMX stack convention), so the order written at the call site is already the order the <span style="font-weight: bold;" class="mycode_b">public</span> receives; the code listed them backwards as if it had to invert them by hand. Consistent enough that a handler could appear to work for a long time. Present since 1.0.0.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 E ao atualizar / 🇬🇧 And when updating</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Troque o binário e os includes.</span> O release traz <span style="font-weight: bold;" class="mycode_b">.so</span>, <span style="font-weight: bold;" class="mycode_b">.dll</span>, <span style="font-weight: bold;" class="mycode_b">mysql_samp.inc</span> e <span style="font-weight: bold;" class="mycode_b">mysql_samp_omp.inc</span>. Sem o include novo não existem <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> nem as natives novas — e include velho com binário novo é o erro mais comum numa atualização. O <span style="font-weight: bold;" class="mycode_b">MYSQL_SAMP_VERSION</span> do include serve justamente para comparar na subida / 🇬🇧 replace the binary and the includes; <span style="font-weight: bold;" class="mycode_b">MYSQL_SAMP_VERSION</span> exists to catch a stale one<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Binário de 32 bits</span>, como o servidor. SA-MP em <span style="font-weight: bold;" class="mycode_b">plugins/</span>; open.mp nativo em <span style="font-weight: bold;" class="mycode_b">components/</span>, sem mexer no <span style="font-weight: bold;" class="mycode_b">config.json</span> / 🇬🇧 <span style="font-weight: bold;" class="mycode_b">32-bit</span>, like the server<br />
</li>
<li>🇧🇷 Fora o handler do <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, nada mais a fazer / 🇬🇧 apart from the <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> handler, nothing else to do<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🐛 Correções</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Fixed</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 Uma rajada de queries matava o servidor — e podia travar a fila para sempre</span><br />
🇧🇷 Submeter 2000 queries num tick abortava o processo com <span style="font-weight: bold;" class="mycode_b">memory allocation of 4194304 bytes failed</span>. A causa é específica desta arquitetura: uma thread por query, com a pilha padrão de 8 MiB, dentro de um servidor <span style="font-weight: bold;" class="mycode_b">32 bits</span>. Algumas centenas de workers vivos esgotam o espaço de endereçamento, e a próxima alocação que falha leva o processo junto. Foi achado por teste de força bruta, não por relato.<br />
<br />
🇧🇷 Eram dois problemas, os dois corrigidos:<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">Pilha de 256 KiB por worker</span> — um worker abre conexão, roda um statement e monta um cache; não recursa. O teto medido saiu de cerca de 1700 para mais de 9000 workers<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">Thread recusada pelo sistema não é mais pânico</span> — e esta parte era pior que o crash: a submissão se perdia junto com o número de sequência, de modo que toda callback ordenada atrás dela esperaria para sempre. Agora é um resultado com erro comum: a sequência é contabilizada, o <span style="font-weight: bold;" class="mycode_b">OnQueryError</span> dispara e a native devolve <span style="font-weight: bold;" class="mycode_b">false</span><br />
</li>
</ul>
🇧🇷 Medido depois da correção: 9000 queries num tick, 9000 callbacks entregues, ordem intacta, nada preso no caminho.<br />
🇬🇧 2000 queries in one tick aborted the process — one thread per query, 8 MiB default stack, <span style="font-weight: bold;" class="mycode_b">32-bit</span> server. Workers now get a 256 KiB stack (ceiling moved from ~1700 to past 9000), and a thread the OS refuses is now an ordinary failed result instead of a panic that lost the sequence number and stalled every ordered callback behind it forever.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 As natives de submissão passaram a dizer a verdade</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span>, <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>, <span style="font-weight: bold;" class="mycode_b">mysql_stmt_execute</span>, <span style="font-weight: bold;" class="mycode_b">mysql_stmt_pexecute</span>, <span style="font-weight: bold;" class="mycode_b">mysql_transaction_execute</span> e as natives CRUD do ORM devolviam <span style="font-weight: bold;" class="mycode_b">true</span> sempre que o id da conexão era válido. Agora devolvem o que a submissão realmente fez.<br />
🇬🇧 They returned <span style="font-weight: bold;" class="mycode_b">true</span> whenever the connection id was valid; they now return what the submission actually did.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 Pedir TLS em host local rodava em texto claro</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL = 1</span> contra <span style="font-weight: bold;" class="mycode_b">127.0.0.1</span> reportava sucesso enquanto o cipher voltava vazio. O driver tem <span style="font-weight: bold;" class="mycode_b">prefer_socket</span> ligado por padrão e, depois do handshake, move uma conexão de loopback para o socket unix do servidor — onde ela não protege nada. As duas condições se encontravam na configuração local mais comum que existe. Pedir TLS agora desliga essa otimização; sem TLS ela continua, que é onde ajuda. Verificado contra MariaDB 11.8: <span style="font-weight: bold;" class="mycode_b">TLS_AES_256_GCM_SHA384</span> onde antes havia string vazia.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL = 1</span> against <span style="font-weight: bold;" class="mycode_b">127.0.0.1</span> reported success with an empty cipher: the driver moves a loopback connection onto the unix socket after the handshake, where it secures nothing. Asking for TLS now switches that off.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🇧🇷 E ainda / 🇬🇧 And also</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Erro do driver chegava ao Pawn com entranha de Rust</span> — tabela faltando vinha como <span style="font-weight: bold;" class="mycode_b">MySqlError { ERROR 1146 (42S02): Table 'db.t' doesn't exist }</span>. Agora passa a mensagem do servidor, sozinha / 🇬🇧 Rust internals no longer wrap the server's own message<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_query_file falhava sem avisar</span> — arquivo ilegível ou sem statements era só uma linha de log, que a forma sem callback (a recomendada para schema) nunca vê. Agora dispara <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, com o caminho no lugar da query / 🇬🇧 now fires <span style="font-weight: bold;" class="mycode_b">OnQueryError</span>, naming the file<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">rustls 0.23.45 (RUSTSEC-2026-0285)</span> — mensagens de handshake TLS 1.3 eram aceitas atravessando limites de nível de criptografia. O transcript segue autenticado, então ninguém na rede altera ou completa um handshake; o efeito prático é um par conseguir mandar em texto claro o que deveria ir cifrado / 🇬🇧 TLS 1.3 handshake messages accepted across encryption level boundaries<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🆕 MYSQL_SYNC: bloquear quando a chamada pede</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">New: MYSQL_SYNC</span></span><br />
<br />
🇧🇷 Até a 1.3.0 não havia caminho bloqueante na API, de propósito. O problema é que existe trabalho que não é sobre desempenho: criar tabela no <span style="font-weight: bold;" class="mycode_b">OnGameModeInit</span>, ler uma configuração que a linha seguinte precisa, migrar schema. Exigir callback para isso é cerimônia, e a resposta para "como eu leio isto agora?" não podia ser "não leia".<br />
<br />
🇬🇧 Up to 1.3.0 there was no blocking path in the API, by design. But some work isn't about performance: creating tables in <span style="font-weight: bold;" class="mycode_b">OnGameModeInit</span>, reading a setting the next line needs, migrating schema.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "SELECT COUNT(*) AS n FROM contas", MYSQL_SYNC);<br />
new total = cache_get_value_name_int(0, "n");  // o resultado já está aqui</code></div></div><br />
🇧🇷 Funciona em <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span> e <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span> — onde vive o trabalho de schema na subida do servidor.<br />
🇬🇧 Supported on <span style="font-weight: bold;" class="mycode_b">mysql_query</span>, <span style="font-weight: bold;" class="mycode_b">mysql_pquery</span> and <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Por que é um valor e não uma native nova</span><br />
🇧🇷 Porque uma native chamada <span style="font-weight: bold;" class="mycode_b">mysql_query_sync</span> acaba dentro do <span style="font-weight: bold;" class="mycode_b">OnPlayerUpdate</span>. Um valor escrito no lugar do callback põe a intenção onde o custo é pago: quem lê a linha vê que ela espera. E não podia ser um argumento novo — o Pawn não aceita parâmetro depois de <span style="font-weight: bold;" class="mycode_b">{Float,_}:...</span>, e colocá-lo antes do callback quebraria toda chamada existente.<br />
🇬🇧 A native called <span style="font-weight: bold;" class="mycode_b">mysql_query_sync</span> ends up inside <span style="font-weight: bold;" class="mycode_b">OnPlayerUpdate</span>. A value at the call site states the intent where the cost is paid. It couldn't be a new argument either: Pawn refuses any parameter after <span style="font-weight: bold;" class="mycode_b">{Float,_}:...</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">As três regras que mantêm isso honesto</span><ul class="mycode_list"><li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Recusado dentro de callback</span> — lá "o cache atual" já significa o do próprio callback; um resultado bloqueante ou o encobriria ou ficaria ilegível. A recusa vai para o log, não passa calada / 🇬🇧 refused inside a callback, out loud<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Liberado no tick seguinte</span> — a mesma garantia que o caminho assíncrono ganha do callback retornar. Nada para liberar à mão / 🇬🇧 freed at the next server tick, nothing to free by hand<br />
</li>
<li>🇧🇷 <span style="font-weight: bold;" class="mycode_b">Recusado nas natives que não podem honrá-lo</span> — prepared statements, transações, ORM e hash de senha. Aceito em silêncio, o valor passaria por nome de callback que nunca dispara, e a chamada viraria fire-and-forget sem você saber / 🇬🇧 refused on every native that cannot honour it — otherwise the call would silently become fire-and-forget<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚖️ Como usar assíncrono e síncrono</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Using async and sync</span></span><br />
<br />
🇧🇷 A regra em uma frase: <span style="font-weight: bold;" class="mycode_b">se um jogador está esperando, é assíncrono; se o servidor ainda está subindo, pode ser síncrono.</span><br />
🇬🇧 One sentence: if a player is waiting, async. If the server is still starting up, sync is fine.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">1. Assíncrono com callback — o caso normal</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "SELECT id, nome FROM contas WHERE nome = 'x'", "OnContaCarregada", "d", playerid);<br />
<br />
forward OnContaCarregada(playerid);<br />
public OnContaCarregada(playerid)<br />
{<br />
    if (!cache_get_row_count()) return 0;  // conta não existe<br />
<br />
    new nome[MAX_PLAYER_NAME];<br />
    cache_get_value_name(0, "nome", nome);<br />
    printf("conta de %s carregada", nome);<br />
    return 1;<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">2. Assíncrono sem callback — quando o resultado não interessa</span><br />
🇧🇷 O callback sempre foi opcional, mas isso estava num parágrafo no pé de uma página enquanto todos os exemplos sugeriam o contrário — daí a reclamação de que o plugin "obriga a escrever callback para tudo". Um <span style="font-weight: bold;" class="mycode_b">UPDATE</span> cujo resultado você não vai ler é uma linha:<br />
🇬🇧 The callback was always optional; the docs buried it. An <span style="font-weight: bold;" class="mycode_b">UPDATE</span> whose result you won't read is one line:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_query(g_mysql, "UPDATE contas SET online = 0 WHERE id = 7");</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">3. Síncrono — trabalho de subida</span><br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>public OnGameModeInit()<br />
{<br />
    g_mysql = mysql_connect_file();                      // credenciais fora do código<br />
<br />
    mysql_query_file(g_mysql, "schema.sql", MYSQL_SYNC); // schema pronto ANTES de seguir<br />
<br />
    mysql_query(g_mysql, "SELECT valor FROM config WHERE chave = 'preco'", MYSQL_SYNC);<br />
    g_preco = cache_get_value_name_int(0, "valor");      // já disponível aqui<br />
    return 1;<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">4. FIFO ordena callbacks, não execução — a armadilha</span><br />
🇧🇷 Isto merece destaque porque a documentação antiga recomendava errado. O <span style="font-weight: bold;" class="mycode_b">mysql_query</span> entrega os callbacks na ordem em que você submeteu, mas cada statement roda na sua própria conexão, ao mesmo tempo. Um <span style="font-weight: bold;" class="mycode_b">CREATE TABLE</span> seguido de um <span style="font-weight: bold;" class="mycode_b">INSERT</span> corre junto, e o insert falha. Quem serializa de verdade é o <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span> (arquivo inteiro, em ordem) e a transação (lote atômico) — ou o <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>, que simplesmente espera.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">mysql_query</span> dispatches callbacks in submission order, but each statement runs on its own connection, concurrently: a <span style="font-weight: bold;" class="mycode_b">CREATE TABLE</span> followed by an <span style="font-weight: bold;" class="mycode_b">INSERT</span> races. What actually serialises is <span style="font-weight: bold;" class="mycode_b">mysql_query_file</span>, a transaction, or <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">5. E o mysql_pquery?</span><br />
🇧🇷 Entrega assim que cada uma termina, sem ordem garantida — bom para muitas queries independentes. Com <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> ele é igual ao <span style="font-weight: bold;" class="mycode_b">mysql_query</span>: uma chamada que espera não tem com o que rodar em paralelo.<br />
🇬🇧 Delivers as each finishes, no ordering. With <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> it's identical to the FIFO native.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔐 Outras novidades</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Also new in 1.4.0</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Diagnóstico de TLS</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_tls_active(connId)</span> e <span style="font-weight: bold;" class="mycode_b">mysql_tls_cipher(connId, dest[], max_len)</span> dizem no que o handshake realmente terminou, não o que o <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL</span> pediu. Os dois leem um valor capturado quando a conexão abriu, então nenhum custa uma query. Sessão sem criptografia devolve <span style="font-weight: bold;" class="mycode_b">false</span> e cipher vazio — essa é a resposta, e o retorno separa isso de uma conexão que não existe.<br />
🇬🇧 What the handshake actually settled on, rather than what <span style="font-weight: bold;" class="mycode_b">MYSQL_OPT_SSL</span> asked for. Both read a value captured when the connection opened, so neither costs a query.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>if (!mysql_tls_active(g_mysql)) print("[MySQL] atenção: conexão em texto claro");<br />
else<br />
{<br />
    new cipher[64];<br />
    mysql_tls_cipher(g_mysql, cipher, sizeof(cipher));<br />
    printf("[MySQL] TLS: %s", cipher);          // ex.: TLS_AES_256_GCM_SHA384<br />
}</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Os tetos de memória deixaram de ser fixos</span><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">mysql_limit_set</span> e <span style="font-weight: bold;" class="mycode_b">mysql_limit_get</span> mexem em três limites antes cravados no código: <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_SAVED_CACHES</span> (1024), <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_RESULT_ROWS</span> (100000) e <span style="font-weight: bold;" class="mycode_b">MYSQL_LIMIT_ORM_STRING_LEN</span> (4096). Quem precisa de mais, aumenta; máquina apertada, diminui. São globais e não por conexão, porque a memória protegida é a do servidor. O valor <span style="font-weight: bold;" class="mycode_b">0</span> é recusado em vez de ser lido como "ilimitado" — ilimitado é justamente o estado que esses limites existem para evitar — e abaixar um teto não joga fora o que já está guardado.<br />
🇬🇧 Three caps that used to be hardcoded. Global, not per connection. <span style="font-weight: bold;" class="mycode_b">0</span> is refused rather than read as "unlimited", and lowering a cap keeps what is already held.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>mysql_limit_set(MYSQL_LIMIT_RESULT_ROWS, 250000);  // relatório grande<br />
printf("caches guardados: %d", mysql_limit_get(MYSQL_LIMIT_SAVED_CACHES));</code></div></div><br />
<span style="font-weight: bold;" class="mycode_b">&#36;{VARIÁVEL} no arquivo de conexão</span><br />
🇧🇷 O <span style="font-weight: bold;" class="mycode_b">mysql_connect_file</span> já tirava a senha do gamemode; agora o arquivo pode citar o segredo em vez de guardá-lo, e uma cópia roubada não vale nada por si:<br />
🇬🇧 The file can now name the secret instead of holding it:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>host = 127.0.0.1<br />
user = samp<br />
password = &#36;{MYSQL_PASSWORD}<br />
database = meu_banco</code></div></div><br />
🇧🇷 Nome não definido expande para vazio e diz no log qual faltou — mandar o literal <span style="font-weight: bold;" class="mycode_b">&#36;{MYSQL_PASSWORD}</span> para o servidor falharia como "access denied" e mandaria você procurar no lugar errado. Só <span style="font-weight: bold;" class="mycode_b">&#36;{...}</span> é referência, então senha com sinal de dólar continua funcionando.<br />
🇬🇧 An unset name expands to nothing and logs which one was missing. Only <span style="font-weight: bold;" class="mycode_b">&#36;{...}</span> is a reference, so a password with a dollar sign still works.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">IPv6</span><br />
🇧🇷 É suportado, entre colchetes: <span style="font-weight: bold;" class="mycode_b">[::1]</span> é interpretado e validado como endereço. Sem colchetes vira nome de host — normalmente ainda conecta, mas não valida nada.<br />
🇬🇧 Supported, in brackets: <span style="font-weight: bold;" class="mycode_b">[::1]</span> is parsed and validated as an address; without brackets it's taken as a host name.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⚙️ Por dentro: o SDK e o que ele destravou</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">Under the hood</span></span><br />
<br />
🇧🇷 O plugin roda sobre o <a href="https://github.com/NullSablex/rust-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">rust-samp</span></a>, o SDK em Rust para SA-MP e open.mp, que aqui vai para a <span style="font-weight: bold;" class="mycode_b">3.6.0</span> e sai de uma tag do git para o crates.io. A mudança já conserta uma esquisitice: a tag <span style="font-weight: bold;" class="mycode_b">v3.5.0</span> declarava <span style="font-weight: bold;" class="mycode_b">version = "3.4.0"</span> no próprio manifesto, então o lockfile registrava 3.4.0 apontando para a tag v3.5.0.<br />
<br />
🇧🇷 O que a 3.6.0 trouxe de útil aqui foi uma rota que faltava. Quando uma query termina numa worker thread, o resultado precisa aterrissar no estado do plugin — e até a 3.5.0 não havia caminho do SDK para isso, limitação que o plugin contornava com canal próprio. O <span style="font-weight: bold;" class="mycode_b">post_with</span> entrega o plugin ao job, e com ele os canais de resultado do plugin deixaram de existir, tanto na query quanto no hash de senha.<br />
<br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">Não é ganho de desempenho, e eu não vou vender como se fosse.</span> O SDK drena essa fila imediatamente antes do <span style="font-weight: bold;" class="mycode_b">on_tick</span>, então o despacho continua acontecendo no <span style="font-weight: bold;" class="mycode_b">on_tick</span> e nada chega um tick depois do que chegava. O ganho é de arquitetura: menos código próprio fazendo o que o SDK passou a fazer, num ponto onde errar custa caro. Os ganhos de robustez que você sente nesta versão — a rajada de 9000 queries — são do plugin, não do SDK.<br />
🇬🇧 It is not a performance win and I won't sell it as one. The SDK drains that queue immediately before <span style="font-weight: bold;" class="mycode_b">on_tick</span>, so dispatch still happens there and nothing arrives a tick later than it used to. The gain is architectural. The robustness wins you feel in this release are the plugin's, not the SDK's.<br />
<br />
🇧🇷 Um detalhe de projeto que não é questão de gosto: entregar o resultado e despachar o callback tiveram de ficar em dois passos. Chamar o Pawn de dentro do job deixaria um <span style="font-weight: bold;" class="mycode_b">public</span> reentrar numa native e pegar um segundo empréstimo mutável do mesmo plugin, que é instantaneamente um bug de memória. Então o job só bufferiza, e quem invoca callback é o <span style="font-weight: bold;" class="mycode_b">on_tick</span>, que detém esse empréstimo legitimamente. A ordem FIFO continua sendo nossa, no buffer de sequência, porque os jobs terminam na ordem em que o banco responde, não na que você pediu.<br />
🇬🇧 Handing the result over and dispatching the callback had to be two steps: calling Pawn from inside the job would let a <span style="font-weight: bold;" class="mycode_b">public</span> re-enter a native and take a second mutable borrow of the plugin. The job only buffers; <span style="font-weight: bold;" class="mycode_b">on_tick</span> dispatches.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Gargalo antigo que já não é seu problema</span><br />
🇧🇷 Vindo de outro plugin MySQL você provavelmente aprendeu a chamar <span style="font-weight: bold;" class="mycode_b">mysql_tick()</span> num timer. Aqui não é necessário desde a 3.0.0 do SDK: a fila é bombeada a cada tick, sozinha. A native continua existindo só por compatibilidade — e ela não libera o resultado do <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span>, que sai no tick seguinte de todo jeito.<br />
🇬🇧 Coming from another MySQL plugin you probably learned to call <span style="font-weight: bold;" class="mycode_b">mysql_tick()</span> on a timer. Not needed here since SDK 3.0.0: the queue is pumped every tick automatically.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📖 A referência da API agora se escreve sozinha</span></span><br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">The API reference generates itself</span></span><br />
<br />
🇧🇷 A <a href="https://nullsablex.github.io/mysql_samp/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">referência da API</span></a> era uma tabela escrita à mão com cada native, seu tipo e uma descrição — exatamente a informação que o include já carrega ao lado de cada declaração, mantida em sincronia a dedo. Agora ela é gerada do include a cada build: natives, o forward, as constantes documentadas e os enums com seus valores, cada um com assinatura, apelido open.mp, parâmetros e retorno. A cópia manual foi apagada, e a URL é a mesma.<br />
<br />
🇧🇷 O gerador lê dois formatos de comentário: o <span style="font-weight: bold;" class="mycode_b">JavaDoc</span> (<span style="font-weight: bold;" class="mycode_b">@param</span>, <span style="font-weight: bold;" class="mycode_b">@return</span>), que é o que estes includes usam, e o <span style="font-weight: bold;" class="mycode_b">pawndoc</span> (<span style="font-weight: bold;" class="mycode_b">&lt;summary&gt;</span>, <span style="font-weight: bold;" class="mycode_b">&lt;param name=""&gt;</span>, <span style="font-weight: bold;" class="mycode_b">&lt;returns&gt;</span>), que é o que você encontra em includes de terceiros. E tem autoteste: se uma native entrar sem bloco de documentação, o build da doc falha em vez de publicar uma linha vazia.<br />
<br />
🇧🇷 Esses mesmos comentários chegam ao hover do seu editor — na extensão <a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> para VS Code, por exemplo, você passa o mouse na native e lê o que cada parâmetro espera sem abrir o <span style="font-weight: bold;" class="mycode_b">.inc</span>. Nesta versão as três natives que aceitam <span style="font-weight: bold;" class="mycode_b">MYSQL_SYNC</span> carregam o exemplo bloqueante no próprio comentário, então o jeito de fazer uma chamada esperar aparece onde a native é documentada, não só na página de queries.<br />
<br />
🇬🇧 The API reference is now generated from the includes on every docs build — natives, forward, documented constants and enums with their values. Two comment formats are read: <span style="font-weight: bold;" class="mycode_b">JavaDoc</span>, used here, and <span style="font-weight: bold;" class="mycode_b">pawndoc</span>. A native without a doc block fails the docs build. The same comments reach your editor's hover — e.g. the <a href="https://github.com/NullSablex/PawnPro" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">PawnPro</span></a> VS Code extension.<br />
<br />
<hr class="mycode_hr" />
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Prepared statement continua sendo a via segura. O <span style="font-weight: bold;" class="mycode_b">mysql_format</span> e o ORM interpolam texto e dependem do escaping; o <span style="font-weight: bold;" class="mycode_b">mysql_stmt_*</span> manda os valores pelo protocolo binário e não tem esse risco. Para qualquer coisa que carregue o que o jogador digitou, prefira statement — isso não mudou nesta versão e não vai mudar.<br />
🇬🇧 Prepared statements are still the safe path for anything carrying player input.</blockquote>
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📚 Links</span></span><ul class="mycode_list"><li><a href="https://github.com/NullSablex/mysql_samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download da 1.4.0</span></a> — 🇧🇷 <span style="font-weight: bold;" class="mycode_b">.so</span>, <span style="font-weight: bold;" class="mycode_b">.dll</span> e os dois includes / 🇬🇧 binaries and both includes<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> — 🇧🇷 conexão, queries, cache, ORM, opções e segurança / 🇬🇧 connection, queries, cache, ORM, options, security<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Referência da API</span></a> — 🇧🇷 as 79 natives, geradas do include / 🇬🇧 all 79 natives, generated from the include<br />
</li>
<li><a href="https://nullsablex.github.io/mysql_samp/migration/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Guia de migração</span></a> — 🇧🇷 para quem vem de outro plugin MySQL / 🇬🇧 coming from another MySQL plugin<br />
</li>
<li><a href="https://github.com/NullSablex/mysql_samp/blob/master/CHANGELOG.md" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">CHANGELOG completo</span></a> — 🇧🇷 com o que não caberia aqui / 🇬🇧 the full list<br />
</li>
</ul>
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">🇧🇷 Projeto independente, mantido por uma pessoa. Não é afiliado, endossado nem patrocinado pelo SA-MP ou pelo open.mp. "SA-MP", "open.mp" e "MySQL" pertencem a seus respectivos donos e são citados apenas para descrever compatibilidade.<br />
🇬🇧 Independent project, maintained by one person. Not affiliated with or endorsed by SA-MP or open.mp.</span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Dúvidas, sugestões e relatos de bug são bem-vindos — aqui no tópico ou nas issues.<br />
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.</span><br />
<br />
<a href="https://github.com/NullSablex/mysql_samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/mysql_samp</span></a></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Samp roleplay server]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6557</link>
			<pubDate>Sat, 10 Oct 2026 17:33:33 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=5241">pmemorex2016</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6557</guid>
			<description><![CDATA[🚨🔥 <span style="font-weight: bold;" class="mycode_b">NAJBOLJE GODINE ROLEPLAY – THE SERVER OPENS TONIGHT!</span> 🔥🚨<br />
🌆 The long-awaited moment has arrived! Tonight, we open the doors to our SA-MP Roleplay server and begin a brand-new story in the Balkan community! Gather your crew, get ready to enter the city, and become part of a community that is just beginning to write its history! 💯<br />
<br />
📅 <span style="font-weight: bold;" class="mycode_b">OPENING: TONIGHT AT 8:00 PM!</span><br />
🎮 <span style="font-weight: bold;" class="mycode_b">PLATFORM:</span> SA-MP Roleplay<br />
🌐 <span style="font-weight: bold;" class="mycode_b">SERVER IP:</span> <br />
95.173.199.95:26001<br />
<br />
💼 Want to build a successful career, earn your first money, buy your own vehicle, and become well-known throughout the city? Or are you more interested in criminal stories, organizations, action, and the fight for influence? The choice is yours – you decide how your story unfolds!<br />
🎁 Get ready for <span style="font-weight: bold;" class="mycode_b">REWARDS, EVENTS, AND A STARTER PACK</span>, along with plenty of opportunities to kick-start your adventure!<br />
<br />
🔥 Be among the first players, invite your friends, and claim your place in the city from day one. Every new player brings a new story, and every story has the potential to become legendary!<br />
⏳ <span style="font-weight: bold;" class="mycode_b">DON'T FORGET – TONIGHT AT 8:00 PM!</span><br />
📲 Save the server IP and share this post with your crew!<br />
👑 <span style="font-weight: bold;" class="mycode_b">NAJBOLJE GODINE ROLEPLAY – MAKE THESE YOUR BEST YEARS!</span>]]></description>
			<content:encoded><![CDATA[🚨🔥 <span style="font-weight: bold;" class="mycode_b">NAJBOLJE GODINE ROLEPLAY – THE SERVER OPENS TONIGHT!</span> 🔥🚨<br />
🌆 The long-awaited moment has arrived! Tonight, we open the doors to our SA-MP Roleplay server and begin a brand-new story in the Balkan community! Gather your crew, get ready to enter the city, and become part of a community that is just beginning to write its history! 💯<br />
<br />
📅 <span style="font-weight: bold;" class="mycode_b">OPENING: TONIGHT AT 8:00 PM!</span><br />
🎮 <span style="font-weight: bold;" class="mycode_b">PLATFORM:</span> SA-MP Roleplay<br />
🌐 <span style="font-weight: bold;" class="mycode_b">SERVER IP:</span> <br />
95.173.199.95:26001<br />
<br />
💼 Want to build a successful career, earn your first money, buy your own vehicle, and become well-known throughout the city? Or are you more interested in criminal stories, organizations, action, and the fight for influence? The choice is yours – you decide how your story unfolds!<br />
🎁 Get ready for <span style="font-weight: bold;" class="mycode_b">REWARDS, EVENTS, AND A STARTER PACK</span>, along with plenty of opportunities to kick-start your adventure!<br />
<br />
🔥 Be among the first players, invite your friends, and claim your place in the city from day one. Every new player brings a new story, and every story has the potential to become legendary!<br />
⏳ <span style="font-weight: bold;" class="mycode_b">DON'T FORGET – TONIGHT AT 8:00 PM!</span><br />
📲 Save the server IP and share this post with your crew!<br />
👑 <span style="font-weight: bold;" class="mycode_b">NAJBOLJE GODINE ROLEPLAY – MAKE THESE YOUR BEST YEARS!</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hello everyone.]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6556</link>
			<pubDate>Wed, 07 Oct 2026 07:14:18 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8517">Julian</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6556</guid>
			<description><![CDATA[Hi! I am the newest member of this forum, and I’m here to share my thoughts and hear yours about travel experiences. I’m a travel enthusiast and have explored many attractions in various places. Please share your reviews and favorite destinations, along with any recent trips and activities you've enjoyed.]]></description>
			<content:encoded><![CDATA[Hi! I am the newest member of this forum, and I’m here to share my thoughts and hear yours about travel experiences. I’m a travel enthusiast and have explored many attractions in various places. Please share your reviews and favorite destinations, along with any recent trips and activities you've enjoyed.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[San Andreas Metro Roleplay - Release!]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6554</link>
			<pubDate>Mon, 05 Oct 2026 13:45:16 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=7691">pward0113</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6554</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://imgur.com/kovC42q.png" loading="lazy"  width="720" height="240" alt="[Image: kovC42q.png]" class="mycode_img" /></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: #d4a54a;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">SAN ANDREAS</span></span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-size: 1pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #d4a54a;" class="mycode_color">METROPOLITAN ROLEPLAY</span></span></span></div>
<br />
<br />
<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">A fresh start. A new crew. Your next story.</span></span><br />
<br />
Tired of logging into the same old routine?<br />
Welcome to SAM:RP—with active staff, opportunities to lead, and plenty of ways to build your character.<br />
<br />
Wear the badge, answer an emergency call, earn an honest living, or bring your family to the streets.<br />
<br />
What happens next is up to you.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: left;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">WHAT’S WAITING FOR YOU?</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Police, Fire &amp; EMS</span><br />
Emergency service factions with department radio zones and communication between police and fire crews.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Automatic fire incidents</span><br />
Respond to fires with map alerts for the Fire group.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Homes &amp; furniture</span><br />
Buy a property and make it your own with furniture.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Civilian careers</span><br />
Work as a mechanic, taxi driver, lawyer, bodyguard, bartender, shipment contractor, and more.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Fishing &amp; crafting</span><br />
Spend time on the water or put your materials to work.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Vehicles &amp; storage</span><br />
Own vehicles and use their trunks to store your belongings.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Different fuel types</span><br />
Regular, premium, diesel, and aviation fuel, alongside a redesigned speedometer and fuel display.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• A refreshed introduction</span><br />
Updated login screens and a colorful tutorial to help you get started.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Connected player panel</span><br />
View your character and assets, access faction information, submit support tickets, and receive private staff messages.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Active staff</span><br />
Get help as you settle in and become part of the community.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">FACTION LEADERS WANTED</span></span></span><br />
<br />
Have the experience and commitment to run a department?<br />
<br />
We’re looking for leaders who can recruit, train, organize, and create roleplay for their members.<br />
<br />
Bring your ideas for training, operations, and storylines.<br />
Help build a faction people look forward to logging in for.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">BRING YOUR GANG OR FAMILY</span></span></span><br />
<br />
Already have a crew? Looking to start one?<br />
<br />
We’re welcoming gangs and families with character, ambition, and stories to tell.<br />
<br />
Build relationships, develop rivalries, and give people a reason to remember your name.<br />
<br />
Your crew. Your identity. Your reputation to build.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<br />
<span style="font-size: 24pt;" class="mycode_size">Your next chapter doesn’t have to<br />
be the same old story.</span><br />
<br />
Bring your friends. Meet your neighbors. Make your mark.<br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">JOIN THE SERVER</span></span></span><br />
<span style="font-size: 20pt;" class="mycode_size">147.189.170.65:7777</span><br />
<span style="font-size: 20pt;" class="mycode_size">Version - 0.3.7</span><br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><a href="https://discord.gg/buUqSxbZZG" target="_blank" rel="noopener" class="mycode_url"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">JOIN OUR DISCORD</span></span></a></span><br />
Meet the community, follow updates, and ask about faction leadership or starting your gang or family.<br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><a href="https://sam-rp.us" target="_blank" rel="noopener" class="mycode_url"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">VISIT OUR WEBSITE — SAM-RP.US</span></span></a></span><br />
<br />
San Andreas Metropolitan Roleplay<br />
Now welcoming players, faction leaders, gangs, and families.]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://imgur.com/kovC42q.png" loading="lazy"  width="720" height="240" alt="[Image: kovC42q.png]" class="mycode_img" /></div>
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="color: #d4a54a;" class="mycode_color"><span style="font-size: 1pt;" class="mycode_size">SAN ANDREAS</span></span></span></div>
<div style="text-align: center;" class="mycode_align"><span style="font-size: 1pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #d4a54a;" class="mycode_color">METROPOLITAN ROLEPLAY</span></span></span></div>
<br />
<br />
<span style="font-size: 20pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">A fresh start. A new crew. Your next story.</span></span><br />
<br />
Tired of logging into the same old routine?<br />
Welcome to SAM:RP—with active staff, opportunities to lead, and plenty of ways to build your character.<br />
<br />
Wear the badge, answer an emergency call, earn an honest living, or bring your family to the streets.<br />
<br />
What happens next is up to you.<br />
<br />
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: left;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">WHAT’S WAITING FOR YOU?</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Police, Fire &amp; EMS</span><br />
Emergency service factions with department radio zones and communication between police and fire crews.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Automatic fire incidents</span><br />
Respond to fires with map alerts for the Fire group.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Homes &amp; furniture</span><br />
Buy a property and make it your own with furniture.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Civilian careers</span><br />
Work as a mechanic, taxi driver, lawyer, bodyguard, bartender, shipment contractor, and more.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Fishing &amp; crafting</span><br />
Spend time on the water or put your materials to work.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Vehicles &amp; storage</span><br />
Own vehicles and use their trunks to store your belongings.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Different fuel types</span><br />
Regular, premium, diesel, and aviation fuel, alongside a redesigned speedometer and fuel display.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• A refreshed introduction</span><br />
Updated login screens and a colorful tutorial to help you get started.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Connected player panel</span><br />
View your character and assets, access faction information, submit support tickets, and receive private staff messages.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">• Active staff</span><br />
Get help as you settle in and become part of the community.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">FACTION LEADERS WANTED</span></span></span><br />
<br />
Have the experience and commitment to run a department?<br />
<br />
We’re looking for leaders who can recruit, train, organize, and create roleplay for their members.<br />
<br />
Bring your ideas for training, operations, and storylines.<br />
Help build a faction people look forward to logging in for.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">BRING YOUR GANG OR FAMILY</span></span></span><br />
<br />
Already have a crew? Looking to start one?<br />
<br />
We’re welcoming gangs and families with character, ambition, and stories to tell.<br />
<br />
Build relationships, develop rivalries, and give people a reason to remember your name.<br />
<br />
Your crew. Your identity. Your reputation to build.<br />
</div>
<br />
<hr class="mycode_hr" />
<br />
<br />
<span style="font-size: 24pt;" class="mycode_size">Your next chapter doesn’t have to<br />
be the same old story.</span><br />
<br />
Bring your friends. Meet your neighbors. Make your mark.<br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">JOIN THE SERVER</span></span></span><br />
<span style="font-size: 20pt;" class="mycode_size">147.189.170.65:7777</span><br />
<span style="font-size: 20pt;" class="mycode_size">Version - 0.3.7</span><br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><a href="https://discord.gg/buUqSxbZZG" target="_blank" rel="noopener" class="mycode_url"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">JOIN OUR DISCORD</span></span></a></span><br />
Meet the community, follow updates, and ask about faction leadership or starting your gang or family.<br />
<br />
<span style="font-size: 24pt;" class="mycode_size"><a href="https://sam-rp.us" target="_blank" rel="noopener" class="mycode_url"><span style="color: #D4A54A;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">VISIT OUR WEBSITE — SAM-RP.US</span></span></a></span><br />
<br />
San Andreas Metropolitan Roleplay<br />
Now welcoming players, faction leaders, gangs, and families.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Los Santos Role Play (LSRP) v3 final]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6546</link>
			<pubDate>Sun, 04 Oct 2026 20:05:34 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6546</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v3 final</span></span></span></div>
<span style="color: #000000;" class="mycode_color"><br />
Version 3 of Los Santos Role Play (LSRP) adds houses and businesses, a server-side anticheat, jobs, player families, shops, police mechanics, and a wide set of improvements to organizations, vehicles, and everyday gameplay.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Houses</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A full house system across Los Santos.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Houses can be bought with cash.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Enter the interior and leave back onto the street.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Door lock and a house menu.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Buy a medkit at home and heal.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Daily house rent.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Pay rent at the bank several days ahead.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">An unpaid house is seized.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Residence is shown in the passport and in stats.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Commands to sell a house to the state and to find a house by number.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A closet in the house for storing items.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">An admin can clear a house without paying the owner.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Businesses</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A business system on the map.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A business can be bought and sold.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Business tax, paid through the bank.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Business profit can be withdrawn at the bank.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">24/7 stores with goods for players.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Ammu-Nation, with weapons and armor for sale.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Clothing stores.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Mod shops with repair and paint.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Gas stations, and fuel consumption for vehicles.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Rentals and personal vehicles</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Car rentals.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Personal vehicles, bought at a dealership or the motorcycle lot.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Park your personal car at your house.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A personal vehicle menu.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Fuel and vehicle condition are saved.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Anticheat</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A server-side anticheat with no client plugins.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Checks teleports, speed, flight, health, armor, money, and weapons.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Legitimate server actions are tracked separately, so honest players are not punished.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">False positives in safe zones and when falling with armor are fixed.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Tighter tolerances for small money and health changes.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Loader job</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A loader job at the warehouse.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The player carries cargo between points and gets paid.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A warehouse safe zone.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Organization warehouses</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Warehouses for state organizations, gangs, and mafias.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Put in and take out ammo, metal, drugs, and money under the organization's rules.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Warehouses have a lock and a stock display.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Army</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">An ammo workshop at the army factory.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Ammo crate delivery by van to law-enforcement bases.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Gangs can raid ammo crates at the army base.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Hospital</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Medicine deliveries.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A doctor's kit, and treating players for a fee.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A character medical card.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Ghetto</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Dealer Smokey, who sells drugs.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Gangs can collect weapons and sell weapons and drugs on their own turf.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Wanted level and documents</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A wanted level with stars.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Wanted is issued for murders and by police actions.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Commands to issue and clear a wanted level.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A wanted list and tracking.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A military ID.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A medical card.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Showing documents to another player requires their consent.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Player families</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Families, separate from gangs and mafias.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Create a family, invite members, and manage the roster.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Ranks, a family house, a warehouse, and family healing.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A family chat.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Y and N consent</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Important offers to another player are confirmed with Y or N.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">This covers showing documents, invitations, and some deals.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Hunger and phone</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A hunger bar.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Buy food on the street and in stores.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A mobile phone.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Phone advertisements work together with the radio station.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">GPS and the player menu</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">The /help command is removed. The command list opens with /mn.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In-game stats open with /mn.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">GPS has new points, including jobs and organizations.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Menu items are numbered.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Police and FBI</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Handcuffs, and taking them off.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Put a detained player into a vehicle.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Arrest at the station, which sends the player to prison.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Frisk a player and seize items.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The FBI can fire employees of state organizations.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A driver can eject a passenger from the vehicle.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Disconnecting while cuffed sends the player to prison.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Jobs</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A job center at City Hall.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A bus driver job.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The bus has a route, stops, a fare, and pay for the run.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">GPS has a marker for the bus job.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Payday</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Gang members get a pay bonus for each turf they control.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Chat and emotions</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Quick emotions in chat with brackets and symbols.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A caption appears above the head, the same way a roleplay action does.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Masks and animations</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Masks, bought in a store.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Police can pull a mask off.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">An animation menu.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Admin tools</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Teleport to a player, and teleport a player to you.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Respawn a player.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">View another player's stats.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Change an admin level.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Helper commands for houses, businesses, and families.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Other</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Find online players by name or ID.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Hand cash to a player standing nearby.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Online member lists for an organization, and a list of leaders.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Organization vehicles now auto-respawn after 30 minutes.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Money in the interface is easier to read, with spaces in the numbers.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">How to run the project</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Node.js</span> must be installed.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">You need an empty <span style="font-weight: bold;" class="mycode_b">MySQL</span> database. <span style="font-weight: bold;" class="mycode_b">OSPanel</span> or any other local <span style="font-weight: bold;" class="mycode_b">MySQL</span> is fine.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Do not import <span style="font-weight: bold;" class="mycode_b">SQL</span> by hand. On the first start the server creates the tables and fills in the starting data.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the project root, create a <span style="font-weight: bold;" class="mycode_b">.env</span> file from <span style="font-weight: bold;" class="mycode_b">.env.example</span> and set the database access.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the resources folder, <span style="font-weight: bold;" class="mycode_b">run npm install</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the project root, run <span style="font-weight: bold;" class="mycode_b">npm run build</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Start the server from the root with <span style="font-weight: bold;" class="mycode_b">npm run start</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">After code changes, run <span style="font-weight: bold;" class="mycode_b">npm run build</span> again and restart the server.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">To run the <span style="font-weight: bold;" class="mycode_b">unit tests</span>, <span style="font-weight: bold;" class="mycode_b">run npm test</span> in the resources folder.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size"><br />
Download</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Google Drive: <a href="https://drive.google.com/file/d/1zk76RLtBNu6Darbdu587LCckHZocr5CH/" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1zk76RLt...kHZocr5CH/</a></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Yandex Disk: <a href="https://disk.yandex.ru/d/2sbJJ-3ESHg_BA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/2sbJJ-3ESHg_BA</a></span><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="color: #000000;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v3 final</span></span></span></div>
<span style="color: #000000;" class="mycode_color"><br />
Version 3 of Los Santos Role Play (LSRP) adds houses and businesses, a server-side anticheat, jobs, player families, shops, police mechanics, and a wide set of improvements to organizations, vehicles, and everyday gameplay.<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Houses</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A full house system across Los Santos.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Houses can be bought with cash.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Enter the interior and leave back onto the street.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Door lock and a house menu.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Buy a medkit at home and heal.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Daily house rent.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Pay rent at the bank several days ahead.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">An unpaid house is seized.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Residence is shown in the passport and in stats.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Commands to sell a house to the state and to find a house by number.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A closet in the house for storing items.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">An admin can clear a house without paying the owner.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Businesses</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A business system on the map.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A business can be bought and sold.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Business tax, paid through the bank.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Business profit can be withdrawn at the bank.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">24/7 stores with goods for players.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Ammu-Nation, with weapons and armor for sale.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Clothing stores.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Mod shops with repair and paint.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Gas stations, and fuel consumption for vehicles.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Rentals and personal vehicles</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Car rentals.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Personal vehicles, bought at a dealership or the motorcycle lot.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Park your personal car at your house.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">A personal vehicle menu.</span></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color"><span style="color: #000000;" class="mycode_color">Fuel and vehicle condition are saved.</span></span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Anticheat</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A server-side anticheat with no client plugins.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Checks teleports, speed, flight, health, armor, money, and weapons.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Legitimate server actions are tracked separately, so honest players are not punished.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">False positives in safe zones and when falling with armor are fixed.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Tighter tolerances for small money and health changes.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Loader job</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A loader job at the warehouse.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The player carries cargo between points and gets paid.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A warehouse safe zone.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Organization warehouses</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Warehouses for state organizations, gangs, and mafias.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Put in and take out ammo, metal, drugs, and money under the organization's rules.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Warehouses have a lock and a stock display.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Army</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">An ammo workshop at the army factory.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Ammo crate delivery by van to law-enforcement bases.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Gangs can raid ammo crates at the army base.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Hospital</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Medicine deliveries.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A doctor's kit, and treating players for a fee.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A character medical card.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Ghetto</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Dealer Smokey, who sells drugs.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Gangs can collect weapons and sell weapons and drugs on their own turf.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Wanted level and documents</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A wanted level with stars.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Wanted is issued for murders and by police actions.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Commands to issue and clear a wanted level.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A wanted list and tracking.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A military ID.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A medical card.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Showing documents to another player requires their consent.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Player families</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Families, separate from gangs and mafias.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Create a family, invite members, and manage the roster.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Ranks, a family house, a warehouse, and family healing.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A family chat.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Y and N consent</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Important offers to another player are confirmed with Y or N.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">This covers showing documents, invitations, and some deals.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Hunger and phone</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A hunger bar.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Buy food on the street and in stores.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A mobile phone.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Phone advertisements work together with the radio station.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">GPS and the player menu</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">The /help command is removed. The command list opens with /mn.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In-game stats open with /mn.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">GPS has new points, including jobs and organizations.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Menu items are numbered.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Police and FBI</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Handcuffs, and taking them off.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Put a detained player into a vehicle.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Arrest at the station, which sends the player to prison.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Frisk a player and seize items.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The FBI can fire employees of state organizations.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A driver can eject a passenger from the vehicle.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Disconnecting while cuffed sends the player to prison.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Jobs</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">A job center at City Hall.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A bus driver job.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">The bus has a route, stops, a fare, and pay for the run.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">GPS has a marker for the bus job.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Payday</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Gang members get a pay bonus for each turf they control.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Chat and emotions</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Quick emotions in chat with brackets and symbols.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">A caption appears above the head, the same way a roleplay action does.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Masks and animations</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Masks, bought in a store.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Police can pull a mask off.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">An animation menu.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Admin tools</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Teleport to a player, and teleport a player to you.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Respawn a player.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">View another player's stats.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Change an admin level.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Helper commands for houses, businesses, and families.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Other</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Find online players by name or ID.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Hand cash to a player standing nearby.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Online member lists for an organization, and a list of leaders.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Organization vehicles now auto-respawn after 30 minutes.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Money in the interface is easier to read, with spaces in the numbers.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">How to run the project</span></span><br />
</span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Node.js</span> must be installed.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">You need an empty <span style="font-weight: bold;" class="mycode_b">MySQL</span> database. <span style="font-weight: bold;" class="mycode_b">OSPanel</span> or any other local <span style="font-weight: bold;" class="mycode_b">MySQL</span> is fine.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Do not import <span style="font-weight: bold;" class="mycode_b">SQL</span> by hand. On the first start the server creates the tables and fills in the starting data.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the project root, create a <span style="font-weight: bold;" class="mycode_b">.env</span> file from <span style="font-weight: bold;" class="mycode_b">.env.example</span> and set the database access.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the resources folder, <span style="font-weight: bold;" class="mycode_b">run npm install</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">In the project root, run <span style="font-weight: bold;" class="mycode_b">npm run build</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Start the server from the root with <span style="font-weight: bold;" class="mycode_b">npm run start</span>.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">After code changes, run <span style="font-weight: bold;" class="mycode_b">npm run build</span> again and restart the server.</span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">To run the <span style="font-weight: bold;" class="mycode_b">unit tests</span>, <span style="font-weight: bold;" class="mycode_b">run npm test</span> in the resources folder.</span><br />
</li>
</ul>
<span style="color: #000000;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size"><br />
Download</span></span></span><ul class="mycode_list"><li><span style="color: #000000;" class="mycode_color">Google Drive: <a href="https://drive.google.com/file/d/1zk76RLtBNu6Darbdu587LCckHZocr5CH/" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1zk76RLt...kHZocr5CH/</a></span><br />
</li>
<li><span style="color: #000000;" class="mycode_color">Yandex Disk: <a href="https://disk.yandex.ru/d/2sbJJ-3ESHg_BA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/2sbJJ-3ESHg_BA</a></span><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Los Santos Role Play (LSRP) v3 final]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6545</link>
			<pubDate>Sun, 04 Oct 2026 16:55:54 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6545</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v3 final<br />
</span></span></div>
В третьей версии проекта Los Santos Role Play (LSRP) добавлены дома и бизнесы, серверный античит, работы, семьи игроков, магазины, полицейские механики, а также множество доработок организаций, транспорта и повседневного геймплея.<br />
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Дома</span></span><br />
<ul class="mycode_list"><li>Добавлена полноценная система домов по всему Лос-Сантосу.<br />
</li>
<li>Дома можно купить за наличные.<br />
</li>
<li>Добавлен вход в интерьер и выход на улицу.<br />
</li>
<li>Добавлен замок двери и меню дома.<br />
</li>
<li>Можно купить аптечку в доме и лечиться.<br />
</li>
<li>Добавлена ежедневная аренда жилья.<br />
</li>
<li>Аренду можно оплатить в банке на несколько дней вперед.<br />
</li>
<li>При неуплате дом изымается.<br />
</li>
<li>В паспорте и статистике отображается проживание.<br />
</li>
<li>Добавлены команды продажи дома государству и поиск дома по номеру.<br />
</li>
<li>Добавлен шкаф в доме для хранения вещей.<br />
</li>
<li>Администратор может освободить дом без выплаты владельцу.<br />
</li>
</ul>
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Бизнесы</span></span><ul class="mycode_list"><li>Добавлена система бизнесов на карте.<br />
</li>
<li>Бизнес можно купить и продавать.<br />
</li>
<li>Добавлен налог на бизнес с оплатой через банк.<br />
</li>
<li>Прибыль бизнеса можно снимать в банке.<br />
</li>
<li>Добавлены магазины 24/7 с товарами для игроков.<br />
</li>
<li>Добавлена аммунация с покупкой оружия и брони.<br />
</li>
<li>Добавлены магазины одежды.<br />
</li>
<li>Добавлены автомастерские с ремонтом и покраской.<br />
</li>
<li>Добавлены АЗС и расход бензина у транспорта.<br />
</li>
</ul>
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Аренда и личный транспорт</span></span><ul class="mycode_list"><li>Добавлена аренда автомобилей.<br />
</li>
<li>Добавлен личный транспорт с покупкой в автосалоне или на моторынке.<br />
</li>
<li>Личную машину можно парковать у дома.<br />
</li>
<li>Добавлено меню личного автомобиля.<br />
</li>
<li>Бензин и состояние машины сохраняются.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Античит</span></span><ul class="mycode_list"><li>Добавлен серверный античит без клиентских плагинов.<br />
</li>
<li>Проверяются телепорты, скорость, полет, здоровье, броня, деньги и оружие.<br />
</li>
<li>Легитимные действия сервера учитываются отдельно, чтобы не наказывать честных игроков.<br />
</li>
<li>Исправлены ложные срабатывания в сейф-зонах и при падении с броней.<br />
</li>
<li>Ужесточены мелкие допуски по деньгам и здоровью.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Работа грузчика</span></span><ul class="mycode_list"><li>Добавлена работа грузчика на складе.<br />
</li>
<li>Игрок переносит груз между точками и получает оплату.<br />
</li>
<li>Добавлена сейф-зона склада.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Склады организаций</span></span><ul class="mycode_list"><li>Добавлены склады для государственных организаций, банд и мафий.<br />
</li>
<li>Можно класть и брать патроны, металл, наркотики и деньги по правилам организации.<br />
</li>
<li>У складов есть замок и отображение запасов.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Армия</span></span><ul class="mycode_list"><li>Добавлен цех патронов на заводе армии.<br />
</li>
<li>Добавлена доставка ящиков с патронами фургоном на базы силовых структур.<br />
</li>
<li>Банды могут рейдить ящики патронов на базе армии.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Больница</span></span><ul class="mycode_list"><li>Добавлена доставка медикаментов.<br />
</li>
<li>Добавлен набор врача и лечение игроков за оплату.<br />
</li>
<li>Добавлена медицинская карта персонажа.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Гетто</span></span><ul class="mycode_list"><li>Добавлен барыга Смоки с покупкой наркотиков.<br />
</li>
<li>Банды могут собирать оружие и продавать оружие и наркотики на своей территории.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Розыск и документы</span></span><ul class="mycode_list"><li>Добавлен уровень розыска со звездами.<br />
</li>
<li>Розыск выдается за убийства и действия полиции.<br />
</li>
<li>Добавлены команды выдачи и снятия розыска.<br />
</li>
<li>Добавлен список розыскных и слежка.<br />
</li>
<li>Добавлен военный билет.<br />
</li>
<li>Добавлена медицинская карта.<br />
</li>
<li>Показ документов другому игроку идет через согласие.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Семьи игроков</span></span><ul class="mycode_list"><li>Добавлены семьи отдельно от банд и мафий.<br />
</li>
<li>Семью можно создать, приглашать и управлять составом.<br />
</li>
<li>Добавлены ранги, дом семьи, склад и лечение в семье.<br />
</li>
<li>Добавлен семейный чат.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Согласие Y и N</span></span><ul class="mycode_list"><li>Важные предложения другому игроку подтверждаются клавишами Y или N.<br />
</li>
<li>Так работают показ документов, приглашения и часть сделок.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Голод и телефон</span></span><ul class="mycode_list"><li>Добавлена шкала голода.<br />
</li>
<li>Можно покупать еду на улице и в магазинах.<br />
</li>
<li>Добавлен мобильный телефон.<br />
</li>
<li>Объявления через телефон работают вместе с радиоцентром.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">GPS и меню игрока</span></span><ul class="mycode_list"><li>Команда /help убрана. Список команд открывается через /mn.<br />
</li>
<li>Игровая статистика открывается через /mn.<br />
</li>
<li>В GPS добавлены новые точки, в том числе по работе и организациям.<br />
</li>
<li>Пункты меню пронумерованы.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Полиция и FBI</span></span><ul class="mycode_list"><li>Добавлены наручники и снятие наручников.<br />
</li>
<li>Можно посадить задержанного в машину.<br />
</li>
<li>Добавлен арест у участка с посадкой в тюрьму.<br />
</li>
<li>Добавлены обыск и изъятие вещей.<br />
</li>
<li>FBI может увольнять сотрудников госструктур.<br />
</li>
<li>Водитель может выкинуть пассажира из машины.<br />
</li>
<li>При выходе из игры в наручниках игрок попадает в тюрьму.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Работы</span></span><ul class="mycode_list"><li>Добавлена биржа труда в мэрии.<br />
</li>
<li>Добавлена работа водителя автобуса.<br />
</li>
<li>У автобуса есть маршрут, остановки, плата за проезд и оплата рейса.<br />
</li>
<li>В GPS есть метка для автобусной работы.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Payday</span></span><ul class="mycode_list"><li>Члены банд получают надбавку к зарплате за каждую контролируемую территорию.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Чат и эмоции</span></span><ul class="mycode_list"><li>В чате можно быстро показать эмоцию скобками и символами.<br />
</li>
<li>Над головой появляется подпись, как у отыгровки.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Маски и анимации</span></span><ul class="mycode_list"><li>Добавлены маски с покупкой в магазине.<br />
</li>
<li>Полиция может сорвать маску.<br />
</li>
<li>Добавлено меню анимаций.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Админка</span></span><ul class="mycode_list"><li>Добавлены телепорты к игроку и игрока к себе.<br />
</li>
<li>Добавлен респавн игрока.<br />
</li>
<li>Добавлен просмотр статистики другого игрока.<br />
</li>
<li>Добавлено изменение уровня администратора.<br />
</li>
<li>Добавлены вспомогательные команды для домов, бизнесов и семей.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Прочее</span></span><ul class="mycode_list"><li>Добавлен поиск игроков онлайн по нику или ID.<br />
</li>
<li>Можно передать наличные рядом стоящему игроку.<br />
</li>
<li>Добавлены списки онлайн состава организации и лидеров.<br />
</li>
<li>Для транспорта организаций увеличено время автореспавна до 30 минут.<br />
</li>
<li>Деньги в интерфейсе отображаются удобнее, с пробелами.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Как запустить проект</span></span><ul class="mycode_list"><li>Нужен установленный <span style="font-weight: bold;" class="mycode_b">Node.js</span>.<br />
</li>
<li>Нужна пустая база данных <span style="font-weight: bold;" class="mycode_b">MySQL</span>. Можно поднять через <span style="font-weight: bold;" class="mycode_b">OSPanel</span> или другой локальный <span style="font-weight: bold;" class="mycode_b">MySQL</span>.<br />
</li>
<li>Вручную импортировать <span style="font-weight: bold;" class="mycode_b">SQL</span> не нужно. При первом запуске сервер сам создаст таблицы и заполнит стартовые данные.<br />
</li>
<li>В корне создайте файл <span style="font-weight: bold;" class="mycode_b">.env</span> по примеру <span style="font-weight: bold;" class="mycode_b">.env.example</span> и укажите доступ к базе.<br />
</li>
<li>В папке resources выполните <span style="font-weight: bold;" class="mycode_b">npm install</span>.<br />
</li>
<li>В корне проекта выполните <span style="font-weight: bold;" class="mycode_b">npm run build</span>.<br />
</li>
<li>Запуск сервера из корня командой <span style="font-weight: bold;" class="mycode_b">npm run start</span>.<br />
</li>
<li>После правок кода снова сделайте <span style="font-weight: bold;" class="mycode_b">npm run build</span> и перезапустите сервер.<br />
</li>
<li>Для проверки <span style="font-weight: bold;" class="mycode_b">unit-тестов</span> в папке resources выполните <span style="font-weight: bold;" class="mycode_b">npm test</span>.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Скачать</span></span><ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/1f7yUT2s-XczavhGa_2EY7ZGKoicuWCHd/" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1f7yUT2s...KoicuWCHd/</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.ru/d/Xj-E4h52YDoIqA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/Xj-E4h52YDoIqA</a><br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Скиншоты</span></span><ul class="mycode_list"><li>Imgur: <a href="https://imgur.com/a/O5kRu9f" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/O5kRu9f</a><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v3 final<br />
</span></span></div>
В третьей версии проекта Los Santos Role Play (LSRP) добавлены дома и бизнесы, серверный античит, работы, семьи игроков, магазины, полицейские механики, а также множество доработок организаций, транспорта и повседневного геймплея.<br />
<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Дома</span></span><br />
<ul class="mycode_list"><li>Добавлена полноценная система домов по всему Лос-Сантосу.<br />
</li>
<li>Дома можно купить за наличные.<br />
</li>
<li>Добавлен вход в интерьер и выход на улицу.<br />
</li>
<li>Добавлен замок двери и меню дома.<br />
</li>
<li>Можно купить аптечку в доме и лечиться.<br />
</li>
<li>Добавлена ежедневная аренда жилья.<br />
</li>
<li>Аренду можно оплатить в банке на несколько дней вперед.<br />
</li>
<li>При неуплате дом изымается.<br />
</li>
<li>В паспорте и статистике отображается проживание.<br />
</li>
<li>Добавлены команды продажи дома государству и поиск дома по номеру.<br />
</li>
<li>Добавлен шкаф в доме для хранения вещей.<br />
</li>
<li>Администратор может освободить дом без выплаты владельцу.<br />
</li>
</ul>
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Бизнесы</span></span><ul class="mycode_list"><li>Добавлена система бизнесов на карте.<br />
</li>
<li>Бизнес можно купить и продавать.<br />
</li>
<li>Добавлен налог на бизнес с оплатой через банк.<br />
</li>
<li>Прибыль бизнеса можно снимать в банке.<br />
</li>
<li>Добавлены магазины 24/7 с товарами для игроков.<br />
</li>
<li>Добавлена аммунация с покупкой оружия и брони.<br />
</li>
<li>Добавлены магазины одежды.<br />
</li>
<li>Добавлены автомастерские с ремонтом и покраской.<br />
</li>
<li>Добавлены АЗС и расход бензина у транспорта.<br />
</li>
</ul>
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Аренда и личный транспорт</span></span><ul class="mycode_list"><li>Добавлена аренда автомобилей.<br />
</li>
<li>Добавлен личный транспорт с покупкой в автосалоне или на моторынке.<br />
</li>
<li>Личную машину можно парковать у дома.<br />
</li>
<li>Добавлено меню личного автомобиля.<br />
</li>
<li>Бензин и состояние машины сохраняются.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Античит</span></span><ul class="mycode_list"><li>Добавлен серверный античит без клиентских плагинов.<br />
</li>
<li>Проверяются телепорты, скорость, полет, здоровье, броня, деньги и оружие.<br />
</li>
<li>Легитимные действия сервера учитываются отдельно, чтобы не наказывать честных игроков.<br />
</li>
<li>Исправлены ложные срабатывания в сейф-зонах и при падении с броней.<br />
</li>
<li>Ужесточены мелкие допуски по деньгам и здоровью.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Работа грузчика</span></span><ul class="mycode_list"><li>Добавлена работа грузчика на складе.<br />
</li>
<li>Игрок переносит груз между точками и получает оплату.<br />
</li>
<li>Добавлена сейф-зона склада.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Склады организаций</span></span><ul class="mycode_list"><li>Добавлены склады для государственных организаций, банд и мафий.<br />
</li>
<li>Можно класть и брать патроны, металл, наркотики и деньги по правилам организации.<br />
</li>
<li>У складов есть замок и отображение запасов.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Армия</span></span><ul class="mycode_list"><li>Добавлен цех патронов на заводе армии.<br />
</li>
<li>Добавлена доставка ящиков с патронами фургоном на базы силовых структур.<br />
</li>
<li>Банды могут рейдить ящики патронов на базе армии.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Больница</span></span><ul class="mycode_list"><li>Добавлена доставка медикаментов.<br />
</li>
<li>Добавлен набор врача и лечение игроков за оплату.<br />
</li>
<li>Добавлена медицинская карта персонажа.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Гетто</span></span><ul class="mycode_list"><li>Добавлен барыга Смоки с покупкой наркотиков.<br />
</li>
<li>Банды могут собирать оружие и продавать оружие и наркотики на своей территории.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Розыск и документы</span></span><ul class="mycode_list"><li>Добавлен уровень розыска со звездами.<br />
</li>
<li>Розыск выдается за убийства и действия полиции.<br />
</li>
<li>Добавлены команды выдачи и снятия розыска.<br />
</li>
<li>Добавлен список розыскных и слежка.<br />
</li>
<li>Добавлен военный билет.<br />
</li>
<li>Добавлена медицинская карта.<br />
</li>
<li>Показ документов другому игроку идет через согласие.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Семьи игроков</span></span><ul class="mycode_list"><li>Добавлены семьи отдельно от банд и мафий.<br />
</li>
<li>Семью можно создать, приглашать и управлять составом.<br />
</li>
<li>Добавлены ранги, дом семьи, склад и лечение в семье.<br />
</li>
<li>Добавлен семейный чат.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Согласие Y и N</span></span><ul class="mycode_list"><li>Важные предложения другому игроку подтверждаются клавишами Y или N.<br />
</li>
<li>Так работают показ документов, приглашения и часть сделок.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Голод и телефон</span></span><ul class="mycode_list"><li>Добавлена шкала голода.<br />
</li>
<li>Можно покупать еду на улице и в магазинах.<br />
</li>
<li>Добавлен мобильный телефон.<br />
</li>
<li>Объявления через телефон работают вместе с радиоцентром.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">GPS и меню игрока</span></span><ul class="mycode_list"><li>Команда /help убрана. Список команд открывается через /mn.<br />
</li>
<li>Игровая статистика открывается через /mn.<br />
</li>
<li>В GPS добавлены новые точки, в том числе по работе и организациям.<br />
</li>
<li>Пункты меню пронумерованы.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Полиция и FBI</span></span><ul class="mycode_list"><li>Добавлены наручники и снятие наручников.<br />
</li>
<li>Можно посадить задержанного в машину.<br />
</li>
<li>Добавлен арест у участка с посадкой в тюрьму.<br />
</li>
<li>Добавлены обыск и изъятие вещей.<br />
</li>
<li>FBI может увольнять сотрудников госструктур.<br />
</li>
<li>Водитель может выкинуть пассажира из машины.<br />
</li>
<li>При выходе из игры в наручниках игрок попадает в тюрьму.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Работы</span></span><ul class="mycode_list"><li>Добавлена биржа труда в мэрии.<br />
</li>
<li>Добавлена работа водителя автобуса.<br />
</li>
<li>У автобуса есть маршрут, остановки, плата за проезд и оплата рейса.<br />
</li>
<li>В GPS есть метка для автобусной работы.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Payday</span></span><ul class="mycode_list"><li>Члены банд получают надбавку к зарплате за каждую контролируемую территорию.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Чат и эмоции</span></span><ul class="mycode_list"><li>В чате можно быстро показать эмоцию скобками и символами.<br />
</li>
<li>Над головой появляется подпись, как у отыгровки.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Маски и анимации</span></span><ul class="mycode_list"><li>Добавлены маски с покупкой в магазине.<br />
</li>
<li>Полиция может сорвать маску.<br />
</li>
<li>Добавлено меню анимаций.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Админка</span></span><ul class="mycode_list"><li>Добавлены телепорты к игроку и игрока к себе.<br />
</li>
<li>Добавлен респавн игрока.<br />
</li>
<li>Добавлен просмотр статистики другого игрока.<br />
</li>
<li>Добавлено изменение уровня администратора.<br />
</li>
<li>Добавлены вспомогательные команды для домов, бизнесов и семей.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Прочее</span></span><ul class="mycode_list"><li>Добавлен поиск игроков онлайн по нику или ID.<br />
</li>
<li>Можно передать наличные рядом стоящему игроку.<br />
</li>
<li>Добавлены списки онлайн состава организации и лидеров.<br />
</li>
<li>Для транспорта организаций увеличено время автореспавна до 30 минут.<br />
</li>
<li>Деньги в интерфейсе отображаются удобнее, с пробелами.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Как запустить проект</span></span><ul class="mycode_list"><li>Нужен установленный <span style="font-weight: bold;" class="mycode_b">Node.js</span>.<br />
</li>
<li>Нужна пустая база данных <span style="font-weight: bold;" class="mycode_b">MySQL</span>. Можно поднять через <span style="font-weight: bold;" class="mycode_b">OSPanel</span> или другой локальный <span style="font-weight: bold;" class="mycode_b">MySQL</span>.<br />
</li>
<li>Вручную импортировать <span style="font-weight: bold;" class="mycode_b">SQL</span> не нужно. При первом запуске сервер сам создаст таблицы и заполнит стартовые данные.<br />
</li>
<li>В корне создайте файл <span style="font-weight: bold;" class="mycode_b">.env</span> по примеру <span style="font-weight: bold;" class="mycode_b">.env.example</span> и укажите доступ к базе.<br />
</li>
<li>В папке resources выполните <span style="font-weight: bold;" class="mycode_b">npm install</span>.<br />
</li>
<li>В корне проекта выполните <span style="font-weight: bold;" class="mycode_b">npm run build</span>.<br />
</li>
<li>Запуск сервера из корня командой <span style="font-weight: bold;" class="mycode_b">npm run start</span>.<br />
</li>
<li>После правок кода снова сделайте <span style="font-weight: bold;" class="mycode_b">npm run build</span> и перезапустите сервер.<br />
</li>
<li>Для проверки <span style="font-weight: bold;" class="mycode_b">unit-тестов</span> в папке resources выполните <span style="font-weight: bold;" class="mycode_b">npm test</span>.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Скачать</span></span><ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/1f7yUT2s-XczavhGa_2EY7ZGKoicuWCHd/" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/1f7yUT2s...KoicuWCHd/</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.ru/d/Xj-E4h52YDoIqA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/Xj-E4h52YDoIqA</a><br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: medium;" class="mycode_size">Скиншоты</span></span><ul class="mycode_list"><li>Imgur: <a href="https://imgur.com/a/O5kRu9f" target="_blank" rel="noopener" class="mycode_url">https://imgur.com/a/O5kRu9f</a><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[SA-MP RP] Last Roleplay — Staff Recruitment | Join us before launch!]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6543</link>
			<pubDate>Sat, 03 Oct 2026 18:01:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8507">shankos</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6543</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://i.imgur.com/cANBSgV.jpeg" loading="lazy"  alt="[Image: cANBSgV.jpeg]" class="mycode_img" /><br />
<br />
<br />
<br />
👑 <span style="font-weight: bold;" class="mycode_b">LAST ROLEPLAY — WE'RE BUILDING OUR STAFF TEAM!</span> 👑<br />
<span style="font-weight: bold;" class="mycode_b">Last Roleplay</span> is an upcoming SA-MP Roleplay server built around the classic San Andreas RP experience — with a strong focus on serious roleplay, community, progression, factions, businesses, properties and a living player-driven economy.<br />
We're currently looking for <span style="font-weight: bold;" class="mycode_b">motivated people who want to join us from the beginning and help build the community.</span><br />
🔎 <span style="font-weight: bold;" class="mycode_b">WE'RE LOOKING FOR:</span><br />
🛡️ <span style="font-weight: bold;" class="mycode_b">Staff Members / Administrators</span><br />
💬 <span style="font-weight: bold;" class="mycode_b">Helpers / Community Support</span><br />
🚔 <span style="font-weight: bold;" class="mycode_b">Faction Leaders &amp; Members</span><br />
🧪 <span style="font-weight: bold;" class="mycode_b">Beta Testers</span><br />
📢 <span style="font-weight: bold;" class="mycode_b">Community &amp; Advertising Team</span><br />
We're not looking for people who simply want an admin rank. We're looking for <span style="font-weight: bold;" class="mycode_b">mature, active and reliable people</span> who genuinely want to contribute, help new players, test systems, provide feedback and be part of building a long-term RP community.<br />
⚙️ <span style="font-weight: bold;" class="mycode_b">WHAT LAST ROLEPLAY OFFERS:</span><br />
• Advanced faction system<br />
• Police, Government &amp; criminal organizations<br />
• Houses &amp; furniture system<br />
• Businesses &amp; player economy<br />
• Personal vehicle ownership<br />
• Civilian jobs — Trucker, Garbage Man, Street Sweeper, Farmer, Pizza Delivery &amp; more<br />
• Materials &amp; crafting systems<br />
• Weapons, ammunition &amp; inventory systems<br />
• Faction warehouses &amp; shipments<br />
• Character progression<br />
• Criminal and legal roleplay opportunities<br />
• Classic Los Santos atmosphere<br />
• Many more systems already implemented and more under development<br />
🌆 <span style="font-weight: bold;" class="mycode_b">THE PROJECT</span><br />
The server is currently being actively developed and tested. This is your opportunity to join <span style="font-weight: bold;" class="mycode_b">before the official launch</span>, help shape the server and potentially become an important part of the Last Roleplay team.<br />
Experience with SA-MP Roleplay is appreciated, but what matters most is <span style="font-weight: bold;" class="mycode_b">maturity, activity, teamwork and willingness to contribute.</span><br />
<span style="font-weight: bold;" class="mycode_b">No staff positions are guaranteed simply for joining — positions are earned through trust, activity and contribution.</span><br />
━━━━━━━━━━━━━━━━━━━━━<br />
🎮 <span style="font-weight: bold;" class="mycode_b">SERVER IP:</span><br />
lastroleplay.centnodes.cloud:40071(Currently locked, staff recruiting.)<br />
💬 <span style="font-weight: bold;" class="mycode_b">JOIN OUR DISCORD:</span><br />
<a href="https://discord.gg/EKkBNDdw?utm_source=chatgpt.com" target="_blank" rel="noopener" class="mycode_url">discord.gg/EKkBNDdw</a><br />
━━━━━━━━━━━━━━━━━━━━━<br />
👑 <span style="font-weight: bold;" class="mycode_b">LAST ROLEPLAY</span><br />
<span style="font-weight: bold;" class="mycode_b">Your Character. Your Decisions. Your Story.</span><br />
<span style="font-weight: bold;" class="mycode_b">Los Santos awaits you.</span><br />
If you're interested in helping us build something great, join the Discord and introduce yourself.</div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><img src="https://i.imgur.com/cANBSgV.jpeg" loading="lazy"  alt="[Image: cANBSgV.jpeg]" class="mycode_img" /><br />
<br />
<br />
<br />
👑 <span style="font-weight: bold;" class="mycode_b">LAST ROLEPLAY — WE'RE BUILDING OUR STAFF TEAM!</span> 👑<br />
<span style="font-weight: bold;" class="mycode_b">Last Roleplay</span> is an upcoming SA-MP Roleplay server built around the classic San Andreas RP experience — with a strong focus on serious roleplay, community, progression, factions, businesses, properties and a living player-driven economy.<br />
We're currently looking for <span style="font-weight: bold;" class="mycode_b">motivated people who want to join us from the beginning and help build the community.</span><br />
🔎 <span style="font-weight: bold;" class="mycode_b">WE'RE LOOKING FOR:</span><br />
🛡️ <span style="font-weight: bold;" class="mycode_b">Staff Members / Administrators</span><br />
💬 <span style="font-weight: bold;" class="mycode_b">Helpers / Community Support</span><br />
🚔 <span style="font-weight: bold;" class="mycode_b">Faction Leaders &amp; Members</span><br />
🧪 <span style="font-weight: bold;" class="mycode_b">Beta Testers</span><br />
📢 <span style="font-weight: bold;" class="mycode_b">Community &amp; Advertising Team</span><br />
We're not looking for people who simply want an admin rank. We're looking for <span style="font-weight: bold;" class="mycode_b">mature, active and reliable people</span> who genuinely want to contribute, help new players, test systems, provide feedback and be part of building a long-term RP community.<br />
⚙️ <span style="font-weight: bold;" class="mycode_b">WHAT LAST ROLEPLAY OFFERS:</span><br />
• Advanced faction system<br />
• Police, Government &amp; criminal organizations<br />
• Houses &amp; furniture system<br />
• Businesses &amp; player economy<br />
• Personal vehicle ownership<br />
• Civilian jobs — Trucker, Garbage Man, Street Sweeper, Farmer, Pizza Delivery &amp; more<br />
• Materials &amp; crafting systems<br />
• Weapons, ammunition &amp; inventory systems<br />
• Faction warehouses &amp; shipments<br />
• Character progression<br />
• Criminal and legal roleplay opportunities<br />
• Classic Los Santos atmosphere<br />
• Many more systems already implemented and more under development<br />
🌆 <span style="font-weight: bold;" class="mycode_b">THE PROJECT</span><br />
The server is currently being actively developed and tested. This is your opportunity to join <span style="font-weight: bold;" class="mycode_b">before the official launch</span>, help shape the server and potentially become an important part of the Last Roleplay team.<br />
Experience with SA-MP Roleplay is appreciated, but what matters most is <span style="font-weight: bold;" class="mycode_b">maturity, activity, teamwork and willingness to contribute.</span><br />
<span style="font-weight: bold;" class="mycode_b">No staff positions are guaranteed simply for joining — positions are earned through trust, activity and contribution.</span><br />
━━━━━━━━━━━━━━━━━━━━━<br />
🎮 <span style="font-weight: bold;" class="mycode_b">SERVER IP:</span><br />
lastroleplay.centnodes.cloud:40071(Currently locked, staff recruiting.)<br />
💬 <span style="font-weight: bold;" class="mycode_b">JOIN OUR DISCORD:</span><br />
<a href="https://discord.gg/EKkBNDdw?utm_source=chatgpt.com" target="_blank" rel="noopener" class="mycode_url">discord.gg/EKkBNDdw</a><br />
━━━━━━━━━━━━━━━━━━━━━<br />
👑 <span style="font-weight: bold;" class="mycode_b">LAST ROLEPLAY</span><br />
<span style="font-weight: bold;" class="mycode_b">Your Character. Your Decisions. Your Story.</span><br />
<span style="font-weight: bold;" class="mycode_b">Los Santos awaits you.</span><br />
If you're interested in helping us build something great, join the Discord and introduce yourself.</div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS (FiveM-RP)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6480</link>
			<pubDate>Wed, 30 Sep 2026 19:48:55 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8492">XxASxX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6480</guid>
			<description><![CDATA[<img src="https://i.postimg.cc/tTpqwPBg/Divulga-Space12Essa-Ficou-Eim.png" loading="lazy"  alt="[Image: Divulga-Space12Essa-Ficou-Eim.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 MUITO MAIS QUE UM SERVIDOR DE DRIFT</span></span><br />
<br />
<br />
O <span style="font-weight: bold;" class="mycode_b">Space Drift</span> é um servidor brasileiro de SA-MP desenvolvido do zero,<br />
em constante evolução desde 2015, reunindo diferentes estilos de gameplay<br />
dentro de uma única Gamemode.<br />
<br />
Aqui você não fica preso a um único modo de jogo.<br />
<br />
Quer fazer <span style="font-weight: bold;" class="mycode_b">Drift</span>? Pegue seu carro e vá para as pistas.<br />
Quer fugir da polícia? Entre no <span style="font-weight: bold;" class="mycode_b">CopChase</span> ou desafie alguém no <span style="font-weight: bold;" class="mycode_b">X1 Fuga</span>.<br />
Quer trocar tiro? Entre no <span style="font-weight: bold;" class="mycode_b">DeathMatch</span>, crie uma <span style="font-weight: bold;" class="mycode_b">Arena</span> ou dispute uma partida de <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span>.<br />
Prefere veículos? Temos <span style="font-weight: bold;" class="mycode_b">Race, Derby, Shooter, WarPlane</span> e muito mais.<br />
Quer uma experiência mais livre? Entre no nosso modo <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers (FiveM-RP)</span>.<br />
<br />
🔥 Sistemas próprios<br />
🏆 Rankings competitivos<br />
🌎 Mundo livre<br />
🎮 Diversos minijogos<br />
🏎️ Drift, corridas e perseguições<br />
🔫 Arenas, DM e Counter-Strike<br />
🚔 Polícia vs Bandidos<br />
👥 Clãs e Facções<br />
🇧🇷 Servidor Brasileiro<br />
📶 Ping médio: <span style="font-weight: bold;" class="mycode_b">20~60ms</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🌐 CONECTE-SE AO SPACE DRIFT</span></span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site / UCP:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🖥️ ACESSE NOSSA UCP</span></span><br />
<br />
Nossa UCP reúne todas as informações da sua conta em um só lugar.<br />
Acompanhe suas estatísticas, rankings, veículos, dados da conta,<br />
abra <span style="font-weight: bold;" class="mycode_b">tickets de suporte</span>, tire suas dúvidas e muito mais!<br />
<br />
🎁 <span style="font-weight: bold;" class="mycode_b">Ainda não joga? Comece se registrando pela UCP e ganhe um bônus!</span><br />
<br />
🔗 <span style="font-weight: bold;" class="mycode_b">Acesse:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 MINIJOGOS</span></span><br />
<span style="font-style: italic;" class="mycode_i">Escolha o modo que quiser e entre na disputa!</span><br />
</div>
<br />
O Space Drift possui diversos minijogos integrados diretamente à Gamemode.<br />
Cada modo possui suas próprias regras, objetivos e sistemas.<br />
<br />
<br />
✈️ <span style="font-weight: bold;" class="mycode_b">WarPlane</span><br />
Entre em combates aéreos utilizando aviões (Rustler) podendo equipa-lo com /missil além de sua metralhadora!<br />
Dispute contra outros jogadores.<br />
<br />
🚓 <span style="font-weight: bold;" class="mycode_b">CopChase</span><br />
Fuja das viaturas, sobreviva à perseguição e tente despistar seus perseguidores.<br />
<br />
🚀 <span style="font-weight: bold;" class="mycode_b">Shooter</span><br />
Combates utilizando veículos equipados com misseis e opção de pular para desviar e destruir seus adversários.<br />
<br />
💣 <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span><br />
Partidas de CT vs TR com sistemas próprios inspirados no clássico Counter-Strike 1.6.<br />
<br />
🏎️ <span style="font-weight: bold;" class="mycode_b">Race</span><br />
Corridas competitivas para descobrir quem realmente domina o volante tendo sistema de ranking geral e por pista.<br />
<br />
💥 <span style="font-weight: bold;" class="mycode_b">Derby</span><br />
Destrua seus adversários e tente ser o último sobrevivente.<br />
<br />
🧱 <span style="font-weight: bold;" class="mycode_b">Fallout</span><br />
As plataformas desaparecem durante a partida. Continue vivo até ser o último jogador.<br />
<br />
🚔 <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers / FiveM-RP</span><br />
Polícia e bandidos em um mundo aberto com sistemas próprios.<br />
<br />
<br />
🏆 <span style="font-weight: bold;" class="mycode_b">Os modos possuem estatísticas e rankings para você disputar com outros jogadores!</span><br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">💣 COUNTER-STRIKE</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🔵 CT vs 🔴 TR — O clássico dentro do SA-MP</span><br />
</div>
<br />
💣 Plantar e defusar bomba<br />
🔵 Counter-Terrorists vs Terrorists<br />
🎯 Sistema de HeadShot<br />
⛑️ Sistema de capacete<br />
🧰 Defuse Kit<br />
🗺️ Diferentes mapas<br />
🔫 Sistema próprio de armas<br />
📊 Kills, Deaths e HeadShots em 🏆 Ranking competitivo<br />
<br />
<br />
Entre para sua equipe, cumpra o objetivo da rodada<br />
e tente dominar o ranking.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚓 FUGAS &amp; PERSEGUIÇÕES</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🏎️ ACELERE • DESPISTE • SOBREVIVA</span><br />
</div>
<br />
Se você gosta de perseguições, existem diferentes maneiras de colocar<br />
suas habilidades ao volante à prova.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 COPCHASE</span><br />
Tente cair como bandido e fugir de todos os policias, 1 fugitivo contra até 14 policiais.<br />
Podendo se render (/handsup), selecionar veículos de fuga e perseguição.<br />
Aonde caso o bandido atirar ou cair na agua é liberado disparos, caso contrario tente prende-lo em 8 minutos!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚔 X1 FUGA</span><br />
Desafie outro jogador diretamente para uma perseguição.<br />
Um jogador assume a fuga enquanto o adversário inicia a perseguição.<br />
O fugitivo precisa escapar até perder o contato visual,<br />
enquanto o perseguidor tenta impedir sua fuga.<br />
<br />
🎯 Selecione o adversário, 🚗 escolha um veículo e 💰 faça uma aposta!<br />
🏎️ Fugas em alta velocidade<br />
🚓 Perseguições entre jogadores<br />
💥 Destruição de veículos<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de fugas<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔫 ARENAS PERSONALIZÁVEIS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria partida e jogue do seu jeito.</span><br />
</div>
<br />
Não encontrou a partida que queria?<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria Arena.</span><br />
Configure diferentes opções e convide outros jogadores para participar.<br />
<br />
🎯 HeadShot  ON/OFF<br />
⚡ CBUG        ON/OFF<br />
🔫 Até 8 armas<br />
👥 Configuração de quantidade de jogadores 2-12<br />
🔐 Crie salas com senha<br />
🎮 Diferentes estilos de combate<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de arenas<br />
<br />
Você escolhe as configurações e monta sua própria batalha.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 DRIFT &amp; MUNDO LIVRE</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pegue seu carro e aproveite o mapa.</span><br />
</div>
<br />
O nome <span style="font-weight: bold;" class="mycode_b">Space Drift</span> não existe por acaso.<br />
O servidor mantém suas raízes no Drift de onde começou e oferece liberdade para<br />
pegar seu veículo, encontrar outros jogadores e explorar diversas áreas.<br />
<br />
🏎️ Áreas exclusivas para Drift<br />
🚗 Criação livre de veículos<br />
🏆 Drift Points<br />
⚔️ X1 Drift por pontuação<br />
🌎 Diversos teleportes<br />
🏁 MegaCorridas<br />
✈️ SkyDive<br />
🔫 Mundo DeathMatch<br />
🎯 X1 Duelo<br />
🛠️ Treinamento BPM<br />
🚧 Cones e pregos para treinamentos<br />
🛡️ Clãs configuráveis para futuras batalhas de drift entre outros<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚔 COP vs ROBBERS | FiveM-RP</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 POLÍCIA vs BANDIDOS 🔫</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Um mundo aberto (Los Santos) dentro do Space Drift para quem prefere<br />
uma experiência diferente dos minijogos tradicionais.</span><br />
</div>
<br />
Escolha seu lado e participe de um sistema completo de<br />
<span style="font-weight: bold;" class="mycode_b">Polícia vs Bandidos</span> integrado ao servidor.<br />
<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">GangWar</span> — Guerra entre Cops e Robbers por território e pontuação<br />
🌿 Plantação e tráfico de maconha<br />
🔫 Drop de armas ao morrer<br />
🎯 HeadShot + sistema de capacete<br />
🚨 Sistema de níveis de procurado<br />
🚓 Perseguição de criminosos<br />
🚔 Algemar e prender bandidos em cadeia, aonde pode ser 💣 explodida por criminosos. Cuidado!<br />
🔗 Amarrar, vendar e sequestrar escolhendo valores entre score e dinheiro!<br />
💰 Roube Bancos, caixas eletrônicos, 🔐 cofres, 🚚Carro Forte, NPCs de loja (Fica com mochila em todos roubos somando dinheiro/score até o tempo seguro finalizar)<br />
🏥 Hospital - Cuidado para não morrer e perder seu tempo no hospital, preze o seu cuidado!<br />
🩸 Sistema de jogador agonizando ao morrer a 1º vez com um amigo podendo salva-lo e marcando todos os ferimentos.<br />
🩸 Sistema de mancar ao levar tiro na perna, tendo que ir até o hospital ou usar kit para voltar andar normalmente.<br />
👥 Facções - Podendo criar | Editar cargos | Criar armario para guardar Armas/Skins/Colete entre outros | Comprar veículos para sua fac | Dominar territórios.<br />
🛒 Lojas exclusivas por profissão/facção<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">🚨 Seja policial ou um criminoso.<br />
</span><br />
</div>
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 COMPITA PELOS RANKINGS</span></span><br />
</div>
<br />
Não basta apenas jogar.<br />
Diversas atividades do Space Drift possuem estatísticas próprias,<br />
permitindo acompanhar sua evolução e competir com outros jogadores.<br />
<br />
🏎️ X1 Drift — Vitórias / Derrotas<br />
💨 Drift Points<br />
🚓 X1 Fuga — Vitórias / Derrotas<br />
🎯 Duelos — Vitórias / Derrotas<br />
🔫 DeathMatch — Kills / Deaths<br />
🚔 CopChase — Fugas<br />
🏁 Race — Vitórias / Derrotas<br />
💥 Derby — Vitórias / Derrotas / K/D<br />
✈️ WarPlane — Vitórias / Derrotas<br />
🚀 Shooter — Vitórias / Derrotas / K/D<br />
🧱 Fallout — Vitórias / Derrotas<br />
💣 Counter-Strike — HeadShots / K/D / HS<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">Arenas</span> — Kills / Deaths<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">👥 ESTAMOS ATUALIZANDO NOSSA COMUNIDADE</span></span><br />
</div>
<br />
<br />
O Space Drift está voltando a receber melhorias e novos conteúdos.<br />
<br />
Estamos procurando jogadores que queiram <span style="font-weight: bold;" class="mycode_b">jogar, testar,<br />
encontrar bugs, dar sugestões e participar do desenvolvimento do servidor.</span><br />
<br />
Queremos construir novamente uma comunidade ativa,<br />
ouvindo também as ideias de quem realmente está jogando.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎁 TRAGA 10 JOGADORES ATIVOS</span></span><br />
Traga <span style="font-weight: bold;" class="mycode_b">10 jogadores que permaneçam ativos na comunidade</span><br />
e iremos desenvolver ou investir em<br />
<span style="font-weight: bold;" class="mycode_b">um minijogo escolhido por vocês!</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⭐ VAGAS PARA EQUIPE ADMINISTRATIVA ⭐</span></span><br />
<br />
Estamos procurando jogadores para ajudar nos testes,<br />
na comunidade e no aprimoramento da Gamemode.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Participe, ajude o servidor a crescer e tenha a oportunidade<br />
de conquistar seu espaço na equipe administrativa.</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔥 ESCOLHA O MODO • ENTRE NA DISPUTA • DOMINE OS RANKINGS 🔥</span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site/UCP:</span> <a href="https://spacedrift.online/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/</a><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 NOS VEMOS DENTRO DO JOGO!</span></span>]]></description>
			<content:encoded><![CDATA[<img src="https://i.postimg.cc/tTpqwPBg/Divulga-Space12Essa-Ficou-Eim.png" loading="lazy"  alt="[Image: Divulga-Space12Essa-Ficou-Eim.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 MUITO MAIS QUE UM SERVIDOR DE DRIFT</span></span><br />
<br />
<br />
O <span style="font-weight: bold;" class="mycode_b">Space Drift</span> é um servidor brasileiro de SA-MP desenvolvido do zero,<br />
em constante evolução desde 2015, reunindo diferentes estilos de gameplay<br />
dentro de uma única Gamemode.<br />
<br />
Aqui você não fica preso a um único modo de jogo.<br />
<br />
Quer fazer <span style="font-weight: bold;" class="mycode_b">Drift</span>? Pegue seu carro e vá para as pistas.<br />
Quer fugir da polícia? Entre no <span style="font-weight: bold;" class="mycode_b">CopChase</span> ou desafie alguém no <span style="font-weight: bold;" class="mycode_b">X1 Fuga</span>.<br />
Quer trocar tiro? Entre no <span style="font-weight: bold;" class="mycode_b">DeathMatch</span>, crie uma <span style="font-weight: bold;" class="mycode_b">Arena</span> ou dispute uma partida de <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span>.<br />
Prefere veículos? Temos <span style="font-weight: bold;" class="mycode_b">Race, Derby, Shooter, WarPlane</span> e muito mais.<br />
Quer uma experiência mais livre? Entre no nosso modo <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers (FiveM-RP)</span>.<br />
<br />
🔥 Sistemas próprios<br />
🏆 Rankings competitivos<br />
🌎 Mundo livre<br />
🎮 Diversos minijogos<br />
🏎️ Drift, corridas e perseguições<br />
🔫 Arenas, DM e Counter-Strike<br />
🚔 Polícia vs Bandidos<br />
👥 Clãs e Facções<br />
🇧🇷 Servidor Brasileiro<br />
📶 Ping médio: <span style="font-weight: bold;" class="mycode_b">20~60ms</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🌐 CONECTE-SE AO SPACE DRIFT</span></span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site / UCP:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🖥️ ACESSE NOSSA UCP</span></span><br />
<br />
Nossa UCP reúne todas as informações da sua conta em um só lugar.<br />
Acompanhe suas estatísticas, rankings, veículos, dados da conta,<br />
abra <span style="font-weight: bold;" class="mycode_b">tickets de suporte</span>, tire suas dúvidas e muito mais!<br />
<br />
🎁 <span style="font-weight: bold;" class="mycode_b">Ainda não joga? Comece se registrando pela UCP e ganhe um bônus!</span><br />
<br />
🔗 <span style="font-weight: bold;" class="mycode_b">Acesse:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 MINIJOGOS</span></span><br />
<span style="font-style: italic;" class="mycode_i">Escolha o modo que quiser e entre na disputa!</span><br />
</div>
<br />
O Space Drift possui diversos minijogos integrados diretamente à Gamemode.<br />
Cada modo possui suas próprias regras, objetivos e sistemas.<br />
<br />
<br />
✈️ <span style="font-weight: bold;" class="mycode_b">WarPlane</span><br />
Entre em combates aéreos utilizando aviões (Rustler) podendo equipa-lo com /missil além de sua metralhadora!<br />
Dispute contra outros jogadores.<br />
<br />
🚓 <span style="font-weight: bold;" class="mycode_b">CopChase</span><br />
Fuja das viaturas, sobreviva à perseguição e tente despistar seus perseguidores.<br />
<br />
🚀 <span style="font-weight: bold;" class="mycode_b">Shooter</span><br />
Combates utilizando veículos equipados com misseis e opção de pular para desviar e destruir seus adversários.<br />
<br />
💣 <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span><br />
Partidas de CT vs TR com sistemas próprios inspirados no clássico Counter-Strike 1.6.<br />
<br />
🏎️ <span style="font-weight: bold;" class="mycode_b">Race</span><br />
Corridas competitivas para descobrir quem realmente domina o volante tendo sistema de ranking geral e por pista.<br />
<br />
💥 <span style="font-weight: bold;" class="mycode_b">Derby</span><br />
Destrua seus adversários e tente ser o último sobrevivente.<br />
<br />
🧱 <span style="font-weight: bold;" class="mycode_b">Fallout</span><br />
As plataformas desaparecem durante a partida. Continue vivo até ser o último jogador.<br />
<br />
🚔 <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers / FiveM-RP</span><br />
Polícia e bandidos em um mundo aberto com sistemas próprios.<br />
<br />
<br />
🏆 <span style="font-weight: bold;" class="mycode_b">Os modos possuem estatísticas e rankings para você disputar com outros jogadores!</span><br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">💣 COUNTER-STRIKE</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🔵 CT vs 🔴 TR — O clássico dentro do SA-MP</span><br />
</div>
<br />
💣 Plantar e defusar bomba<br />
🔵 Counter-Terrorists vs Terrorists<br />
🎯 Sistema de HeadShot<br />
⛑️ Sistema de capacete<br />
🧰 Defuse Kit<br />
🗺️ Diferentes mapas<br />
🔫 Sistema próprio de armas<br />
📊 Kills, Deaths e HeadShots em 🏆 Ranking competitivo<br />
<br />
<br />
Entre para sua equipe, cumpra o objetivo da rodada<br />
e tente dominar o ranking.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚓 FUGAS &amp; PERSEGUIÇÕES</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🏎️ ACELERE • DESPISTE • SOBREVIVA</span><br />
</div>
<br />
Se você gosta de perseguições, existem diferentes maneiras de colocar<br />
suas habilidades ao volante à prova.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 COPCHASE</span><br />
Tente cair como bandido e fugir de todos os policias, 1 fugitivo contra até 14 policiais.<br />
Podendo se render (/handsup), selecionar veículos de fuga e perseguição.<br />
Aonde caso o bandido atirar ou cair na agua é liberado disparos, caso contrario tente prende-lo em 8 minutos!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚔 X1 FUGA</span><br />
Desafie outro jogador diretamente para uma perseguição.<br />
Um jogador assume a fuga enquanto o adversário inicia a perseguição.<br />
O fugitivo precisa escapar até perder o contato visual,<br />
enquanto o perseguidor tenta impedir sua fuga.<br />
<br />
🎯 Selecione o adversário, 🚗 escolha um veículo e 💰 faça uma aposta!<br />
🏎️ Fugas em alta velocidade<br />
🚓 Perseguições entre jogadores<br />
💥 Destruição de veículos<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de fugas<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔫 ARENAS PERSONALIZÁVEIS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria partida e jogue do seu jeito.</span><br />
</div>
<br />
Não encontrou a partida que queria?<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria Arena.</span><br />
Configure diferentes opções e convide outros jogadores para participar.<br />
<br />
🎯 HeadShot  ON/OFF<br />
⚡ CBUG        ON/OFF<br />
🔫 Até 8 armas<br />
👥 Configuração de quantidade de jogadores 2-12<br />
🔐 Crie salas com senha<br />
🎮 Diferentes estilos de combate<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de arenas<br />
<br />
Você escolhe as configurações e monta sua própria batalha.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 DRIFT &amp; MUNDO LIVRE</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pegue seu carro e aproveite o mapa.</span><br />
</div>
<br />
O nome <span style="font-weight: bold;" class="mycode_b">Space Drift</span> não existe por acaso.<br />
O servidor mantém suas raízes no Drift de onde começou e oferece liberdade para<br />
pegar seu veículo, encontrar outros jogadores e explorar diversas áreas.<br />
<br />
🏎️ Áreas exclusivas para Drift<br />
🚗 Criação livre de veículos<br />
🏆 Drift Points<br />
⚔️ X1 Drift por pontuação<br />
🌎 Diversos teleportes<br />
🏁 MegaCorridas<br />
✈️ SkyDive<br />
🔫 Mundo DeathMatch<br />
🎯 X1 Duelo<br />
🛠️ Treinamento BPM<br />
🚧 Cones e pregos para treinamentos<br />
🛡️ Clãs configuráveis para futuras batalhas de drift entre outros<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚔 COP vs ROBBERS | FiveM-RP</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 POLÍCIA vs BANDIDOS 🔫</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Um mundo aberto (Los Santos) dentro do Space Drift para quem prefere<br />
uma experiência diferente dos minijogos tradicionais.</span><br />
</div>
<br />
Escolha seu lado e participe de um sistema completo de<br />
<span style="font-weight: bold;" class="mycode_b">Polícia vs Bandidos</span> integrado ao servidor.<br />
<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">GangWar</span> — Guerra entre Cops e Robbers por território e pontuação<br />
🌿 Plantação e tráfico de maconha<br />
🔫 Drop de armas ao morrer<br />
🎯 HeadShot + sistema de capacete<br />
🚨 Sistema de níveis de procurado<br />
🚓 Perseguição de criminosos<br />
🚔 Algemar e prender bandidos em cadeia, aonde pode ser 💣 explodida por criminosos. Cuidado!<br />
🔗 Amarrar, vendar e sequestrar escolhendo valores entre score e dinheiro!<br />
💰 Roube Bancos, caixas eletrônicos, 🔐 cofres, 🚚Carro Forte, NPCs de loja (Fica com mochila em todos roubos somando dinheiro/score até o tempo seguro finalizar)<br />
🏥 Hospital - Cuidado para não morrer e perder seu tempo no hospital, preze o seu cuidado!<br />
🩸 Sistema de jogador agonizando ao morrer a 1º vez com um amigo podendo salva-lo e marcando todos os ferimentos.<br />
🩸 Sistema de mancar ao levar tiro na perna, tendo que ir até o hospital ou usar kit para voltar andar normalmente.<br />
👥 Facções - Podendo criar | Editar cargos | Criar armario para guardar Armas/Skins/Colete entre outros | Comprar veículos para sua fac | Dominar territórios.<br />
🛒 Lojas exclusivas por profissão/facção<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">🚨 Seja policial ou um criminoso.<br />
</span><br />
</div>
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 COMPITA PELOS RANKINGS</span></span><br />
</div>
<br />
Não basta apenas jogar.<br />
Diversas atividades do Space Drift possuem estatísticas próprias,<br />
permitindo acompanhar sua evolução e competir com outros jogadores.<br />
<br />
🏎️ X1 Drift — Vitórias / Derrotas<br />
💨 Drift Points<br />
🚓 X1 Fuga — Vitórias / Derrotas<br />
🎯 Duelos — Vitórias / Derrotas<br />
🔫 DeathMatch — Kills / Deaths<br />
🚔 CopChase — Fugas<br />
🏁 Race — Vitórias / Derrotas<br />
💥 Derby — Vitórias / Derrotas / K/D<br />
✈️ WarPlane — Vitórias / Derrotas<br />
🚀 Shooter — Vitórias / Derrotas / K/D<br />
🧱 Fallout — Vitórias / Derrotas<br />
💣 Counter-Strike — HeadShots / K/D / HS<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">Arenas</span> — Kills / Deaths<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">👥 ESTAMOS ATUALIZANDO NOSSA COMUNIDADE</span></span><br />
</div>
<br />
<br />
O Space Drift está voltando a receber melhorias e novos conteúdos.<br />
<br />
Estamos procurando jogadores que queiram <span style="font-weight: bold;" class="mycode_b">jogar, testar,<br />
encontrar bugs, dar sugestões e participar do desenvolvimento do servidor.</span><br />
<br />
Queremos construir novamente uma comunidade ativa,<br />
ouvindo também as ideias de quem realmente está jogando.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎁 TRAGA 10 JOGADORES ATIVOS</span></span><br />
Traga <span style="font-weight: bold;" class="mycode_b">10 jogadores que permaneçam ativos na comunidade</span><br />
e iremos desenvolver ou investir em<br />
<span style="font-weight: bold;" class="mycode_b">um minijogo escolhido por vocês!</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⭐ VAGAS PARA EQUIPE ADMINISTRATIVA ⭐</span></span><br />
<br />
Estamos procurando jogadores para ajudar nos testes,<br />
na comunidade e no aprimoramento da Gamemode.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Participe, ajude o servidor a crescer e tenha a oportunidade<br />
de conquistar seu espaço na equipe administrativa.</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔥 ESCOLHA O MODO • ENTRE NA DISPUTA • DOMINE OS RANKINGS 🔥</span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site/UCP:</span> <a href="https://spacedrift.online/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/</a><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 NOS VEMOS DENTRO DO JOGO!</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS (FiveM-RP)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6479</link>
			<pubDate>Tue, 29 Sep 2026 01:49:05 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8492">XxASxX</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6479</guid>
			<description><![CDATA[<img src="https://i.postimg.cc/tTpqwPBg/Divulga-Space12Essa-Ficou-Eim.png" loading="lazy"  alt="[Image: Divulga-Space12Essa-Ficou-Eim.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 MUITO MAIS QUE UM SERVIDOR DE DRIFT</span></span><br />
<br />
<br />
O <span style="font-weight: bold;" class="mycode_b">Space Drift</span> é um servidor brasileiro de SA-MP desenvolvido do zero,<br />
em constante evolução desde 2015, reunindo diferentes estilos de gameplay<br />
dentro de uma única Gamemode.<br />
<br />
Aqui você não fica preso a um único modo de jogo.<br />
<br />
Quer fazer <span style="font-weight: bold;" class="mycode_b">Drift</span>? Pegue seu carro e vá para as pistas.<br />
Quer fugir da polícia? Entre no <span style="font-weight: bold;" class="mycode_b">CopChase</span> ou desafie alguém no <span style="font-weight: bold;" class="mycode_b">X1 Fuga</span>.<br />
Quer trocar tiro? Entre no <span style="font-weight: bold;" class="mycode_b">DeathMatch</span>, crie uma <span style="font-weight: bold;" class="mycode_b">Arena</span> ou dispute uma partida de <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span>.<br />
Prefere veículos? Temos <span style="font-weight: bold;" class="mycode_b">Race, Derby, Shooter, WarPlane</span> e muito mais.<br />
Quer uma experiência mais livre? Entre no nosso modo <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers (FiveM-RP)</span>.<br />
<br />
🔥 Sistemas próprios<br />
🏆 Rankings competitivos<br />
🌎 Mundo livre<br />
🎮 Diversos minijogos<br />
🏎️ Drift, corridas e perseguições<br />
🔫 Arenas, DM e Counter-Strike<br />
🚔 Polícia vs Bandidos<br />
👥 Clãs e Facções<br />
🇧🇷 Servidor Brasileiro<br />
📶 Ping médio: <span style="font-weight: bold;" class="mycode_b">20~60ms</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🌐 CONECTE-SE AO SPACE DRIFT</span></span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site / UCP:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🖥️ ACESSE NOSSA UCP</span></span><br />
<br />
Nossa UCP reúne todas as informações da sua conta em um só lugar.<br />
Acompanhe suas estatísticas, rankings, veículos, dados da conta,<br />
abra <span style="font-weight: bold;" class="mycode_b">tickets de suporte</span>, tire suas dúvidas e muito mais!<br />
<br />
🎁 <span style="font-weight: bold;" class="mycode_b">Ainda não joga? Comece se registrando pela UCP e ganhe um bônus!</span><br />
<br />
🔗 <span style="font-weight: bold;" class="mycode_b">Acesse:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 MINIJOGOS</span></span><br />
<span style="font-style: italic;" class="mycode_i">Escolha o modo que quiser e entre na disputa!</span><br />
</div>
<br />
O Space Drift possui diversos minijogos integrados diretamente à Gamemode.<br />
Cada modo possui suas próprias regras, objetivos e sistemas.<br />
<br />
<br />
✈️ <span style="font-weight: bold;" class="mycode_b">WarPlane</span><br />
Entre em combates aéreos utilizando aviões (Rustler) podendo equipa-lo com /missil além de sua metralhadora!<br />
Dispute contra outros jogadores.<br />
<br />
🚓 <span style="font-weight: bold;" class="mycode_b">CopChase</span><br />
Fuja das viaturas, sobreviva à perseguição e tente despistar seus perseguidores.<br />
<br />
🚀 <span style="font-weight: bold;" class="mycode_b">Shooter</span><br />
Combates utilizando veículos equipados com misseis e opção de pular para desviar e destruir seus adversários.<br />
<br />
💣 <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span><br />
Partidas de CT vs TR com sistemas próprios inspirados no clássico Counter-Strike 1.6.<br />
<br />
🏎️ <span style="font-weight: bold;" class="mycode_b">Race</span><br />
Corridas competitivas para descobrir quem realmente domina o volante tendo sistema de ranking geral e por pista.<br />
<br />
💥 <span style="font-weight: bold;" class="mycode_b">Derby</span><br />
Destrua seus adversários e tente ser o último sobrevivente.<br />
<br />
🧱 <span style="font-weight: bold;" class="mycode_b">Fallout</span><br />
As plataformas desaparecem durante a partida. Continue vivo até ser o último jogador.<br />
<br />
🚔 <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers / FiveM-RP</span><br />
Polícia e bandidos em um mundo aberto com sistemas próprios.<br />
<br />
<br />
🏆 <span style="font-weight: bold;" class="mycode_b">Os modos possuem estatísticas e rankings para você disputar com outros jogadores!</span><br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">💣 COUNTER-STRIKE</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🔵 CT vs 🔴 TR — O clássico dentro do SA-MP</span><br />
</div>
<br />
💣 Plantar e defusar bomba<br />
🔵 Counter-Terrorists vs Terrorists<br />
🎯 Sistema de HeadShot<br />
⛑️ Sistema de capacete<br />
🧰 Defuse Kit<br />
🗺️ Diferentes mapas<br />
🔫 Sistema próprio de armas<br />
📊 Kills, Deaths e HeadShots em 🏆 Ranking competitivo<br />
<br />
<br />
Entre para sua equipe, cumpra o objetivo da rodada<br />
e tente dominar o ranking.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚓 FUGAS &amp; PERSEGUIÇÕES</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🏎️ ACELERE • DESPISTE • SOBREVIVA</span><br />
</div>
<br />
Se você gosta de perseguições, existem diferentes maneiras de colocar<br />
suas habilidades ao volante à prova.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 COPCHASE</span><br />
Tente cair como bandido e fugir de todos os policias, 1 fugitivo contra até 14 policiais.<br />
Podendo se render (/handsup), selecionar veículos de fuga e perseguição.<br />
Aonde caso o bandido atirar ou cair na agua é liberado disparos, caso contrario tente prende-lo em 8 minutos!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚔 X1 FUGA</span><br />
Desafie outro jogador diretamente para uma perseguição.<br />
Um jogador assume a fuga enquanto o adversário inicia a perseguição.<br />
O fugitivo precisa escapar até perder o contato visual,<br />
enquanto o perseguidor tenta impedir sua fuga.<br />
<br />
🎯 Selecione o adversário, 🚗 escolha um veículo e 💰 faça uma aposta!<br />
🏎️ Fugas em alta velocidade<br />
🚓 Perseguições entre jogadores<br />
💥 Destruição de veículos<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de fugas<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔫 ARENAS PERSONALIZÁVEIS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria partida e jogue do seu jeito.</span><br />
</div>
<br />
Não encontrou a partida que queria?<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria Arena.</span><br />
Configure diferentes opções e convide outros jogadores para participar.<br />
<br />
🎯 HeadShot  ON/OFF<br />
⚡ CBUG        ON/OFF<br />
🔫 Até 8 armas<br />
👥 Configuração de quantidade de jogadores 2-12<br />
🔐 Crie salas com senha<br />
🎮 Diferentes estilos de combate<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de arenas<br />
<br />
Você escolhe as configurações e monta sua própria batalha.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 DRIFT &amp; MUNDO LIVRE</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pegue seu carro e aproveite o mapa.</span><br />
</div>
<br />
O nome <span style="font-weight: bold;" class="mycode_b">Space Drift</span> não existe por acaso.<br />
O servidor mantém suas raízes no Drift de onde começou e oferece liberdade para<br />
pegar seu veículo, encontrar outros jogadores e explorar diversas áreas.<br />
<br />
🏎️ Áreas exclusivas para Drift<br />
🚗 Criação livre de veículos<br />
🏆 Drift Points<br />
⚔️ X1 Drift por pontuação<br />
🌎 Diversos teleportes<br />
🏁 MegaCorridas<br />
✈️ SkyDive<br />
🔫 Mundo DeathMatch<br />
🎯 X1 Duelo<br />
🛠️ Treinamento BPM<br />
🚧 Cones e pregos para treinamentos<br />
🛡️ Clãs configuráveis para futuras batalhas de drift entre outros<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚔 COP vs ROBBERS | FiveM-RP</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 POLÍCIA vs BANDIDOS 🔫</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Um mundo aberto (Los Santos) dentro do Space Drift para quem prefere<br />
uma experiência diferente dos minijogos tradicionais.</span><br />
</div>
<br />
Escolha seu lado e participe de um sistema completo de<br />
<span style="font-weight: bold;" class="mycode_b">Polícia vs Bandidos</span> integrado ao servidor.<br />
<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">GangWar</span> — Guerra entre Cops e Robbers por território e pontuação<br />
🌿 Plantação e tráfico de maconha<br />
🔫 Drop de armas ao morrer<br />
🎯 HeadShot + sistema de capacete<br />
🚨 Sistema de níveis de procurado<br />
🚓 Perseguição de criminosos<br />
🚔 Algemar e prender bandidos em cadeia, aonde pode ser 💣 explodida por criminosos. Cuidado!<br />
🔗 Amarrar, vendar e sequestrar escolhendo valores entre score e dinheiro!<br />
💰 Roube Bancos, caixas eletrônicos, 🔐 cofres, 🚚Carro Forte, NPCs de loja (Fica com mochila em todos roubos somando dinheiro/score até o tempo seguro finalizar)<br />
🏥 Hospital - Cuidado para não morrer e perder seu tempo no hospital, preze o seu cuidado!<br />
🩸 Sistema de jogador agonizando ao morrer a 1º vez com um amigo podendo salva-lo e marcando todos os ferimentos.<br />
🩸 Sistema de mancar ao levar tiro na perna, tendo que ir até o hospital ou usar kit para voltar andar normalmente.<br />
👥 Facções - Podendo criar | Editar cargos | Criar armario para guardar Armas/Skins/Colete entre outros | Comprar veículos para sua fac | Dominar territórios.<br />
🛒 Lojas exclusivas por profissão/facção<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">🚨 Seja policial ou um criminoso.<br />
</span><br />
</div>
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 COMPITA PELOS RANKINGS</span></span><br />
</div>
<br />
Não basta apenas jogar.<br />
Diversas atividades do Space Drift possuem estatísticas próprias,<br />
permitindo acompanhar sua evolução e competir com outros jogadores.<br />
<br />
🏎️ X1 Drift — Vitórias / Derrotas<br />
💨 Drift Points<br />
🚓 X1 Fuga — Vitórias / Derrotas<br />
🎯 Duelos — Vitórias / Derrotas<br />
🔫 DeathMatch — Kills / Deaths<br />
🚔 CopChase — Fugas<br />
🏁 Race — Vitórias / Derrotas<br />
💥 Derby — Vitórias / Derrotas / K/D<br />
✈️ WarPlane — Vitórias / Derrotas<br />
🚀 Shooter — Vitórias / Derrotas / K/D<br />
🧱 Fallout — Vitórias / Derrotas<br />
💣 Counter-Strike — HeadShots / K/D / HS<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">Arenas</span> — Kills / Deaths<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">👥 ESTAMOS ATUALIZANDO NOSSA COMUNIDADE</span></span><br />
</div>
<br />
<br />
O Space Drift está voltando a receber melhorias e novos conteúdos.<br />
<br />
Estamos procurando jogadores que queiram <span style="font-weight: bold;" class="mycode_b">jogar, testar,<br />
encontrar bugs, dar sugestões e participar do desenvolvimento do servidor.</span><br />
<br />
Queremos construir novamente uma comunidade ativa,<br />
ouvindo também as ideias de quem realmente está jogando.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎁 TRAGA 10 JOGADORES ATIVOS</span></span><br />
Traga <span style="font-weight: bold;" class="mycode_b">10 jogadores que permaneçam ativos na comunidade</span><br />
e iremos desenvolver ou investir em<br />
<span style="font-weight: bold;" class="mycode_b">um minijogo escolhido por vocês!</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⭐ VAGAS PARA EQUIPE ADMINISTRATIVA ⭐</span></span><br />
<br />
Estamos procurando jogadores para ajudar nos testes,<br />
na comunidade e no aprimoramento da Gamemode.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Participe, ajude o servidor a crescer e tenha a oportunidade<br />
de conquistar seu espaço na equipe administrativa.</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔥 ESCOLHA O MODO • ENTRE NA DISPUTA • DOMINE OS RANKINGS 🔥</span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site/UCP:</span> <a href="https://spacedrift.online/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/</a><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 NOS VEMOS DENTRO DO JOGO!</span></span>]]></description>
			<content:encoded><![CDATA[<img src="https://i.postimg.cc/tTpqwPBg/Divulga-Space12Essa-Ficou-Eim.png" loading="lazy"  alt="[Image: Divulga-Space12Essa-Ficou-Eim.png]" class="mycode_img" /><br />
<br />
<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 MUITO MAIS QUE UM SERVIDOR DE DRIFT</span></span><br />
<br />
<br />
O <span style="font-weight: bold;" class="mycode_b">Space Drift</span> é um servidor brasileiro de SA-MP desenvolvido do zero,<br />
em constante evolução desde 2015, reunindo diferentes estilos de gameplay<br />
dentro de uma única Gamemode.<br />
<br />
Aqui você não fica preso a um único modo de jogo.<br />
<br />
Quer fazer <span style="font-weight: bold;" class="mycode_b">Drift</span>? Pegue seu carro e vá para as pistas.<br />
Quer fugir da polícia? Entre no <span style="font-weight: bold;" class="mycode_b">CopChase</span> ou desafie alguém no <span style="font-weight: bold;" class="mycode_b">X1 Fuga</span>.<br />
Quer trocar tiro? Entre no <span style="font-weight: bold;" class="mycode_b">DeathMatch</span>, crie uma <span style="font-weight: bold;" class="mycode_b">Arena</span> ou dispute uma partida de <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span>.<br />
Prefere veículos? Temos <span style="font-weight: bold;" class="mycode_b">Race, Derby, Shooter, WarPlane</span> e muito mais.<br />
Quer uma experiência mais livre? Entre no nosso modo <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers (FiveM-RP)</span>.<br />
<br />
🔥 Sistemas próprios<br />
🏆 Rankings competitivos<br />
🌎 Mundo livre<br />
🎮 Diversos minijogos<br />
🏎️ Drift, corridas e perseguições<br />
🔫 Arenas, DM e Counter-Strike<br />
🚔 Polícia vs Bandidos<br />
👥 Clãs e Facções<br />
🇧🇷 Servidor Brasileiro<br />
📶 Ping médio: <span style="font-weight: bold;" class="mycode_b">20~60ms</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🌐 CONECTE-SE AO SPACE DRIFT</span></span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site / UCP:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🖥️ ACESSE NOSSA UCP</span></span><br />
<br />
Nossa UCP reúne todas as informações da sua conta em um só lugar.<br />
Acompanhe suas estatísticas, rankings, veículos, dados da conta,<br />
abra <span style="font-weight: bold;" class="mycode_b">tickets de suporte</span>, tire suas dúvidas e muito mais!<br />
<br />
🎁 <span style="font-weight: bold;" class="mycode_b">Ainda não joga? Comece se registrando pela UCP e ganhe um bônus!</span><br />
<br />
🔗 <span style="font-weight: bold;" class="mycode_b">Acesse:</span> <a href="https://spacedrift.online/ucp/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/ucp/</a><br />
<br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 MINIJOGOS</span></span><br />
<span style="font-style: italic;" class="mycode_i">Escolha o modo que quiser e entre na disputa!</span><br />
</div>
<br />
O Space Drift possui diversos minijogos integrados diretamente à Gamemode.<br />
Cada modo possui suas próprias regras, objetivos e sistemas.<br />
<br />
<br />
✈️ <span style="font-weight: bold;" class="mycode_b">WarPlane</span><br />
Entre em combates aéreos utilizando aviões (Rustler) podendo equipa-lo com /missil além de sua metralhadora!<br />
Dispute contra outros jogadores.<br />
<br />
🚓 <span style="font-weight: bold;" class="mycode_b">CopChase</span><br />
Fuja das viaturas, sobreviva à perseguição e tente despistar seus perseguidores.<br />
<br />
🚀 <span style="font-weight: bold;" class="mycode_b">Shooter</span><br />
Combates utilizando veículos equipados com misseis e opção de pular para desviar e destruir seus adversários.<br />
<br />
💣 <span style="font-weight: bold;" class="mycode_b">Counter-Strike</span><br />
Partidas de CT vs TR com sistemas próprios inspirados no clássico Counter-Strike 1.6.<br />
<br />
🏎️ <span style="font-weight: bold;" class="mycode_b">Race</span><br />
Corridas competitivas para descobrir quem realmente domina o volante tendo sistema de ranking geral e por pista.<br />
<br />
💥 <span style="font-weight: bold;" class="mycode_b">Derby</span><br />
Destrua seus adversários e tente ser o último sobrevivente.<br />
<br />
🧱 <span style="font-weight: bold;" class="mycode_b">Fallout</span><br />
As plataformas desaparecem durante a partida. Continue vivo até ser o último jogador.<br />
<br />
🚔 <span style="font-weight: bold;" class="mycode_b">Cop vs Robbers / FiveM-RP</span><br />
Polícia e bandidos em um mundo aberto com sistemas próprios.<br />
<br />
<br />
🏆 <span style="font-weight: bold;" class="mycode_b">Os modos possuem estatísticas e rankings para você disputar com outros jogadores!</span><br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">💣 COUNTER-STRIKE</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🔵 CT vs 🔴 TR — O clássico dentro do SA-MP</span><br />
</div>
<br />
💣 Plantar e defusar bomba<br />
🔵 Counter-Terrorists vs Terrorists<br />
🎯 Sistema de HeadShot<br />
⛑️ Sistema de capacete<br />
🧰 Defuse Kit<br />
🗺️ Diferentes mapas<br />
🔫 Sistema próprio de armas<br />
📊 Kills, Deaths e HeadShots em 🏆 Ranking competitivo<br />
<br />
<br />
Entre para sua equipe, cumpra o objetivo da rodada<br />
e tente dominar o ranking.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚓 FUGAS &amp; PERSEGUIÇÕES</span></span><br />
<span style="font-weight: bold;" class="mycode_b">🏎️ ACELERE • DESPISTE • SOBREVIVA</span><br />
</div>
<br />
Se você gosta de perseguições, existem diferentes maneiras de colocar<br />
suas habilidades ao volante à prova.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 COPCHASE</span><br />
Tente cair como bandido e fugir de todos os policias, 1 fugitivo contra até 14 policiais.<br />
Podendo se render (/handsup), selecionar veículos de fuga e perseguição.<br />
Aonde caso o bandido atirar ou cair na agua é liberado disparos, caso contrario tente prende-lo em 8 minutos!<br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚔 X1 FUGA</span><br />
Desafie outro jogador diretamente para uma perseguição.<br />
Um jogador assume a fuga enquanto o adversário inicia a perseguição.<br />
O fugitivo precisa escapar até perder o contato visual,<br />
enquanto o perseguidor tenta impedir sua fuga.<br />
<br />
🎯 Selecione o adversário, 🚗 escolha um veículo e 💰 faça uma aposta!<br />
🏎️ Fugas em alta velocidade<br />
🚓 Perseguições entre jogadores<br />
💥 Destruição de veículos<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de fugas<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔫 ARENAS PERSONALIZÁVEIS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria partida e jogue do seu jeito.</span><br />
</div>
<br />
Não encontrou a partida que queria?<br />
<span style="font-weight: bold;" class="mycode_b">Crie sua própria Arena.</span><br />
Configure diferentes opções e convide outros jogadores para participar.<br />
<br />
🎯 HeadShot  ON/OFF<br />
⚡ CBUG        ON/OFF<br />
🔫 Até 8 armas<br />
👥 Configuração de quantidade de jogadores 2-12<br />
🔐 Crie salas com senha<br />
🎮 Diferentes estilos de combate<br />
📊 Vitórias e derrotas registradas 🏆 Ranking de arenas<br />
<br />
Você escolhe as configurações e monta sua própria batalha.<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 DRIFT &amp; MUNDO LIVRE</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Pegue seu carro e aproveite o mapa.</span><br />
</div>
<br />
O nome <span style="font-weight: bold;" class="mycode_b">Space Drift</span> não existe por acaso.<br />
O servidor mantém suas raízes no Drift de onde começou e oferece liberdade para<br />
pegar seu veículo, encontrar outros jogadores e explorar diversas áreas.<br />
<br />
🏎️ Áreas exclusivas para Drift<br />
🚗 Criação livre de veículos<br />
🏆 Drift Points<br />
⚔️ X1 Drift por pontuação<br />
🌎 Diversos teleportes<br />
🏁 MegaCorridas<br />
✈️ SkyDive<br />
🔫 Mundo DeathMatch<br />
🎯 X1 Duelo<br />
🛠️ Treinamento BPM<br />
🚧 Cones e pregos para treinamentos<br />
🛡️ Clãs configuráveis para futuras batalhas de drift entre outros<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚔 COP vs ROBBERS | FiveM-RP</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🚓 POLÍCIA vs BANDIDOS 🔫</span><br />
<br />
<span style="font-style: italic;" class="mycode_i">Um mundo aberto (Los Santos) dentro do Space Drift para quem prefere<br />
uma experiência diferente dos minijogos tradicionais.</span><br />
</div>
<br />
Escolha seu lado e participe de um sistema completo de<br />
<span style="font-weight: bold;" class="mycode_b">Polícia vs Bandidos</span> integrado ao servidor.<br />
<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">GangWar</span> — Guerra entre Cops e Robbers por território e pontuação<br />
🌿 Plantação e tráfico de maconha<br />
🔫 Drop de armas ao morrer<br />
🎯 HeadShot + sistema de capacete<br />
🚨 Sistema de níveis de procurado<br />
🚓 Perseguição de criminosos<br />
🚔 Algemar e prender bandidos em cadeia, aonde pode ser 💣 explodida por criminosos. Cuidado!<br />
🔗 Amarrar, vendar e sequestrar escolhendo valores entre score e dinheiro!<br />
💰 Roube Bancos, caixas eletrônicos, 🔐 cofres, 🚚Carro Forte, NPCs de loja (Fica com mochila em todos roubos somando dinheiro/score até o tempo seguro finalizar)<br />
🏥 Hospital - Cuidado para não morrer e perder seu tempo no hospital, preze o seu cuidado!<br />
🩸 Sistema de jogador agonizando ao morrer a 1º vez com um amigo podendo salva-lo e marcando todos os ferimentos.<br />
🩸 Sistema de mancar ao levar tiro na perna, tendo que ir até o hospital ou usar kit para voltar andar normalmente.<br />
👥 Facções - Podendo criar | Editar cargos | Criar armario para guardar Armas/Skins/Colete entre outros | Comprar veículos para sua fac | Dominar territórios.<br />
🛒 Lojas exclusivas por profissão/facção<br />
<br />
<div style="text-align: center;" class="mycode_align">
<span style="font-weight: bold;" class="mycode_b">🚨 Seja policial ou um criminoso.<br />
</span><br />
</div>
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🏆 COMPITA PELOS RANKINGS</span></span><br />
</div>
<br />
Não basta apenas jogar.<br />
Diversas atividades do Space Drift possuem estatísticas próprias,<br />
permitindo acompanhar sua evolução e competir com outros jogadores.<br />
<br />
🏎️ X1 Drift — Vitórias / Derrotas<br />
💨 Drift Points<br />
🚓 X1 Fuga — Vitórias / Derrotas<br />
🎯 Duelos — Vitórias / Derrotas<br />
🔫 DeathMatch — Kills / Deaths<br />
🚔 CopChase — Fugas<br />
🏁 Race — Vitórias / Derrotas<br />
💥 Derby — Vitórias / Derrotas / K/D<br />
✈️ WarPlane — Vitórias / Derrotas<br />
🚀 Shooter — Vitórias / Derrotas / K/D<br />
🧱 Fallout — Vitórias / Derrotas<br />
💣 Counter-Strike — HeadShots / K/D / HS<br />
⚔️ <span style="font-weight: bold;" class="mycode_b">Arenas</span> — Kills / Deaths<br />
<br />
<br />
<div style="text-align: center;" class="mycode_align">
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">👥 ESTAMOS ATUALIZANDO NOSSA COMUNIDADE</span></span><br />
</div>
<br />
<br />
O Space Drift está voltando a receber melhorias e novos conteúdos.<br />
<br />
Estamos procurando jogadores que queiram <span style="font-weight: bold;" class="mycode_b">jogar, testar,<br />
encontrar bugs, dar sugestões e participar do desenvolvimento do servidor.</span><br />
<br />
Queremos construir novamente uma comunidade ativa,<br />
ouvindo também as ideias de quem realmente está jogando.<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎁 TRAGA 10 JOGADORES ATIVOS</span></span><br />
Traga <span style="font-weight: bold;" class="mycode_b">10 jogadores que permaneçam ativos na comunidade</span><br />
e iremos desenvolver ou investir em<br />
<span style="font-weight: bold;" class="mycode_b">um minijogo escolhido por vocês!</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">⭐ VAGAS PARA EQUIPE ADMINISTRATIVA ⭐</span></span><br />
<br />
Estamos procurando jogadores para ajudar nos testes,<br />
na comunidade e no aprimoramento da Gamemode.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Participe, ajude o servidor a crescer e tenha a oportunidade<br />
de conquistar seu espaço na equipe administrativa.</span><br />
<br />
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━<br />
<br />
<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🚗 SPACE DRIFT 🚗</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">DRIFT • MINIJOGOS • FUGAS • ARENAS • COUNTER-STRIKE • COP vs ROBBERS</span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">🔥 ESCOLHA O MODO • ENTRE NA DISPUTA • DOMINE OS RANKINGS 🔥</span><br />
<br />
🌐 <span style="font-weight: bold;" class="mycode_b">IP:</span> spacedrift.online:7777<br />
💬 <span style="font-weight: bold;" class="mycode_b">Discord:</span> <a href="https://discord.gg/tDfFC3nBNB" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/tDfFC3nBNB</a><br />
🔗 <span style="font-weight: bold;" class="mycode_b">Site/UCP:</span> <a href="https://spacedrift.online/" target="_blank" rel="noopener" class="mycode_url">https://spacedrift.online/</a><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🎮 NOS VEMOS DENTRO DO JOGO!</span></span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Los Santos Role Play (LSRP) v2]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6476</link>
			<pubDate>Sat, 26 Sep 2026 12:59:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6476</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">LSRP - Version 2 Update</span></span></div>
<br />
The second version of the project introduces a large amount of new gameplay functionality, expands the capabilities of organizations, administrators and players, and improves the core game systems.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Vehicles</span><ul class="mycode_list"><li>Added a full vehicle system.<br />
</li>
<li>Added scooters at Los Santos Railway Station, available without a driver's license.<br />
</li>
<li>Added a driver's license system.<br />
</li>
<li>License categories are now separated into car, motorcycle, air, water transport, and weapon licenses.<br />
</li>
<li>Added manual engine control.<br />
</li>
<li>Added separate headlight controls.<br />
</li>
<li>Added a speed limiter for vehicles.<br />
</li>
<li>The speed limiter is saved for a specific vehicle and remains active for the next driver.<br />
</li>
<li>Added a new driver's speedometer displaying speed, engine condition, headlights and other parameters.<br />
</li>
<li>Added access restrictions for organization vehicles.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Banking System</span><ul class="mycode_list"><li>Added a full banking system.<br />
</li>
<li>Added player bank accounts.<br />
</li>
<li>Players can deposit and withdraw money.<br />
</li>
<li>Added money transfers between players.<br />
</li>
<li>The bank balance is displayed in the character statistics.<br />
</li>
<li>Government organization salaries are now transferred directly to the player's bank account.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Payday and Character Progression</span><ul class="mycode_list"><li>Added the Payday system.<br />
</li>
<li>Players receive experience points from Payday.<br />
</li>
<li>Added automatic level progression.<br />
</li>
<li>Added a lawfulness system.<br />
</li>
<li>Lawfulness is displayed in the character statistics and passport.<br />
</li>
<li>Added sound notifications when receiving Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Safe Zones</span><br />
<br />
The following safe zones have been added:<ul class="mycode_list"><li>Railway Station;<br />
</li>
<li>City Hall;<br />
</li>
<li>Hospital;<br />
</li>
<li>Mine;<br />
</li>
<li>Driving School.<br />
</li>
</ul>
<br />
Players cannot damage each other while inside safe zones.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Prison</span><ul class="mycode_list"><li>Added a full prison system.<br />
</li>
<li>Added a dedicated prison location.<br />
</li>
<li>Added prison cells, a lobby, gym, kitchen and courtyard.<br />
</li>
<li>Added staff access for Police and FBI employees.<br />
</li>
<li>Added a separate armory.<br />
</li>
<li>Added prison transport.<br />
</li>
<li>Added a prison yard management system.<br />
</li>
<li>Administrators can send players to prison for a specified period and provide a reason.<br />
</li>
<li>The prison sentence does not reset after death or reconnecting.<br />
</li>
<li>Players are automatically released after their sentence ends.<br />
</li>
<li>Added the possibility of early release through the administration.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Reports and Administration Communication</span><ul class="mycode_list"><li>Added the /report system.<br />
</li>
<li>Reports can be submitted using a command or through the player menu.<br />
</li>
<li>Added a cooldown for submitting reports.<br />
</li>
<li>Administrators receive information about the sender and their message.<br />
</li>
<li>Added the /ans command for replying to players.<br />
</li>
<li>Players receive a separate notification and sound signal when an administrator replies.<br />
</li>
<li>The report system remains available even when the player is muted in the game chat.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Chat Mute</span><ul class="mycode_list"><li>Added a temporary mute system.<br />
</li>
<li>Administrators can specify the duration and reason for a mute.<br />
</li>
<li>Mute affects the regular chat and the main communication commands.<br />
</li>
<li>Reports remain available while muted.<br />
</li>
<li>After the punishment ends, the player receives a notification that chat access has been restored.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Administration</span><br />
<br />
The administration system has been significantly expanded.<br />
<br />
New features include:<ul class="mycode_list"><li>Replying to reports;<br />
</li>
<li>Issuing chat mutes;<br />
</li>
<li>Creating and deleting administrative vehicles;<br />
</li>
<li>Sending players to prison;<br />
</li>
<li>Releasing players from prison;<br />
</li>
<li>Teleportation;<br />
</li>
<li>Respawning vehicles;<br />
</li>
<li>Changing civilian skins;<br />
</li>
<li>Issuing and removing bans;<br />
</li>
<li>Lifting bans;<br />
</li>
<li>Teleporting players into interiors;<br />
</li>
<li>Assigning organization leaders;<br />
</li>
<li>Managing gang zone colors;<br />
</li>
<li>Giving players cash or transferring money to their bank accounts;<br />
</li>
<li>Changing player levels.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Government Organizations</span><br />
<br />
The government organization system has been expanded.<br />
<br />
The following organizations have been added and fully configured:<ul class="mycode_list"><li>Army;<br />
</li>
<li>Hospital;<br />
</li>
<li>City Hall;<br />
</li>
<li>Regional Police;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Driving School;<br />
</li>
<li>Radio Center.<br />
</li>
</ul>
<br />
Organizations now have:<ul class="mycode_list"><li>Their own ranks;<br />
</li>
<li>Separate spawn points;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Dedicated service areas;<br />
</li>
<li>Armories;<br />
</li>
<li>Staff entrances;<br />
</li>
<li>Roofs and parking areas;<br />
</li>
<li>Access restrictions for vehicles and premises;<br />
</li>
<li>Internal organization communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Hospital</span><ul class="mycode_list"><li>The Hospital has become a full government organization.<br />
</li>
<li>Added a rank system.<br />
</li>
<li>Added specialized vehicles.<br />
</li>
<li>Added dedicated service areas.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Configured a separate employee spawn point.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">City Hall</span><ul class="mycode_list"><li>Added a full City Hall organization.<br />
</li>
<li>Added a rank system.<br />
</li>
<li>Added organization vehicles.<br />
</li>
<li>Added a service warehouse.<br />
</li>
<li>Added staff entrances.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Configured internal organization communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Police and FBI</span><br />
<br />
The capabilities of police organizations have been expanded.<br />
<br />
Added:<ul class="mycode_list"><li>Separate police departments;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Service garages;<br />
</li>
<li>Armories;<br />
</li>
<li>Service areas;<br />
</li>
<li>Roofs;<br />
</li>
<li>Access restrictions for service vehicles;<br />
</li>
<li>Specialized vehicles;<br />
</li>
<li>Additional FBI equipment;<br />
</li>
<li>Separate employee spawn points.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Driving School</span><br />
<br />
Added a full driving school system.<ul class="mycode_list"><li>Added driver's license acquisition.<br />
</li>
<li>Added license sales to players.<br />
</li>
<li>Before purchasing a license, the player receives an offer specifying the category and price.<br />
</li>
<li>Added purchase confirmation.<br />
</li>
<li>Added a theory test covering traffic rules.<br />
</li>
<li>Added a multi-question test.<br />
</li>
<li>Added a practical driving exam.<br />
</li>
<li>Special driving school vehicles are used for the practical exam.<br />
</li>
<li>After successfully passing the exam, the corresponding license is issued to the character.<br />
</li>
<li>Added separate license categories.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Radio Center</span><br />
<br />
Added a full Radio Center organization.<ul class="mycode_list"><li>Added its own organization and rank system.<br />
</li>
<li>Added service vehicles.<br />
</li>
<li>Added an office.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Added special equipment.<br />
</li>
<li>Added an in-game advertisement system.<br />
</li>
<li>Players can submit advertisements using /ad.<br />
</li>
<li>Advertisements are processed by Radio Center employees.<br />
</li>
<li>Employees can edit or reject advertisements.<br />
</li>
<li>Added an advertisement queue.<br />
</li>
<li>An interval between publications has been introduced.<br />
</li>
<li>Added the ability to manage advertisements from service vehicles.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Gangs</span><br />
<br />
Added five fully functional gangs:<ul class="mycode_list"><li>Grove Street;<br />
</li>
<li>The Ballas;<br />
</li>
<li>Los Santos Vagos;<br />
</li>
<li>The Rifa;<br />
</li>
<li>Varios Los Aztecas.<br />
</li>
</ul>
<br />
Gangs now have:<ul class="mycode_list"><li>Their own HQs;<br />
</li>
<li>Separate interiors;<br />
</li>
<li>Ranks;<br />
</li>
<li>Organization colors;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Member management;<br />
</li>
<li>Player invitations and dismissals;<br />
</li>
<li>Rank promotions and demotions;<br />
</li>
<li>Shared radio communication;<br />
</li>
<li>A gang zone system.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Mafias</span><br />
<br />
Added three mafia organizations:<ul class="mycode_list"><li>La Cosa Nostra;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Russian Mafia.<br />
</li>
</ul>
<br />
Each family now has:<ul class="mycode_list"><li>Its own headquarters;<br />
</li>
<li>A separate interior;<br />
</li>
<li>Organization colors;<br />
</li>
<li>Ranks;<br />
</li>
<li>Member management;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Restricted areas and gates;<br />
</li>
<li>Internal radio communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Gang Zones and Turf Wars</span><br />
<br />
Added a full gang territory system.<ul class="mycode_list"><li>Gang zones have been added to the map.<br />
</li>
<li>Each territory has its own owner.<br />
</li>
<li>Territories are displayed using the corresponding gang's color.<br />
</li>
<li>Added the /capture command.<br />
</li>
<li>Gangs can initiate attacks to capture territories controlled by other gangs.<br />
</li>
<li>Added time-limited turf wars.<br />
</li>
<li>Defenders must be present to start a capture.<br />
</li>
<li>Points during a turf war are awarded for killing opponents.<br />
</li>
<li>After the capture ends, the territory is transferred to the winning gang.<br />
</li>
<li>During a turf war, the time, participants and current score are displayed.<br />
</li>
<li>Added a dedicated GPS marker for territories.<br />
</li>
<li>Added district information to the map.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Chat and Communication</span><ul class="mycode_list"><li>Updated the appearance of the in-game chat.<br />
</li>
<li>The player's name is now displayed together with their ID.<br />
</li>
<li>Nickname color depends on the organization.<br />
</li>
<li>Added proper forms of address based on the character's gender.<br />
</li>
<li>Added organization communication channels.<br />
</li>
</ul>
<br />
New channels:<ul class="mycode_list"><li>/r - government organization radio;<br />
</li>
<li>/f - gang and mafia communication;<br />
</li>
<li>/d - general government department communication;<br />
</li>
<li>/gov - official organization announcements.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">New Player Commands</span><br />
<br />
The following new gameplay commands have been added:<ul class="mycode_list"><li>/report - contact the administration;<br />
</li>
<li>/limit - speed limiter;<br />
</li>
<li>/invite - invite a player to an organization;<br />
</li>
<li>/uninvite - dismiss a player;<br />
</li>
<li>/rank - manage player rank;<br />
</li>
<li>/r - organization radio;<br />
</li>
<li>/f - gang and mafia communication;<br />
</li>
<li>/d - department communication;<br />
</li>
<li>/gov - government announcements;<br />
</li>
<li>/capture - capture a territory;<br />
</li>
<li>/time - view the current time and remaining punishment time;<br />
</li>
<li>/lic - view licenses;<br />
</li>
<li>/selllic - sell a license as a Driving School employee;<br />
</li>
<li>/ad - submit an advertisement;<br />
</li>
<li>/edit - manage advertisements as a Radio Center employee.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Statistics and Passport</span><br />
<br />
Additional information is now displayed in /stats and the character passport:<ul class="mycode_list"><li>Bank balance;<br />
</li>
<li>Lawfulness;<br />
</li>
<li>Current organization;<br />
</li>
<li>Available licenses.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">GPS and Map</span><br />
<br />
The navigation system has been expanded.<br />
<br />
Added markers for:<ul class="mycode_list"><li>Los Santos Railway Station;<br />
</li>
<li>Prison;<br />
</li>
<li>Bank;<br />
</li>
<li>Regional Police;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Driving School;<br />
</li>
<li>LCN;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Russian Mafia;<br />
</li>
<li>Grove Street;<br />
</li>
<li>Ballas;<br />
</li>
<li>Vagos;<br />
</li>
<li>Rifa;<br />
</li>
<li>Aztecas.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Character Registration</span><br />
<br />
Updated the skin selection system during registration.<ul class="mycode_list"><li>Added a visual character selection screen.<br />
</li>
<li>Added separate male and female skin selections.<br />
</li>
<li>Added arrow-key controls for character selection.<br />
</li>
<li>Added sound effects.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Sound Effects</span><br />
<br />
Added new sounds for various gameplay actions:<ul class="mycode_list"><li>Skin selection;<br />
</li>
<li>Administrator replies;<br />
</li>
<li>Turning headlights on;<br />
</li>
<li>Receiving Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Cyrillic Support</span><ul class="mycode_list"><li>Fixed Cyrillic text — all text is now displayed correctly in Russian.<br />
</li>
<li>Special thanks to chromiusj for helping with the Cyrillic fixes.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Language</span><br />
The mod is currently available in Russian. However, there is not a large amount of text in the mod, so translating it into your preferred language should not take much time.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-weight: bold;" class="mycode_b">Conclusion</span><br />
<br />
The second version significantly expands the game world and transforms the base project into a more complete RP server.<br />
<br />
All major new gameplay systems are now interconnected: organizations have their own vehicles and infrastructure, players have licenses, banking, lawfulness and new ways to interact, while gangs have their own territories and a territory capture system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Download</span><ul class="mycode_list"><li>Google Drive: <a href="https://drive.google.com/file/d/16lMRuzjqEOJm1aSnP9fRTESQqTH_j5aM/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/16lMRuzj...sp=sharing</a><br />
</li>
<li>Yandex Disk: <a href="https://disk.yandex.ru/d/JooK1ML31pMMaA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/JooK1ML31pMMaA</a><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">LSRP - Version 2 Update</span></span></div>
<br />
The second version of the project introduces a large amount of new gameplay functionality, expands the capabilities of organizations, administrators and players, and improves the core game systems.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Vehicles</span><ul class="mycode_list"><li>Added a full vehicle system.<br />
</li>
<li>Added scooters at Los Santos Railway Station, available without a driver's license.<br />
</li>
<li>Added a driver's license system.<br />
</li>
<li>License categories are now separated into car, motorcycle, air, water transport, and weapon licenses.<br />
</li>
<li>Added manual engine control.<br />
</li>
<li>Added separate headlight controls.<br />
</li>
<li>Added a speed limiter for vehicles.<br />
</li>
<li>The speed limiter is saved for a specific vehicle and remains active for the next driver.<br />
</li>
<li>Added a new driver's speedometer displaying speed, engine condition, headlights and other parameters.<br />
</li>
<li>Added access restrictions for organization vehicles.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Banking System</span><ul class="mycode_list"><li>Added a full banking system.<br />
</li>
<li>Added player bank accounts.<br />
</li>
<li>Players can deposit and withdraw money.<br />
</li>
<li>Added money transfers between players.<br />
</li>
<li>The bank balance is displayed in the character statistics.<br />
</li>
<li>Government organization salaries are now transferred directly to the player's bank account.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Payday and Character Progression</span><ul class="mycode_list"><li>Added the Payday system.<br />
</li>
<li>Players receive experience points from Payday.<br />
</li>
<li>Added automatic level progression.<br />
</li>
<li>Added a lawfulness system.<br />
</li>
<li>Lawfulness is displayed in the character statistics and passport.<br />
</li>
<li>Added sound notifications when receiving Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Safe Zones</span><br />
<br />
The following safe zones have been added:<ul class="mycode_list"><li>Railway Station;<br />
</li>
<li>City Hall;<br />
</li>
<li>Hospital;<br />
</li>
<li>Mine;<br />
</li>
<li>Driving School.<br />
</li>
</ul>
<br />
Players cannot damage each other while inside safe zones.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Prison</span><ul class="mycode_list"><li>Added a full prison system.<br />
</li>
<li>Added a dedicated prison location.<br />
</li>
<li>Added prison cells, a lobby, gym, kitchen and courtyard.<br />
</li>
<li>Added staff access for Police and FBI employees.<br />
</li>
<li>Added a separate armory.<br />
</li>
<li>Added prison transport.<br />
</li>
<li>Added a prison yard management system.<br />
</li>
<li>Administrators can send players to prison for a specified period and provide a reason.<br />
</li>
<li>The prison sentence does not reset after death or reconnecting.<br />
</li>
<li>Players are automatically released after their sentence ends.<br />
</li>
<li>Added the possibility of early release through the administration.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Reports and Administration Communication</span><ul class="mycode_list"><li>Added the /report system.<br />
</li>
<li>Reports can be submitted using a command or through the player menu.<br />
</li>
<li>Added a cooldown for submitting reports.<br />
</li>
<li>Administrators receive information about the sender and their message.<br />
</li>
<li>Added the /ans command for replying to players.<br />
</li>
<li>Players receive a separate notification and sound signal when an administrator replies.<br />
</li>
<li>The report system remains available even when the player is muted in the game chat.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Chat Mute</span><ul class="mycode_list"><li>Added a temporary mute system.<br />
</li>
<li>Administrators can specify the duration and reason for a mute.<br />
</li>
<li>Mute affects the regular chat and the main communication commands.<br />
</li>
<li>Reports remain available while muted.<br />
</li>
<li>After the punishment ends, the player receives a notification that chat access has been restored.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Administration</span><br />
<br />
The administration system has been significantly expanded.<br />
<br />
New features include:<ul class="mycode_list"><li>Replying to reports;<br />
</li>
<li>Issuing chat mutes;<br />
</li>
<li>Creating and deleting administrative vehicles;<br />
</li>
<li>Sending players to prison;<br />
</li>
<li>Releasing players from prison;<br />
</li>
<li>Teleportation;<br />
</li>
<li>Respawning vehicles;<br />
</li>
<li>Changing civilian skins;<br />
</li>
<li>Issuing and removing bans;<br />
</li>
<li>Lifting bans;<br />
</li>
<li>Teleporting players into interiors;<br />
</li>
<li>Assigning organization leaders;<br />
</li>
<li>Managing gang zone colors;<br />
</li>
<li>Giving players cash or transferring money to their bank accounts;<br />
</li>
<li>Changing player levels.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Government Organizations</span><br />
<br />
The government organization system has been expanded.<br />
<br />
The following organizations have been added and fully configured:<ul class="mycode_list"><li>Army;<br />
</li>
<li>Hospital;<br />
</li>
<li>City Hall;<br />
</li>
<li>Regional Police;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Driving School;<br />
</li>
<li>Radio Center.<br />
</li>
</ul>
<br />
Organizations now have:<ul class="mycode_list"><li>Their own ranks;<br />
</li>
<li>Separate spawn points;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Dedicated service areas;<br />
</li>
<li>Armories;<br />
</li>
<li>Staff entrances;<br />
</li>
<li>Roofs and parking areas;<br />
</li>
<li>Access restrictions for vehicles and premises;<br />
</li>
<li>Internal organization communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Hospital</span><ul class="mycode_list"><li>The Hospital has become a full government organization.<br />
</li>
<li>Added a rank system.<br />
</li>
<li>Added specialized vehicles.<br />
</li>
<li>Added dedicated service areas.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Configured a separate employee spawn point.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">City Hall</span><ul class="mycode_list"><li>Added a full City Hall organization.<br />
</li>
<li>Added a rank system.<br />
</li>
<li>Added organization vehicles.<br />
</li>
<li>Added a service warehouse.<br />
</li>
<li>Added staff entrances.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Configured internal organization communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Police and FBI</span><br />
<br />
The capabilities of police organizations have been expanded.<br />
<br />
Added:<ul class="mycode_list"><li>Separate police departments;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Service garages;<br />
</li>
<li>Armories;<br />
</li>
<li>Service areas;<br />
</li>
<li>Roofs;<br />
</li>
<li>Access restrictions for service vehicles;<br />
</li>
<li>Specialized vehicles;<br />
</li>
<li>Additional FBI equipment;<br />
</li>
<li>Separate employee spawn points.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Driving School</span><br />
<br />
Added a full driving school system.<ul class="mycode_list"><li>Added driver's license acquisition.<br />
</li>
<li>Added license sales to players.<br />
</li>
<li>Before purchasing a license, the player receives an offer specifying the category and price.<br />
</li>
<li>Added purchase confirmation.<br />
</li>
<li>Added a theory test covering traffic rules.<br />
</li>
<li>Added a multi-question test.<br />
</li>
<li>Added a practical driving exam.<br />
</li>
<li>Special driving school vehicles are used for the practical exam.<br />
</li>
<li>After successfully passing the exam, the corresponding license is issued to the character.<br />
</li>
<li>Added separate license categories.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Radio Center</span><br />
<br />
Added a full Radio Center organization.<ul class="mycode_list"><li>Added its own organization and rank system.<br />
</li>
<li>Added service vehicles.<br />
</li>
<li>Added an office.<br />
</li>
<li>Added roof access.<br />
</li>
<li>Added special equipment.<br />
</li>
<li>Added an in-game advertisement system.<br />
</li>
<li>Players can submit advertisements using /ad.<br />
</li>
<li>Advertisements are processed by Radio Center employees.<br />
</li>
<li>Employees can edit or reject advertisements.<br />
</li>
<li>Added an advertisement queue.<br />
</li>
<li>An interval between publications has been introduced.<br />
</li>
<li>Added the ability to manage advertisements from service vehicles.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Gangs</span><br />
<br />
Added five fully functional gangs:<ul class="mycode_list"><li>Grove Street;<br />
</li>
<li>The Ballas;<br />
</li>
<li>Los Santos Vagos;<br />
</li>
<li>The Rifa;<br />
</li>
<li>Varios Los Aztecas.<br />
</li>
</ul>
<br />
Gangs now have:<ul class="mycode_list"><li>Their own HQs;<br />
</li>
<li>Separate interiors;<br />
</li>
<li>Ranks;<br />
</li>
<li>Organization colors;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Member management;<br />
</li>
<li>Player invitations and dismissals;<br />
</li>
<li>Rank promotions and demotions;<br />
</li>
<li>Shared radio communication;<br />
</li>
<li>A gang zone system.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Mafias</span><br />
<br />
Added three mafia organizations:<ul class="mycode_list"><li>La Cosa Nostra;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Russian Mafia.<br />
</li>
</ul>
<br />
Each family now has:<ul class="mycode_list"><li>Its own headquarters;<br />
</li>
<li>A separate interior;<br />
</li>
<li>Organization colors;<br />
</li>
<li>Ranks;<br />
</li>
<li>Member management;<br />
</li>
<li>Organization vehicles;<br />
</li>
<li>Restricted areas and gates;<br />
</li>
<li>Internal radio communication.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Gang Zones and Turf Wars</span><br />
<br />
Added a full gang territory system.<ul class="mycode_list"><li>Gang zones have been added to the map.<br />
</li>
<li>Each territory has its own owner.<br />
</li>
<li>Territories are displayed using the corresponding gang's color.<br />
</li>
<li>Added the /capture command.<br />
</li>
<li>Gangs can initiate attacks to capture territories controlled by other gangs.<br />
</li>
<li>Added time-limited turf wars.<br />
</li>
<li>Defenders must be present to start a capture.<br />
</li>
<li>Points during a turf war are awarded for killing opponents.<br />
</li>
<li>After the capture ends, the territory is transferred to the winning gang.<br />
</li>
<li>During a turf war, the time, participants and current score are displayed.<br />
</li>
<li>Added a dedicated GPS marker for territories.<br />
</li>
<li>Added district information to the map.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Chat and Communication</span><ul class="mycode_list"><li>Updated the appearance of the in-game chat.<br />
</li>
<li>The player's name is now displayed together with their ID.<br />
</li>
<li>Nickname color depends on the organization.<br />
</li>
<li>Added proper forms of address based on the character's gender.<br />
</li>
<li>Added organization communication channels.<br />
</li>
</ul>
<br />
New channels:<ul class="mycode_list"><li>/r - government organization radio;<br />
</li>
<li>/f - gang and mafia communication;<br />
</li>
<li>/d - general government department communication;<br />
</li>
<li>/gov - official organization announcements.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">New Player Commands</span><br />
<br />
The following new gameplay commands have been added:<ul class="mycode_list"><li>/report - contact the administration;<br />
</li>
<li>/limit - speed limiter;<br />
</li>
<li>/invite - invite a player to an organization;<br />
</li>
<li>/uninvite - dismiss a player;<br />
</li>
<li>/rank - manage player rank;<br />
</li>
<li>/r - organization radio;<br />
</li>
<li>/f - gang and mafia communication;<br />
</li>
<li>/d - department communication;<br />
</li>
<li>/gov - government announcements;<br />
</li>
<li>/capture - capture a territory;<br />
</li>
<li>/time - view the current time and remaining punishment time;<br />
</li>
<li>/lic - view licenses;<br />
</li>
<li>/selllic - sell a license as a Driving School employee;<br />
</li>
<li>/ad - submit an advertisement;<br />
</li>
<li>/edit - manage advertisements as a Radio Center employee.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Statistics and Passport</span><br />
<br />
Additional information is now displayed in /stats and the character passport:<ul class="mycode_list"><li>Bank balance;<br />
</li>
<li>Lawfulness;<br />
</li>
<li>Current organization;<br />
</li>
<li>Available licenses.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">GPS and Map</span><br />
<br />
The navigation system has been expanded.<br />
<br />
Added markers for:<ul class="mycode_list"><li>Los Santos Railway Station;<br />
</li>
<li>Prison;<br />
</li>
<li>Bank;<br />
</li>
<li>Regional Police;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Driving School;<br />
</li>
<li>LCN;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Russian Mafia;<br />
</li>
<li>Grove Street;<br />
</li>
<li>Ballas;<br />
</li>
<li>Vagos;<br />
</li>
<li>Rifa;<br />
</li>
<li>Aztecas.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Character Registration</span><br />
<br />
Updated the skin selection system during registration.<ul class="mycode_list"><li>Added a visual character selection screen.<br />
</li>
<li>Added separate male and female skin selections.<br />
</li>
<li>Added arrow-key controls for character selection.<br />
</li>
<li>Added sound effects.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Sound Effects</span><br />
<br />
Added new sounds for various gameplay actions:<ul class="mycode_list"><li>Skin selection;<br />
</li>
<li>Administrator replies;<br />
</li>
<li>Turning headlights on;<br />
</li>
<li>Receiving Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Cyrillic Support</span><ul class="mycode_list"><li>Fixed Cyrillic text — all text is now displayed correctly in Russian.<br />
</li>
<li>Special thanks to chromiusj for helping with the Cyrillic fixes.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Language</span><br />
The mod is currently available in Russian. However, there is not a large amount of text in the mod, so translating it into your preferred language should not take much time.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-weight: bold;" class="mycode_b">Conclusion</span><br />
<br />
The second version significantly expands the game world and transforms the base project into a more complete RP server.<br />
<br />
All major new gameplay systems are now interconnected: organizations have their own vehicles and infrastructure, players have licenses, banking, lawfulness and new ways to interact, while gangs have their own territories and a territory capture system.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Download</span><ul class="mycode_list"><li>Google Drive: <a href="https://drive.google.com/file/d/16lMRuzjqEOJm1aSnP9fRTESQqTH_j5aM/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/16lMRuzj...sp=sharing</a><br />
</li>
<li>Yandex Disk: <a href="https://disk.yandex.ru/d/JooK1ML31pMMaA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/JooK1ML31pMMaA</a><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Античит для open.mp]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6475</link>
			<pubDate>Sat, 26 Sep 2026 12:51:48 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6475</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Античит для open.mp (TypeScript, @omp-node/core)</span></span></div>
<br />
Серверный античит. Ловит подозрительные действия игрока и может кикнуть его.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Что проверяет (включено по умолчанию):</span><ul class="mycode_list"><li>AirBreak пешком и в транспорте<br />
</li>
<li>Телепорт пешком, в транспорте и при посадке в машину<br />
</li>
<li>FlyHack пешком и в транспорте<br />
</li>
<li>SpeedHack пешком и в транспорте<br />
</li>
<li>ХП игрока и ХП транспорта<br />
</li>
<li>Броня<br />
</li>
<li>Деньги (сверка с серверным счетом)<br />
</li>
<li>Лишнее оружие<br />
</li>
<li>Лишние патроны<br />
</li>
<li>Неверный ID оружия (crasher)<br />
</li>
<li>Jetpack без разрешения сервера<br />
</li>
<li>Fake spawn (спавн без авторизации)<br />
</li>
<li>Быстрый реконнект<br />
</li>
<li>Высокий пинг (с предупреждениями)<br />
</li>
<li>Много подключений с одного IP<br />
</li>
<li>Флуд колбеков<br />
</li>
<li>DoS по числу пакетов в секунду<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Что выключено по умолчанию</span><br />
Выключены коды с нестабильной логикой или высоким риском ложных киков, например:<ul class="mycode_list"><li>Rapid fire<br />
</li>
<li>CJ run<br />
</li>
<li>Invisible, DialogHack, CarJack, Quick turn, FakeKill<br />
</li>
<li>NOP-проверки, Pro Aim, GodMode, Tuning и ряд crasher-кодов<br />
</li>
</ul>
Их можно включить в config.ts через setCodeEnabled.<br />
<br />
Как подключить к проекту <a href="https://forum.open.mp/showthread.php?tid=6474" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v2</span></a><br />
<ol type="1" class="mycode_list"><li>Скопируйте папку:<br />
resources/src/modules/anticheat<br />
</li>
<li>В главном файле модулей (например resources/src/index.ts) импортируйте anticheatModule и добавьте его в список модулей, лучше ближе к концу (после auth и основных систем):<br />
import { anticheatModule } from "./modules/anticheat";<br />
// ...<br />
anticheatModule,<br />
</li>
<li>Подгоните импорты под свой проект (auth, player utils), если пути другие.<br />
</li>
</ol>
<br />
<span style="font-weight: bold;" class="mycode_b">Важно trust API</span><br />
Античит хранит "ожидаемые" позицию, деньги, ХП, броню и оружие. Если мод сам телепортирует игрока, выдает оружие или меняет ХП, нужно сообщить об этом античиту. Иначе будет ложный кик.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Импорт:</span><br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">import&nbsp;</span><span style="color: #007700">{<br /></span><span style="color: #0000BB"> &nbsp;trustPosition</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustMoney</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustHealth</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustArmour</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;grantWeapon</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;grantArmour</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;setTrustedHealth</span><span style="color: #007700">,<br />}&nbsp;</span><span style="color: #0000BB">from&nbsp;</span><span style="color: #DD0000">"./modules/anticheat"</span><span style="color: #007700">;&nbsp;<br /></span></code></div></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Примеры:</span><ul class="mycode_list"><li>После setPos / телепорта:<br />
trustPosition(player, x, y, z, interior, world);<br />
<br />
</li>
<li>После выдачи денег с сервера:<br />
trustMoney(player, сумма);<br />
<br />
</li>
<li>После setHealth:<br />
trustHealth(player, hp); или setTrustedHealth(player, hp);<br />
<br />
</li>
<li>Вместо giveWeapon / setArmor<br />
grantWeapon(player, weaponId, ammo);<br />
grantArmour(player, armor);<br />
</li>
</ul>
P.S  grantWeapon учитывает, что giveWeapon в SA добавляет патроны к слоту, а не заменяет их.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Зависимости в вашем моде</span><br />
Модуль ожидает:<ul class="mycode_list"><li>авторизацию игрока (isAuthenticated / getAccount с полем money и health)<br />
</li>
<li>утилиты playerId, playerIp, isPlayerActive, kickSamePlayer<br />
</li>
<li>omp.on события open.mp<br />
</li>
<li>для уведомлений админам: getAccount(...).adminLevel<br />
</li>
</ul>
Если структура проекта другая, подправьте импорты в loop.ts, punish.ts, vitals.ts и trust.ts под свои пути.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Настройки</span><br />
Файл: modules/anticheat/config.ts<br />
Полезные поля:<ul class="mycode_list"><li>enabled - вкл/выкл весь античит<br />
</li>
<li>kickOnDetect - кикать при срабатывании<br />
</li>
<li>softStrikeMax - сколько срабатываний до кика (сейчас 1)<br />
</li>
<li>debug - подробный лог предупреждений<br />
</li>
<li>maxPing, maxConnectsPerIp, пороги скорости и телепорта<br />
</li>
</ul>
Включить или выключить один детектор:  setCodeEnabled(AcCode.Money, false);<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Что происходит при срабатывании</span><br />
<ol type="1" class="mycode_list"><li>Запись в лог сервера: [AC] ...<br />
</li>
<li>Сообщение админам в чат (adminLevel &gt;= 1)<br />
</li>
<li>Сообщение игроку<br />
</li>
<li>Kick этого игрока (если kickOnDetect = true)<br />
</li>
</ol>
Жесткие коды (кик сразу): fake spawn, weapon crasher, sandbox IP, DoS.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Структура папки</span><br />
<blockquote class="mycode_quote"><cite>Quote:</cite>anticheat/<br />
  index.ts        - модуль и экспорт API<br />
  codes.ts       - коды детектов<br />
  config.ts       - настройки<br />
  state.ts         - состояние игроков<br />
  trust.ts         - API доверия для мода<br />
  punish.ts      - кик и уведомления<br />
  loop.ts         - события и таймер<br />
  detectors/    - проверки (движение, деньги, оружие и т.д.)</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">Скачать</span><br />
<ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/18jqtH36cUfiVSk9kaSeJYIbwCXuDOpXO/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/18jqtH36...sp=sharing</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.by/d/5oP0YEbOyI7oGQ" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.by/d/5oP0YEbOyI7oGQ</a><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">Античит для open.mp (TypeScript, @omp-node/core)</span></span></div>
<br />
Серверный античит. Ловит подозрительные действия игрока и может кикнуть его.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Что проверяет (включено по умолчанию):</span><ul class="mycode_list"><li>AirBreak пешком и в транспорте<br />
</li>
<li>Телепорт пешком, в транспорте и при посадке в машину<br />
</li>
<li>FlyHack пешком и в транспорте<br />
</li>
<li>SpeedHack пешком и в транспорте<br />
</li>
<li>ХП игрока и ХП транспорта<br />
</li>
<li>Броня<br />
</li>
<li>Деньги (сверка с серверным счетом)<br />
</li>
<li>Лишнее оружие<br />
</li>
<li>Лишние патроны<br />
</li>
<li>Неверный ID оружия (crasher)<br />
</li>
<li>Jetpack без разрешения сервера<br />
</li>
<li>Fake spawn (спавн без авторизации)<br />
</li>
<li>Быстрый реконнект<br />
</li>
<li>Высокий пинг (с предупреждениями)<br />
</li>
<li>Много подключений с одного IP<br />
</li>
<li>Флуд колбеков<br />
</li>
<li>DoS по числу пакетов в секунду<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Что выключено по умолчанию</span><br />
Выключены коды с нестабильной логикой или высоким риском ложных киков, например:<ul class="mycode_list"><li>Rapid fire<br />
</li>
<li>CJ run<br />
</li>
<li>Invisible, DialogHack, CarJack, Quick turn, FakeKill<br />
</li>
<li>NOP-проверки, Pro Aim, GodMode, Tuning и ряд crasher-кодов<br />
</li>
</ul>
Их можно включить в config.ts через setCodeEnabled.<br />
<br />
Как подключить к проекту <a href="https://forum.open.mp/showthread.php?tid=6474" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP) v2</span></a><br />
<ol type="1" class="mycode_list"><li>Скопируйте папку:<br />
resources/src/modules/anticheat<br />
</li>
<li>В главном файле модулей (например resources/src/index.ts) импортируйте anticheatModule и добавьте его в список модулей, лучше ближе к концу (после auth и основных систем):<br />
import { anticheatModule } from "./modules/anticheat";<br />
// ...<br />
anticheatModule,<br />
</li>
<li>Подгоните импорты под свой проект (auth, player utils), если пути другие.<br />
</li>
</ol>
<br />
<span style="font-weight: bold;" class="mycode_b">Важно trust API</span><br />
Античит хранит "ожидаемые" позицию, деньги, ХП, броню и оружие. Если мод сам телепортирует игрока, выдает оружие или меняет ХП, нужно сообщить об этом античиту. Иначе будет ложный кик.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Импорт:</span><br />
<div class="codeblock phpcodeblock"><div class="title">PHP Code:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">import&nbsp;</span><span style="color: #007700">{<br /></span><span style="color: #0000BB"> &nbsp;trustPosition</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustMoney</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustHealth</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;trustArmour</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;grantWeapon</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;grantArmour</span><span style="color: #007700">,<br /></span><span style="color: #0000BB"> &nbsp;setTrustedHealth</span><span style="color: #007700">,<br />}&nbsp;</span><span style="color: #0000BB">from&nbsp;</span><span style="color: #DD0000">"./modules/anticheat"</span><span style="color: #007700">;&nbsp;<br /></span></code></div></div></div><br />
<span style="font-weight: bold;" class="mycode_b">Примеры:</span><ul class="mycode_list"><li>После setPos / телепорта:<br />
trustPosition(player, x, y, z, interior, world);<br />
<br />
</li>
<li>После выдачи денег с сервера:<br />
trustMoney(player, сумма);<br />
<br />
</li>
<li>После setHealth:<br />
trustHealth(player, hp); или setTrustedHealth(player, hp);<br />
<br />
</li>
<li>Вместо giveWeapon / setArmor<br />
grantWeapon(player, weaponId, ammo);<br />
grantArmour(player, armor);<br />
</li>
</ul>
P.S  grantWeapon учитывает, что giveWeapon в SA добавляет патроны к слоту, а не заменяет их.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Зависимости в вашем моде</span><br />
Модуль ожидает:<ul class="mycode_list"><li>авторизацию игрока (isAuthenticated / getAccount с полем money и health)<br />
</li>
<li>утилиты playerId, playerIp, isPlayerActive, kickSamePlayer<br />
</li>
<li>omp.on события open.mp<br />
</li>
<li>для уведомлений админам: getAccount(...).adminLevel<br />
</li>
</ul>
Если структура проекта другая, подправьте импорты в loop.ts, punish.ts, vitals.ts и trust.ts под свои пути.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Настройки</span><br />
Файл: modules/anticheat/config.ts<br />
Полезные поля:<ul class="mycode_list"><li>enabled - вкл/выкл весь античит<br />
</li>
<li>kickOnDetect - кикать при срабатывании<br />
</li>
<li>softStrikeMax - сколько срабатываний до кика (сейчас 1)<br />
</li>
<li>debug - подробный лог предупреждений<br />
</li>
<li>maxPing, maxConnectsPerIp, пороги скорости и телепорта<br />
</li>
</ul>
Включить или выключить один детектор:  setCodeEnabled(AcCode.Money, false);<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Что происходит при срабатывании</span><br />
<ol type="1" class="mycode_list"><li>Запись в лог сервера: [AC] ...<br />
</li>
<li>Сообщение админам в чат (adminLevel &gt;= 1)<br />
</li>
<li>Сообщение игроку<br />
</li>
<li>Kick этого игрока (если kickOnDetect = true)<br />
</li>
</ol>
Жесткие коды (кик сразу): fake spawn, weapon crasher, sandbox IP, DoS.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Структура папки</span><br />
<blockquote class="mycode_quote"><cite>Quote:</cite>anticheat/<br />
  index.ts        - модуль и экспорт API<br />
  codes.ts       - коды детектов<br />
  config.ts       - настройки<br />
  state.ts         - состояние игроков<br />
  trust.ts         - API доверия для мода<br />
  punish.ts      - кик и уведомления<br />
  loop.ts         - события и таймер<br />
  detectors/    - проверки (движение, деньги, оружие и т.д.)</blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b">Скачать</span><br />
<ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/18jqtH36cUfiVSk9kaSeJYIbwCXuDOpXO/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/18jqtH36...sp=sharing</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.by/d/5oP0YEbOyI7oGQ" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.by/d/5oP0YEbOyI7oGQ</a><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Los Santos Role Play (LSRP) v2]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6474</link>
			<pubDate>Sat, 26 Sep 2026 12:43:54 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6474</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">LSRP - Обновление до версии 2</span></span></div>
Во второй версии проекта было добавлено большое количество нового игрового функционала, расширены возможности организаций, администрации и игроков, а также доработаны основные игровые системы.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Транспорт</span><ul class="mycode_list"><li>Добавлен полноценный транспортный модуль.<br />
</li>
<li>Добавлены скутеры у ЖД Лос-Сантоса, доступные без водительских прав.<br />
</li>
<li>Добавлена система водительских прав.<br />
</li>
<li>Разделены категории лицензий на автомобиль, мотоцикл, воздушный и водный транспорт, а также оружие.<br />
</li>
<li>Добавлено ручное управление двигателем.<br />
</li>
<li>Добавлено отдельное управление фарами.<br />
</li>
<li>Добавлен ограничитель скорости для автомобилей.<br />
</li>
<li>Ограничитель сохраняется за конкретным автомобилем и действует для следующего водителя.<br />
</li>
<li>Добавлен новый водительский спидометр с отображением скорости, состояния двигателя, фар и других параметров.<br />
</li>
<li>Для транспорта организаций добавлены ограничения доступа.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Банк</span><ul class="mycode_list"><li>Добавлена полноценная банковская система.<br />
</li>
<li>Добавлены банковские счета игроков.<br />
</li>
<li>Пополнение и снятие денежных средств.<br />
</li>
<li>Переводы денег между игроками.<br />
</li>
<li>Банковский баланс отображается в статистике персонажа.<br />
</li>
<li>Зарплата государственных организаций теперь поступает непосредственно на банковский счёт.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Payday и прокачка персонажа</span><ul class="mycode_list"><li>Добавлена система Payday.<br />
</li>
<li>За Payday игрок получает опыт.<br />
</li>
<li>Добавлена автоматическая прокачка уровня.<br />
</li>
<li>Добавлена система законопослушности.<br />
</li>
<li>Законопослушность отображается в статистике и паспорте персонажа.<br />
</li>
<li>Добавлены звуковые уведомления о получении Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Сейф-зоны</span><br />
Добавлены безопасные территории:<ul class="mycode_list"><li>ЖД вокзал;<br />
</li>
<li>Мэрия;<br />
</li>
<li>Больница;<br />
</li>
<li>Шахта;<br />
</li>
<li>Автошкола.<br />
</li>
</ul>
В безопасных зонах игроки не могут наносить друг другу урон.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Тюрьма</span><ul class="mycode_list"><li>Добавлена полноценная система тюрьмы.<br />
</li>
<li>Добавлена отдельная локация тюрьмы.<br />
</li>
<li>Добавлены камеры, холл, спортзал, кухня и внутренний двор.<br />
</li>
<li>Добавлен служебный доступ сотрудников полиции и FBI.<br />
</li>
<li>Добавлена отдельная оружейная комната.<br />
</li>
<li>Добавлен тюремный транспорт.<br />
</li>
<li>Добавлена система управления тюремным двором.<br />
</li>
<li>Администраторы могут отправлять игроков в тюрьму на определённый срок с указанием причины.<br />
</li>
<li>После смерти или переподключения срок заключения не сбрасывается.<br />
</li>
<li>После окончания срока игрок автоматически освобождается.<br />
</li>
<li>Добавлена возможность досрочного освобождения через администрацию.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Репорт и связь с администрацией</span><ul class="mycode_list"><li>Добавлена система /report.<br />
</li>
<li>Репорт можно отправить как отдельной командой, так и через меню игрока.<br />
</li>
<li>Добавлен кулдаун на отправку репортов.<br />
</li>
<li>Администраторы получают информацию об отправителе и его сообщении.<br />
</li>
<li>Добавлена команда /ans для ответа игроку.<br />
</li>
<li>При ответе игрок получает отдельное уведомление и звуковой сигнал.<br />
</li>
<li>Система репортов работает независимо от мута игрового чата.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мут чата</span><ul class="mycode_list"><li>Добавлена система временного мута.<br />
</li>
<li>Администратор может указать срок и причину наказания.<br />
</li>
<li>Мут распространяется на обычный чат и основные команды общения.<br />
</li>
<li>Репорт остаётся доступен даже при активном муте.<br />
</li>
<li>После окончания наказания игрок получает уведомление о восстановлении возможности общаться.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Администрация</span><br />
Админ-система была значительно расширена.<br />
Добавлены новые возможности:<ul class="mycode_list"><li>ответы на репорты;<br />
</li>
<li>выдача мута;<br />
</li>
<li>создание и удаление административного транспорта;<br />
</li>
<li>отправка игроков в тюрьму;<br />
</li>
<li>освобождение из тюрьмы;<br />
</li>
<li>телепортация;<br />
</li>
<li>респавн транспорта;<br />
</li>
<li>изменение гражданского скина;<br />
</li>
<li>выдача и снятие банов;<br />
</li>
<li>снятие бана;<br />
</li>
<li>телепортация в интерьеры;<br />
</li>
<li>назначение лидеров организаций;<br />
</li>
<li>управление цветом гангзон;<br />
</li>
<li>выдача денег наличными или на банковский счёт;<br />
</li>
<li>изменение уровня игрока.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Государственные организации</span><br />
Расширена система государственных организаций.<br />
Добавлены и полноценно настроены:<ul class="mycode_list"><li>Армия;<br />
</li>
<li>Больница;<br />
</li>
<li>Мэрия;<br />
</li>
<li>Областная полиция;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Автошкола;<br />
</li>
<li>Радиоцентр.<br />
</li>
</ul>
Для организаций добавлены:<ul class="mycode_list"><li>собственные ранги;<br />
</li>
<li>отдельные точки появления;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>служебные помещения;<br />
</li>
<li>оружейные;<br />
</li>
<li>служебные входы;<br />
</li>
<li>крыши и парковки;<br />
</li>
<li>ограничения доступа к транспорту и помещениям;<br />
</li>
<li>внутренняя организационная связь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Больница</span><ul class="mycode_list"><li>Больница стала полноценной государственной организацией.<br />
</li>
<li>Добавлена система рангов.<br />
</li>
<li>Добавлен специализированный транспорт.<br />
</li>
<li>Добавлены служебные помещения.<br />
</li>
<li>Добавлен доступ на крышу.<br />
</li>
<li>Настроен отдельный спавн сотрудников.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мэрия</span><ul class="mycode_list"><li>Добавлена полноценная организация Мэрии.<br />
</li>
<li>Добавлена система рангов.<br />
</li>
<li>Добавлен собственный транспорт.<br />
</li>
<li>Добавлен служебный склад.<br />
</li>
<li>Добавлены служебные входы.<br />
</li>
<li>Добавлен доступ на крышу.<br />
</li>
<li>Настроена внутренняя организационная связь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Полиция и FBI</span><br />
Расширены возможности полицейских организаций.<br />
Добавлены:<ul class="mycode_list"><li>отдельные подразделения полиции;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>служебные гаражи;<br />
</li>
<li>оружейные;<br />
</li>
<li>служебные помещения;<br />
</li>
<li>крыши;<br />
</li>
<li>ограничение доступа к служебному транспорту;<br />
</li>
<li>специальные транспортные средства;<br />
</li>
<li>дополнительное вооружение FBI;<br />
</li>
<li>отдельные точки появления сотрудников.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Автошкола</span><br />
Добавлена полноценная система автошколы.<ul class="mycode_list"><li>Добавлено получение водительских лицензий.<br />
</li>
<li>Добавлена продажа лицензий игрокам.<br />
</li>
<li>Перед покупкой игрок получает предложение с указанием категории и стоимости.<br />
</li>
<li>Добавлено подтверждение покупки.<br />
</li>
<li>Добавлена теория по правилам дорожного движения.<br />
</li>
<li>Добавлен тест из нескольких вопросов.<br />
</li>
<li>Добавлен практический экзамен.<br />
</li>
<li>Для практики используются специальные автомобили автошколы.<br />
</li>
<li>После успешной сдачи экзамена соответствующая лицензия выдаётся персонажу.<br />
</li>
<li>Добавлены отдельные категории лицензий.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Радиоцентр</span><br />
Добавлен полноценный Радиоцентр.<ul class="mycode_list"><li>Добавлена собственная организация и ранговая система.<br />
</li>
<li>Добавлен служебный транспорт.<br />
</li>
<li>Добавлен офис.<br />
</li>
<li>Добавлена крыша.<br />
</li>
<li>Добавлено специальное оборудование.<br />
</li>
<li>Добавлена система игровых объявлений.<br />
</li>
<li>Игроки могут отправлять объявления через /ad.<br />
</li>
<li>Объявления проходят через сотрудников Радиоцентра.<br />
</li>
<li>Сотрудники могут редактировать или отклонять объявления.<br />
</li>
<li>Добавлена очередь объявлений.<br />
</li>
<li>Между публикациями установлен интервал.<br />
</li>
<li>Добавлена возможность работы с объявлениями из служебного транспорта.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Банды</span><br />
Добавлены пять полноценных банд:<ul class="mycode_list"><li>Grove Street;<br />
</li>
<li>The Ballas;<br />
</li>
<li>Los Santos Vagos;<br />
</li>
<li>The Rifa;<br />
</li>
<li>Varios Los Aztecas.<br />
</li>
</ul>
Для банд добавлены:<ul class="mycode_list"><li>собственные HQ;<br />
</li>
<li>отдельные интерьеры;<br />
</li>
<li>ранги;<br />
</li>
<li>организационные цвета;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>управление составом;<br />
</li>
<li>приглашение и увольнение игроков;<br />
</li>
<li>повышение и понижение рангов;<br />
</li>
<li>общая радиосвязь;<br />
</li>
<li>система гангзон.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мафии</span><br />
Добавлены три мафиозные организации:<ul class="mycode_list"><li>La Cosa Nostra;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Русская мафия.<br />
</li>
</ul>
Для каждой семьи добавлены:<ul class="mycode_list"><li>собственная штаб-квартира;<br />
</li>
<li>отдельный интерьер;<br />
</li>
<li>организационные цвета;<br />
</li>
<li>ранги;<br />
</li>
<li>управление составом;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>закрытые территории и ворота;<br />
</li>
<li>внутренняя радиосвязь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Гангзоны и капты</span><br />
Добавлена полноценная система территорий банд.<ul class="mycode_list"><li>На карте появились гангзоны.<br />
</li>
<li>Каждая территория имеет своего владельца.<br />
</li>
<li>Территории отображаются цветом соответствующей банды.<br />
</li>
<li>Добавлена команда /capture.<br />
</li>
<li>Банды могут начинать захват чужих территорий.<br />
</li>
<li>Добавлен ограниченный по времени капт.<br />
</li>
<li>Для начала захвата требуется наличие защитников.<br />
</li>
<li>Очки во время капта начисляются за убийства противников.<br />
</li>
<li>По итогам захвата территория переходит к победившей банде.<br />
</li>
<li>Во время капта отображаются время, участники и текущий счёт.<br />
</li>
<li>Добавлена отдельная GPS-метка территории.<br />
</li>
<li>Добавлено отображение района карты.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Чат и общение</span><ul class="mycode_list"><li>Обновлён внешний вид игрового чата.<br />
</li>
<li>Имя игрока теперь отображается вместе с его ID.<br />
</li>
<li>Цвет ника зависит от организации.<br />
</li>
<li>Добавлена корректная форма обращения с учётом пола персонажа.<br />
</li>
<li>Добавлены организационные каналы связи.<br />
</li>
</ul>
Новые каналы:<ul class="mycode_list"><li>/r - рация государственных организаций;<br />
</li>
<li>/f - связь банд и мафий;<br />
</li>
<li>/d - общий департамент государственных организаций;<br />
</li>
<li>/gov - официальные сообщения организации.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Новые команды игрока</span><br />
Добавлены новые игровые команды:<ul class="mycode_list"><li>/report - связь с администрацией;<br />
</li>
<li>/limit - ограничитель скорости;<br />
</li>
<li>/invite - приглашение в организацию;<br />
</li>
<li>/uninvite - увольнение;<br />
</li>
<li>/rank - управление рангом;<br />
</li>
<li>/r - организационная рация;<br />
</li>
<li>/f - связь банд и мафий;<br />
</li>
<li>/d - департамент;<br />
</li>
<li>/gov - государственные объявления;<br />
</li>
<li>/capture - захват территории;<br />
</li>
<li>/time - просмотр времени и оставшихся наказаний;<br />
</li>
<li>/lic - просмотр лицензий;<br />
</li>
<li>/selllic - продажа лицензии сотрудником автошколы;<br />
</li>
<li>/ad - подача объявления;<br />
</li>
<li>/edit - работа сотрудника Радиоцентра с объявлением.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Статистика и паспорт</span><br />
В /stats и паспорте теперь отображается дополнительная информация:<ul class="mycode_list"><li>банковский баланс;<br />
</li>
<li>законопослушность;<br />
</li>
<li>текущая организация;<br />
</li>
<li>имеющиеся лицензии.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">GPS и карта</span><br />
Расширена система навигации.<br />
Добавлены метки:<ul class="mycode_list"><li>ЖД ЛС;<br />
</li>
<li>Тюрьма;<br />
</li>
<li>Банк;<br />
</li>
<li>Областная полиция;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Автошкола;<br />
</li>
<li>LCN;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Русская мафия;<br />
</li>
<li>Grove Street;<br />
</li>
<li>Ballas;<br />
</li>
<li>Vagos;<br />
</li>
<li>Rifa;<br />
</li>
<li>Aztecas.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Регистрация персонажа</span><br />
Обновлена система выбора скина при регистрации.<ul class="mycode_list"><li>Добавлен визуальный выбор персонажа.<br />
</li>
<li>Добавлена отдельная подборка мужских и женских скинов.<br />
</li>
<li>Добавлено управление выбором с помощью стрелок.<br />
</li>
<li>Добавлены звуковые эффекты.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Звуковые эффекты</span><br />
Добавлены новые звуки для игровых действий:<ul class="mycode_list"><li>выбор скина;<br />
</li>
<li>ответ администратора;<br />
</li>
<li>включение фар;<br />
</li>
<li>получение Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Кириллица</span><ul class="mycode_list"><li>исправлена кириллица - теперь весь текст корректно отображается на русском языке.<br />
</li>
<li>отдельная благодарность за помощь в исправлении: chromiusj.<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b">Итог</span><br />
Вторая версия значительно расширяет игровой мир и превращает базовую версию проекта в более полноценный RP-сервер.<br />
Все основные новые игровые системы уже объединены между собой: организации получили собственный транспорт и инфраструктуру, игроки - лицензии, банк, законопослушность и новые способы взаимодействия, а банды - собственные территории и систему захвата.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Скачать</span><ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/16lMRuzjqEOJm1aSnP9fRTESQqTH_j5aM/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/16lMRuzj...sp=sharing</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.ru/d/JooK1ML31pMMaA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/JooK1ML31pMMaA</a><br />
</li>
</ul>
]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b"><span style="font-size: large;" class="mycode_size">LSRP - Обновление до версии 2</span></span></div>
Во второй версии проекта было добавлено большое количество нового игрового функционала, расширены возможности организаций, администрации и игроков, а также доработаны основные игровые системы.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Транспорт</span><ul class="mycode_list"><li>Добавлен полноценный транспортный модуль.<br />
</li>
<li>Добавлены скутеры у ЖД Лос-Сантоса, доступные без водительских прав.<br />
</li>
<li>Добавлена система водительских прав.<br />
</li>
<li>Разделены категории лицензий на автомобиль, мотоцикл, воздушный и водный транспорт, а также оружие.<br />
</li>
<li>Добавлено ручное управление двигателем.<br />
</li>
<li>Добавлено отдельное управление фарами.<br />
</li>
<li>Добавлен ограничитель скорости для автомобилей.<br />
</li>
<li>Ограничитель сохраняется за конкретным автомобилем и действует для следующего водителя.<br />
</li>
<li>Добавлен новый водительский спидометр с отображением скорости, состояния двигателя, фар и других параметров.<br />
</li>
<li>Для транспорта организаций добавлены ограничения доступа.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Банк</span><ul class="mycode_list"><li>Добавлена полноценная банковская система.<br />
</li>
<li>Добавлены банковские счета игроков.<br />
</li>
<li>Пополнение и снятие денежных средств.<br />
</li>
<li>Переводы денег между игроками.<br />
</li>
<li>Банковский баланс отображается в статистике персонажа.<br />
</li>
<li>Зарплата государственных организаций теперь поступает непосредственно на банковский счёт.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Payday и прокачка персонажа</span><ul class="mycode_list"><li>Добавлена система Payday.<br />
</li>
<li>За Payday игрок получает опыт.<br />
</li>
<li>Добавлена автоматическая прокачка уровня.<br />
</li>
<li>Добавлена система законопослушности.<br />
</li>
<li>Законопослушность отображается в статистике и паспорте персонажа.<br />
</li>
<li>Добавлены звуковые уведомления о получении Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Сейф-зоны</span><br />
Добавлены безопасные территории:<ul class="mycode_list"><li>ЖД вокзал;<br />
</li>
<li>Мэрия;<br />
</li>
<li>Больница;<br />
</li>
<li>Шахта;<br />
</li>
<li>Автошкола.<br />
</li>
</ul>
В безопасных зонах игроки не могут наносить друг другу урон.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Тюрьма</span><ul class="mycode_list"><li>Добавлена полноценная система тюрьмы.<br />
</li>
<li>Добавлена отдельная локация тюрьмы.<br />
</li>
<li>Добавлены камеры, холл, спортзал, кухня и внутренний двор.<br />
</li>
<li>Добавлен служебный доступ сотрудников полиции и FBI.<br />
</li>
<li>Добавлена отдельная оружейная комната.<br />
</li>
<li>Добавлен тюремный транспорт.<br />
</li>
<li>Добавлена система управления тюремным двором.<br />
</li>
<li>Администраторы могут отправлять игроков в тюрьму на определённый срок с указанием причины.<br />
</li>
<li>После смерти или переподключения срок заключения не сбрасывается.<br />
</li>
<li>После окончания срока игрок автоматически освобождается.<br />
</li>
<li>Добавлена возможность досрочного освобождения через администрацию.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Репорт и связь с администрацией</span><ul class="mycode_list"><li>Добавлена система /report.<br />
</li>
<li>Репорт можно отправить как отдельной командой, так и через меню игрока.<br />
</li>
<li>Добавлен кулдаун на отправку репортов.<br />
</li>
<li>Администраторы получают информацию об отправителе и его сообщении.<br />
</li>
<li>Добавлена команда /ans для ответа игроку.<br />
</li>
<li>При ответе игрок получает отдельное уведомление и звуковой сигнал.<br />
</li>
<li>Система репортов работает независимо от мута игрового чата.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мут чата</span><ul class="mycode_list"><li>Добавлена система временного мута.<br />
</li>
<li>Администратор может указать срок и причину наказания.<br />
</li>
<li>Мут распространяется на обычный чат и основные команды общения.<br />
</li>
<li>Репорт остаётся доступен даже при активном муте.<br />
</li>
<li>После окончания наказания игрок получает уведомление о восстановлении возможности общаться.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Администрация</span><br />
Админ-система была значительно расширена.<br />
Добавлены новые возможности:<ul class="mycode_list"><li>ответы на репорты;<br />
</li>
<li>выдача мута;<br />
</li>
<li>создание и удаление административного транспорта;<br />
</li>
<li>отправка игроков в тюрьму;<br />
</li>
<li>освобождение из тюрьмы;<br />
</li>
<li>телепортация;<br />
</li>
<li>респавн транспорта;<br />
</li>
<li>изменение гражданского скина;<br />
</li>
<li>выдача и снятие банов;<br />
</li>
<li>снятие бана;<br />
</li>
<li>телепортация в интерьеры;<br />
</li>
<li>назначение лидеров организаций;<br />
</li>
<li>управление цветом гангзон;<br />
</li>
<li>выдача денег наличными или на банковский счёт;<br />
</li>
<li>изменение уровня игрока.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Государственные организации</span><br />
Расширена система государственных организаций.<br />
Добавлены и полноценно настроены:<ul class="mycode_list"><li>Армия;<br />
</li>
<li>Больница;<br />
</li>
<li>Мэрия;<br />
</li>
<li>Областная полиция;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Автошкола;<br />
</li>
<li>Радиоцентр.<br />
</li>
</ul>
Для организаций добавлены:<ul class="mycode_list"><li>собственные ранги;<br />
</li>
<li>отдельные точки появления;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>служебные помещения;<br />
</li>
<li>оружейные;<br />
</li>
<li>служебные входы;<br />
</li>
<li>крыши и парковки;<br />
</li>
<li>ограничения доступа к транспорту и помещениям;<br />
</li>
<li>внутренняя организационная связь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Больница</span><ul class="mycode_list"><li>Больница стала полноценной государственной организацией.<br />
</li>
<li>Добавлена система рангов.<br />
</li>
<li>Добавлен специализированный транспорт.<br />
</li>
<li>Добавлены служебные помещения.<br />
</li>
<li>Добавлен доступ на крышу.<br />
</li>
<li>Настроен отдельный спавн сотрудников.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мэрия</span><ul class="mycode_list"><li>Добавлена полноценная организация Мэрии.<br />
</li>
<li>Добавлена система рангов.<br />
</li>
<li>Добавлен собственный транспорт.<br />
</li>
<li>Добавлен служебный склад.<br />
</li>
<li>Добавлены служебные входы.<br />
</li>
<li>Добавлен доступ на крышу.<br />
</li>
<li>Настроена внутренняя организационная связь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Полиция и FBI</span><br />
Расширены возможности полицейских организаций.<br />
Добавлены:<ul class="mycode_list"><li>отдельные подразделения полиции;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>служебные гаражи;<br />
</li>
<li>оружейные;<br />
</li>
<li>служебные помещения;<br />
</li>
<li>крыши;<br />
</li>
<li>ограничение доступа к служебному транспорту;<br />
</li>
<li>специальные транспортные средства;<br />
</li>
<li>дополнительное вооружение FBI;<br />
</li>
<li>отдельные точки появления сотрудников.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Автошкола</span><br />
Добавлена полноценная система автошколы.<ul class="mycode_list"><li>Добавлено получение водительских лицензий.<br />
</li>
<li>Добавлена продажа лицензий игрокам.<br />
</li>
<li>Перед покупкой игрок получает предложение с указанием категории и стоимости.<br />
</li>
<li>Добавлено подтверждение покупки.<br />
</li>
<li>Добавлена теория по правилам дорожного движения.<br />
</li>
<li>Добавлен тест из нескольких вопросов.<br />
</li>
<li>Добавлен практический экзамен.<br />
</li>
<li>Для практики используются специальные автомобили автошколы.<br />
</li>
<li>После успешной сдачи экзамена соответствующая лицензия выдаётся персонажу.<br />
</li>
<li>Добавлены отдельные категории лицензий.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Радиоцентр</span><br />
Добавлен полноценный Радиоцентр.<ul class="mycode_list"><li>Добавлена собственная организация и ранговая система.<br />
</li>
<li>Добавлен служебный транспорт.<br />
</li>
<li>Добавлен офис.<br />
</li>
<li>Добавлена крыша.<br />
</li>
<li>Добавлено специальное оборудование.<br />
</li>
<li>Добавлена система игровых объявлений.<br />
</li>
<li>Игроки могут отправлять объявления через /ad.<br />
</li>
<li>Объявления проходят через сотрудников Радиоцентра.<br />
</li>
<li>Сотрудники могут редактировать или отклонять объявления.<br />
</li>
<li>Добавлена очередь объявлений.<br />
</li>
<li>Между публикациями установлен интервал.<br />
</li>
<li>Добавлена возможность работы с объявлениями из служебного транспорта.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Банды</span><br />
Добавлены пять полноценных банд:<ul class="mycode_list"><li>Grove Street;<br />
</li>
<li>The Ballas;<br />
</li>
<li>Los Santos Vagos;<br />
</li>
<li>The Rifa;<br />
</li>
<li>Varios Los Aztecas.<br />
</li>
</ul>
Для банд добавлены:<ul class="mycode_list"><li>собственные HQ;<br />
</li>
<li>отдельные интерьеры;<br />
</li>
<li>ранги;<br />
</li>
<li>организационные цвета;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>управление составом;<br />
</li>
<li>приглашение и увольнение игроков;<br />
</li>
<li>повышение и понижение рангов;<br />
</li>
<li>общая радиосвязь;<br />
</li>
<li>система гангзон.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Мафии</span><br />
Добавлены три мафиозные организации:<ul class="mycode_list"><li>La Cosa Nostra;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Русская мафия.<br />
</li>
</ul>
Для каждой семьи добавлены:<ul class="mycode_list"><li>собственная штаб-квартира;<br />
</li>
<li>отдельный интерьер;<br />
</li>
<li>организационные цвета;<br />
</li>
<li>ранги;<br />
</li>
<li>управление составом;<br />
</li>
<li>собственный транспорт;<br />
</li>
<li>закрытые территории и ворота;<br />
</li>
<li>внутренняя радиосвязь.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Гангзоны и капты</span><br />
Добавлена полноценная система территорий банд.<ul class="mycode_list"><li>На карте появились гангзоны.<br />
</li>
<li>Каждая территория имеет своего владельца.<br />
</li>
<li>Территории отображаются цветом соответствующей банды.<br />
</li>
<li>Добавлена команда /capture.<br />
</li>
<li>Банды могут начинать захват чужих территорий.<br />
</li>
<li>Добавлен ограниченный по времени капт.<br />
</li>
<li>Для начала захвата требуется наличие защитников.<br />
</li>
<li>Очки во время капта начисляются за убийства противников.<br />
</li>
<li>По итогам захвата территория переходит к победившей банде.<br />
</li>
<li>Во время капта отображаются время, участники и текущий счёт.<br />
</li>
<li>Добавлена отдельная GPS-метка территории.<br />
</li>
<li>Добавлено отображение района карты.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Чат и общение</span><ul class="mycode_list"><li>Обновлён внешний вид игрового чата.<br />
</li>
<li>Имя игрока теперь отображается вместе с его ID.<br />
</li>
<li>Цвет ника зависит от организации.<br />
</li>
<li>Добавлена корректная форма обращения с учётом пола персонажа.<br />
</li>
<li>Добавлены организационные каналы связи.<br />
</li>
</ul>
Новые каналы:<ul class="mycode_list"><li>/r - рация государственных организаций;<br />
</li>
<li>/f - связь банд и мафий;<br />
</li>
<li>/d - общий департамент государственных организаций;<br />
</li>
<li>/gov - официальные сообщения организации.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Новые команды игрока</span><br />
Добавлены новые игровые команды:<ul class="mycode_list"><li>/report - связь с администрацией;<br />
</li>
<li>/limit - ограничитель скорости;<br />
</li>
<li>/invite - приглашение в организацию;<br />
</li>
<li>/uninvite - увольнение;<br />
</li>
<li>/rank - управление рангом;<br />
</li>
<li>/r - организационная рация;<br />
</li>
<li>/f - связь банд и мафий;<br />
</li>
<li>/d - департамент;<br />
</li>
<li>/gov - государственные объявления;<br />
</li>
<li>/capture - захват территории;<br />
</li>
<li>/time - просмотр времени и оставшихся наказаний;<br />
</li>
<li>/lic - просмотр лицензий;<br />
</li>
<li>/selllic - продажа лицензии сотрудником автошколы;<br />
</li>
<li>/ad - подача объявления;<br />
</li>
<li>/edit - работа сотрудника Радиоцентра с объявлением.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Статистика и паспорт</span><br />
В /stats и паспорте теперь отображается дополнительная информация:<ul class="mycode_list"><li>банковский баланс;<br />
</li>
<li>законопослушность;<br />
</li>
<li>текущая организация;<br />
</li>
<li>имеющиеся лицензии.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">GPS и карта</span><br />
Расширена система навигации.<br />
Добавлены метки:<ul class="mycode_list"><li>ЖД ЛС;<br />
</li>
<li>Тюрьма;<br />
</li>
<li>Банк;<br />
</li>
<li>Областная полиция;<br />
</li>
<li>LSPD;<br />
</li>
<li>FBI;<br />
</li>
<li>Автошкола;<br />
</li>
<li>LCN;<br />
</li>
<li>Yakuza;<br />
</li>
<li>Русская мафия;<br />
</li>
<li>Grove Street;<br />
</li>
<li>Ballas;<br />
</li>
<li>Vagos;<br />
</li>
<li>Rifa;<br />
</li>
<li>Aztecas.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Регистрация персонажа</span><br />
Обновлена система выбора скина при регистрации.<ul class="mycode_list"><li>Добавлен визуальный выбор персонажа.<br />
</li>
<li>Добавлена отдельная подборка мужских и женских скинов.<br />
</li>
<li>Добавлено управление выбором с помощью стрелок.<br />
</li>
<li>Добавлены звуковые эффекты.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Звуковые эффекты</span><br />
Добавлены новые звуки для игровых действий:<ul class="mycode_list"><li>выбор скина;<br />
</li>
<li>ответ администратора;<br />
</li>
<li>включение фар;<br />
</li>
<li>получение Payday.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Кириллица</span><ul class="mycode_list"><li>исправлена кириллица - теперь весь текст корректно отображается на русском языке.<br />
</li>
<li>отдельная благодарность за помощь в исправлении: chromiusj.<br />
</li>
</ul>
<br />
<hr class="mycode_hr" />
<span style="font-weight: bold;" class="mycode_b">Итог</span><br />
Вторая версия значительно расширяет игровой мир и превращает базовую версию проекта в более полноценный RP-сервер.<br />
Все основные новые игровые системы уже объединены между собой: организации получили собственный транспорт и инфраструктуру, игроки - лицензии, банк, законопослушность и новые способы взаимодействия, а банды - собственные территории и систему захвата.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Скачать</span><ul class="mycode_list"><li>Google Диск: <a href="https://drive.google.com/file/d/16lMRuzjqEOJm1aSnP9fRTESQqTH_j5aM/view?usp=sharing" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/16lMRuzj...sp=sharing</a><br />
</li>
<li>Яндекс Диск: <a href="https://disk.yandex.ru/d/JooK1ML31pMMaA" target="_blank" rel="noopener" class="mycode_url">https://disk.yandex.ru/d/JooK1ML31pMMaA</a><br />
</li>
</ul>
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Los Santos Role Play (LSRP)]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6473</link>
			<pubDate>Sat, 26 Sep 2026 12:38:20 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=8487">markelov666</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6473</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP)</span></span></div>
<br />
<br />
Сервер крутится на open.mp. Вся игровая логика написана на TypeScript и собирается в JavaScript. Pawn почти не используется: в папке gamemodes лежит крошечная заглушка, без нее движок не стартует, но правил игры там нет. Аккаунты, деньги, здоровье, админка и организации хранятся в MySQL.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧТО НУЖНО, ЧТОБЫ ЗАПУСТИТЬ</span><ul class="mycode_list"><li>Windows (как сейчас собрано) или Linux, но тогда нужны linux-файлы open.mp, не omp-server.exe.<br />
</li>
<li>Сам open.mp: omp-server.exe, libnode.dll, папка components.<br />
</li>
<li>Node.js 18 или новее - чтобы собрать мод.<br />
</li>
<li>MySQL 8, база lsrp. Доступ прописывается в файле .env в корне (скопировать из .env.example). На своей машине часто root без пароля, на настоящем сервере так делать нельзя.<br />
</li>
<li>Клиент SA-MP / open.mp.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Команды из корня проекта:</span><br />
copy .env.example .env (один раз, прописать MySQL)<br />
npm run build (собрать игровой код)<br />
npm start (запустить omp-server.exe)<br />
<br />
После любой правки кода снова <span style="font-weight: bold;" class="mycode_b">npm run build</span> и обязательно перезапустить сервер. На лету код не подхватывается.<br />
<br />
Проверка типов: npm run typecheck.<br />
Сборка при каждом сохранении файла: npm run dev - сервер все равно перезапускаешь руками.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ГДЕ ЛЕЖИТ ДОКУМЕНТАЦИЯ</span><br />
Подробно, уже техническим языком:<br />
<br />
README.md - короткий старт<br />
docs/docs.md - устройство мода, модули, база, команды, проверка<br />
docs/deploy.md - как выложить на VPS<br />
sql/schema.sql - как выглядит таблица игроков<br />
.env.example - какие поля нужны для базы<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК УСТРОЕНА ПАПКА</span><br />
Корень - это папка, из которой запускается сервер. Рядом лежат config.json (название, порт, слоты), bans.json (баны по IP), maps (объекты на карте), sql, gamemodes.<br />
<br />
Игровой код: resources/src - править здесь.<br />
Сборка: resources/dist - сам не трогать, появляется после npm run build.<br />
<br />
Карты: maps/*.txt (тюрьма, больница, шахта, армия). Ворота армии создаются кодом, в army.txt их дублировать не надо.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК ИГРОК ПОПАДАЕТ В ИГРУ</span><br />
Пока нет аккаунта, человек в спеке, чат и команды не работают.<br />
<br />
Новый ник: правила сервера (принять или кик) &gt; почта &gt; пароль два раза &gt; дата рождения (16–80 лет) &gt; пол &gt; скин &gt; подтверждение. Стартовые 100 HP и 500 долларов.<br />
<br />
Есть аккаунт: только пароль. Три ошибки - кик. Закрыл окно - тоже кик.<br />
<br />
Пароли в базе не открытым текстом. Ник берется только из клиента, подделать его окном регистрации нельзя.<br />
<br />
В правом верхнем углу логотип "Los Santos RP". Время в мире совпадает с часами компьютера, на котором крутится сервер.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЗДОРОВЬЕ, СМЕРТЬ, БОЛЬНИЦА</span><br />
Здоровье запоминается. Раз в 15 минут снимается 1 HP, ниже 20 само не падает (если человек не в больничном режиме). При выходе и раз в 3 минуты персонаж сохраняется.<br />
<br />
Умер - очнулся в городской больнице, здоровье 20, нужно лечение. С улицы заходишь внутрь, ложишься на койку командой /hospital. Пока лежишь рядом с койкой - здоровье растет. Встал и отошел - лечение остановилось. Выйти на улицу, пока не вылечился, нельзя. Когда 100 HP - можно уходить.<br />
<br />
Койка чужому с улицы не дается: только тем, кого привезли после смерти (или кто еще не долечился).<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧАТ И RP-КОМАНДЫ</span><br />
Обычный чат слышат только рядом, примерно 20 метров, тот же интерьер и мир. Над головой пузырь и анимация разговора. В строке ник и ID.<br />
<br />
/ me /do /try /todo - отыгровка<br />
/b - внеигровой чат рядом; если админ вошёл в админку, в /b пишется Administrator<br />
/s - крик, дальше<br />
/w - шепот, совсем близко<br />
/help - список команд<br />
/mn - меню<br />
/stats - своя статистика<br />
<br />
Цветовые коды в чате вырезаются, чужие сообщения перекрасить нельзя.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ГОРОД И РАБОТА</span><br />
Мэрия: паспорт и приглашение (кого указали при регистрации - один раз).<br />
<br />
GPS: метки по городу.<br />
<br />
Шахта: нанимаешься, копаешь, руду везешь, деньги выдают у точки найма. Прыжок/стрельба по пути могут сбросить груз. Умер или вышел - смена срывается, зарплату за недовезенное не дают.<br />
<br />
Каждый час в :00:<br />
всем онлайн капает опыт и уровень;<br />
зарплату получают только члены организации, по рангу;<br />
кто в АФК (свернул игру или долго стоит) - зарплату не получает.<br />
<br />
Деньги считает сервер, не полоска в клиенте. Чит на деньги в базу не пишется.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ОРГАНИЗАЦИИ</span><br />
Сейчас одна - армия. Цвет ника коричневый, свой скин по рангу, своя точка появления (телепорт на базу только при первом заходе за сессию, не каждый респавн).<br />
<br />
10 рангов, зарплата от 1500 до 9000. Лидер - 10 ранг. Выдать лидерку может админ 5 уровня. Паспорт обязателен.<br />
<br />
/leaders - кто из лидеров онлайн<br />
/r - рация своей организации<br />
<br />
Ворота базы: подойти пешком и нажать присед &copy; или посигналить из машины. Чужие не откроют. Через несколько секунд ворота сами закрываются.<br />
<br />
Выдать рядовых 1–9 рангов из игры пока нельзя только лидерку или правка базы руками.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">АДМИНКА</span><br />
Семь уровней. Вписать уровень в базу мало, нужно еще /alogin и свой пароль админки. Без этого админ-команды молчат, как будто их нет. /ahelp показывает только то, что доступно твоему уровню.<br />
<br />
1 - /a чат админов, /ahelp, /admins, телепорт кликом по карте<br />
2 - /kick<br />
3 - /ao объявление всем<br />
4 - /sethp (чужому админу, который уже в /alogin, HP не поставить; себе можно)<br />
5 - /makeleader<br />
6 - пусто<br />
7 - /makeadmin (выдать или снять 0–7)<br />
<br />
Первый вход в админку или после /makeadmin - придумать пароль. Три ошибки /alogin — кик.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧЕГО ЕЩЁ НЕТ</span><br />
Нет домов, инвентаря, нормального автопарка, личных сообщений, репорта, бана аккаунта (есть только бан по IP у движка), повышения обычных рангов органа из игры.<br />
<br />
Это каркас RP-сервера: вход, персонаж, чат, больница, мэрия, шахта, армия, админка, сохранение. Дальше можно наращивать по той же схеме: папка в resources/src/modules и подключение в index.ts.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК ВЫЛОЖИТЬ</span><br />
См. docs/deploy.md. Коротко: на сервере своя база и свой .env, не копировать локальную. Собрать npm run build. На Linux не тащить Windows .exe и папку node_modules с Windows. В config.json не включать RCON без своего пароля. Если сервер не для всех — выключить announce или поставить пароль на вход.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">СКАЧАТЬ</span><br />
Google Диск: <a href="https://www.blast.hk/redirect/aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xOWE4eFFCanI4WWo5cWlVMndxOHloU0E4R01wSXVhX2kvdmlldz91c3A9c2hhcmluZw" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/19a8xQBjr8Yj9qiU2wq8yhSA8GMpIua_i/view?usp=sharing</a>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Los Santos Role Play (LSRP)</span></span></div>
<br />
<br />
Сервер крутится на open.mp. Вся игровая логика написана на TypeScript и собирается в JavaScript. Pawn почти не используется: в папке gamemodes лежит крошечная заглушка, без нее движок не стартует, но правил игры там нет. Аккаунты, деньги, здоровье, админка и организации хранятся в MySQL.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧТО НУЖНО, ЧТОБЫ ЗАПУСТИТЬ</span><ul class="mycode_list"><li>Windows (как сейчас собрано) или Linux, но тогда нужны linux-файлы open.mp, не omp-server.exe.<br />
</li>
<li>Сам open.mp: omp-server.exe, libnode.dll, папка components.<br />
</li>
<li>Node.js 18 или новее - чтобы собрать мод.<br />
</li>
<li>MySQL 8, база lsrp. Доступ прописывается в файле .env в корне (скопировать из .env.example). На своей машине часто root без пароля, на настоящем сервере так делать нельзя.<br />
</li>
<li>Клиент SA-MP / open.mp.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">Команды из корня проекта:</span><br />
copy .env.example .env (один раз, прописать MySQL)<br />
npm run build (собрать игровой код)<br />
npm start (запустить omp-server.exe)<br />
<br />
После любой правки кода снова <span style="font-weight: bold;" class="mycode_b">npm run build</span> и обязательно перезапустить сервер. На лету код не подхватывается.<br />
<br />
Проверка типов: npm run typecheck.<br />
Сборка при каждом сохранении файла: npm run dev - сервер все равно перезапускаешь руками.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ГДЕ ЛЕЖИТ ДОКУМЕНТАЦИЯ</span><br />
Подробно, уже техническим языком:<br />
<br />
README.md - короткий старт<br />
docs/docs.md - устройство мода, модули, база, команды, проверка<br />
docs/deploy.md - как выложить на VPS<br />
sql/schema.sql - как выглядит таблица игроков<br />
.env.example - какие поля нужны для базы<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК УСТРОЕНА ПАПКА</span><br />
Корень - это папка, из которой запускается сервер. Рядом лежат config.json (название, порт, слоты), bans.json (баны по IP), maps (объекты на карте), sql, gamemodes.<br />
<br />
Игровой код: resources/src - править здесь.<br />
Сборка: resources/dist - сам не трогать, появляется после npm run build.<br />
<br />
Карты: maps/*.txt (тюрьма, больница, шахта, армия). Ворота армии создаются кодом, в army.txt их дублировать не надо.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК ИГРОК ПОПАДАЕТ В ИГРУ</span><br />
Пока нет аккаунта, человек в спеке, чат и команды не работают.<br />
<br />
Новый ник: правила сервера (принять или кик) &gt; почта &gt; пароль два раза &gt; дата рождения (16–80 лет) &gt; пол &gt; скин &gt; подтверждение. Стартовые 100 HP и 500 долларов.<br />
<br />
Есть аккаунт: только пароль. Три ошибки - кик. Закрыл окно - тоже кик.<br />
<br />
Пароли в базе не открытым текстом. Ник берется только из клиента, подделать его окном регистрации нельзя.<br />
<br />
В правом верхнем углу логотип "Los Santos RP". Время в мире совпадает с часами компьютера, на котором крутится сервер.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЗДОРОВЬЕ, СМЕРТЬ, БОЛЬНИЦА</span><br />
Здоровье запоминается. Раз в 15 минут снимается 1 HP, ниже 20 само не падает (если человек не в больничном режиме). При выходе и раз в 3 минуты персонаж сохраняется.<br />
<br />
Умер - очнулся в городской больнице, здоровье 20, нужно лечение. С улицы заходишь внутрь, ложишься на койку командой /hospital. Пока лежишь рядом с койкой - здоровье растет. Встал и отошел - лечение остановилось. Выйти на улицу, пока не вылечился, нельзя. Когда 100 HP - можно уходить.<br />
<br />
Койка чужому с улицы не дается: только тем, кого привезли после смерти (или кто еще не долечился).<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧАТ И RP-КОМАНДЫ</span><br />
Обычный чат слышат только рядом, примерно 20 метров, тот же интерьер и мир. Над головой пузырь и анимация разговора. В строке ник и ID.<br />
<br />
/ me /do /try /todo - отыгровка<br />
/b - внеигровой чат рядом; если админ вошёл в админку, в /b пишется Administrator<br />
/s - крик, дальше<br />
/w - шепот, совсем близко<br />
/help - список команд<br />
/mn - меню<br />
/stats - своя статистика<br />
<br />
Цветовые коды в чате вырезаются, чужие сообщения перекрасить нельзя.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ГОРОД И РАБОТА</span><br />
Мэрия: паспорт и приглашение (кого указали при регистрации - один раз).<br />
<br />
GPS: метки по городу.<br />
<br />
Шахта: нанимаешься, копаешь, руду везешь, деньги выдают у точки найма. Прыжок/стрельба по пути могут сбросить груз. Умер или вышел - смена срывается, зарплату за недовезенное не дают.<br />
<br />
Каждый час в :00:<br />
всем онлайн капает опыт и уровень;<br />
зарплату получают только члены организации, по рангу;<br />
кто в АФК (свернул игру или долго стоит) - зарплату не получает.<br />
<br />
Деньги считает сервер, не полоска в клиенте. Чит на деньги в базу не пишется.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ОРГАНИЗАЦИИ</span><br />
Сейчас одна - армия. Цвет ника коричневый, свой скин по рангу, своя точка появления (телепорт на базу только при первом заходе за сессию, не каждый респавн).<br />
<br />
10 рангов, зарплата от 1500 до 9000. Лидер - 10 ранг. Выдать лидерку может админ 5 уровня. Паспорт обязателен.<br />
<br />
/leaders - кто из лидеров онлайн<br />
/r - рация своей организации<br />
<br />
Ворота базы: подойти пешком и нажать присед &copy; или посигналить из машины. Чужие не откроют. Через несколько секунд ворота сами закрываются.<br />
<br />
Выдать рядовых 1–9 рангов из игры пока нельзя только лидерку или правка базы руками.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">АДМИНКА</span><br />
Семь уровней. Вписать уровень в базу мало, нужно еще /alogin и свой пароль админки. Без этого админ-команды молчат, как будто их нет. /ahelp показывает только то, что доступно твоему уровню.<br />
<br />
1 - /a чат админов, /ahelp, /admins, телепорт кликом по карте<br />
2 - /kick<br />
3 - /ao объявление всем<br />
4 - /sethp (чужому админу, который уже в /alogin, HP не поставить; себе можно)<br />
5 - /makeleader<br />
6 - пусто<br />
7 - /makeadmin (выдать или снять 0–7)<br />
<br />
Первый вход в админку или после /makeadmin - придумать пароль. Три ошибки /alogin — кик.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">ЧЕГО ЕЩЁ НЕТ</span><br />
Нет домов, инвентаря, нормального автопарка, личных сообщений, репорта, бана аккаунта (есть только бан по IP у движка), повышения обычных рангов органа из игры.<br />
<br />
Это каркас RP-сервера: вход, персонаж, чат, больница, мэрия, шахта, армия, админка, сохранение. Дальше можно наращивать по той же схеме: папка в resources/src/modules и подключение в index.ts.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">КАК ВЫЛОЖИТЬ</span><br />
См. docs/deploy.md. Коротко: на сервере своя база и свой .env, не копировать локальную. Собрать npm run build. На Linux не тащить Windows .exe и папку node_modules с Windows. В config.json не включать RCON без своего пароля. Если сервер не для всех — выключить announce или поставить пароль на вход.<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">СКАЧАТЬ</span><br />
Google Диск: <a href="https://www.blast.hk/redirect/aHR0cHM6Ly9kcml2ZS5nb29nbGUuY29tL2ZpbGUvZC8xOWE4eFFCanI4WWo5cWlVMndxOHloU0E4R01wSXVhX2kvdmlldz91c3A9c2hhcmluZw" target="_blank" rel="noopener" class="mycode_url">https://drive.google.com/file/d/19a8xQBjr8Yj9qiU2wq8yhSA8GMpIua_i/view?usp=sharing</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[email_samp for SA-MP and open.mp — SMTP straight from the server]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6472</link>
			<pubDate>Sat, 26 Sep 2026 07:23:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=7983">NullSablex</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6472</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #0e639c;" class="mycode_color">📧 email_samp 1.0.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">E-mail (SMTP) direto do servidor — SA-MP e open.mp, o mesmo binário</span><br />
<span style="font-style: italic;" class="mycode_i">Email (SMTP) straight from the server — SA-MP and open.mp, the same binary</span></span><br />
<br />
<a href="https://github.com/NullSablex/email-samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download</span></a> · <a href="https://github.com/NullSablex/email-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">GitHub</span></a> · <a href="https://email-samp.nullsablex.com/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Código de registro, recuperação de senha, aviso para a staff: sempre deu para fazer, mas nunca de dentro do servidor. Era requisição HTTP para um script PHP, PHPMailer do outro lado, um serviço externo no meio — três coisas para manter no ar só para mandar um e-mail. Este plugin fala <span style="font-weight: bold;" class="mycode_b">SMTP</span> e <span style="font-weight: bold;" class="mycode_b">TLS</span> por conta própria, e o envio cabe em uma linha.<br />
<br />
🇬🇧 Registration codes, password resets, staff alerts: always doable, never from inside the server. It meant an HTTP request to a PHP script, PHPMailer on the other end, some external service in between — three moving parts just to send one mail. This plugin speaks <span style="font-weight: bold;" class="mycode_b">SMTP</span> and <span style="font-weight: bold;" class="mycode_b">TLS</span> itself, and sending fits on one line.</blockquote>
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>email_setup();  // credenciais do .env, do ambiente ou do smtp.ini<br />
email_send_to("jogador@exemplo.com", "Bem-vindo", "Sua conta esta pronta.");</code></div></div><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">Nada trava.</span> Toda native retorna na hora: o e-mail sai em threads separadas e o resultado volta num callback, então relay lento não segura o tick.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">Nothing blocks.</span> Every native returns at once: mail leaves on worker threads and the result comes back in a callback, so a slow relay never holds the tick.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>email_send_to(email, "Bem-vindo", corpo, "OnMailSent", "d", playerid);<br />
<br />
Email::OnMailSent(success, playerid)<br />
{<br />
    SendClientMessage(playerid, -1, success ? ("E-mail enviado.") : ("Falhou."));<br />
    return 1;<br />
}</code></div></div><br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📦 Instalar é copiar um arquivo / Installing is copying one file</span></span><br />
<br />
🇧🇷 Sem PHPMailer, sem <span style="font-weight: bold;" class="mycode_b">sendmail</span>, sem OpenSSL no sistema: SMTP e TLS estão <span style="font-weight: bold;" class="mycode_b">compilados dentro do binário</span>. Funciona em host compartilhado, onde você não instala nada. E é <span style="font-weight: bold;" class="mycode_b">um arquivo só</span> para os dois servidores:<br />
🇬🇧 No PHPMailer, no <span style="font-weight: bold;" class="mycode_b">sendmail</span>, no system OpenSSL: SMTP and TLS are <span style="font-weight: bold;" class="mycode_b">compiled into the binary</span>. Works on shared hosting, where you install nothing. One file, both servers:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">SA-MP</span> — 🇧🇷 em <span style="font-weight: bold;" class="mycode_b">plugins/</span>, nome no <span style="font-weight: bold;" class="mycode_b">server.cfg</span> / 🇬🇧 in <span style="font-weight: bold;" class="mycode_b">plugins/</span>, name in <span style="font-weight: bold;" class="mycode_b">server.cfg</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">open.mp nativo</span> — 🇧🇷 em <span style="font-weight: bold;" class="mycode_b">components/</span>, encontrado sozinho / 🇬🇧 in <span style="font-weight: bold;" class="mycode_b">components/</span>, auto-discovered<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">open.mp legacy</span> — 🇧🇷 o mesmo arquivo em <span style="font-weight: bold;" class="mycode_b">plugins/</span> / 🇬🇧 same file in <span style="font-weight: bold;" class="mycode_b">plugins/</span><br />
</li>
</ul>
<br />
🇧🇷 Dois includes: <span style="font-weight: bold;" class="mycode_b">&lt;email_samp&gt;</span> em snake_case e <span style="font-weight: bold;" class="mycode_b">&lt;email_samp_omp&gt;</span> no estilo <span style="font-weight: bold;" class="mycode_b">Email_SendTo</span>, para quem não quer misturar convenção no gamemode.<br />
🇬🇧 Two includes: <span style="font-weight: bold;" class="mycode_b">&lt;email_samp&gt;</span> in snake_case and <span style="font-weight: bold;" class="mycode_b">&lt;email_samp_omp&gt;</span> in <span style="font-weight: bold;" class="mycode_b">Email_SendTo</span> style.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✉️ O texto do e-mail fica num arquivo / The wording lives in a file</span></span><br />
<br />
🇧🇷 Quem já mandava e-mail pelo PHP tem o <span style="font-weight: bold;" class="mycode_b">.html</span> pronto — ele serve como está. Ou use um <span style="font-weight: bold;" class="mycode_b">.tpl</span>, que carrega assunto, versão texto e versão HTML juntos:<br />
🇬🇧 If you already sent mail from PHP, your <span style="font-weight: bold;" class="mycode_b">.html</span> works as-is. Or use a <span style="font-weight: bold;" class="mycode_b">.tpl</span>, which carries subject, text and HTML together:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>[subject]<br />
Seu codigo e {codigo}<br />
<br />
[text]<br />
Ola {nome}, seu codigo de verificacao e {codigo}.</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>new msg = email_new();<br />
email_add_to(msg, email);<br />
email_set_template(msg, "mail/registro.tpl");<br />
email_set_var(msg, "nome", nome);<br />
email_set_var(msg, "codigo", "%d", codigo);<br />
email_send(msg);</code></div></div><br />
🇧🇷 Editou o arquivo, o próximo e-mail já sai com o texto novo — sem recompilar, sem reiniciar. E o valor que veio do jogador é <span style="font-weight: bold;" class="mycode_b">escapado sozinho</span> no HTML: nick com <span style="font-weight: bold;" class="mycode_b">&lt;script&gt;</span> chega como texto.<br />
🇬🇧 Edit the file and the next mail uses it — no recompile, no restart. Player-supplied values are <span style="font-weight: bold;" class="mycode_b">escaped automatically</span> in the HTML part.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔧 E ainda / And also</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Anexo e imagem embutida / 🇬🇧 Attachments and inline images</span> — 🇧🇷 arquivo, texto gerado no gamemode, ou imagem que aparece dentro do HTML / 🇬🇧 a file, data built in the gamemode, or an image shown inside the HTML<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Ritmo de envio / 🇬🇧 Paced for real providers</span> — 🇧🇷 e-mails por minuto, prioridade e nova tentativa em falha temporária: mailing para a base inteira não atrasa o reset de senha de quem está esperando / 🇬🇧 rate limit, priorities and retries, so a mailing never delays a password reset<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Seguro com o que o jogador digita / 🇬🇧 Safe with player input</span> — 🇧🇷 quebra de linha em cabeçalho é recusada (senão um nick vira um <span style="font-weight: bold;" class="mycode_b">Bcc:</span> escondido), endereço é validado de verdade e anexo não sai da pasta do servidor / 🇬🇧 header injection refused, addresses parsed, attachments sandboxed<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 TLS obrigatório / 🇬🇧 TLS required</span> — 🇧🇷 se o STARTTLS não subir, o envio falha em vez de mandar a senha em texto claro / 🇬🇧 if STARTTLS fails, the send fails instead of leaking the password<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Acentuação intacta / 🇬🇧 Accents survive</span> — 🇧🇷 nick acentuado chega certo, não como <span style="font-weight: bold;" class="mycode_b">Jo?o</span> / 🇬🇧 no more <span style="font-weight: bold;" class="mycode_b">Jo?o</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Modo de teste / 🇬🇧 Dry-run</span> — 🇧🇷 escreve cada mensagem como <span style="font-weight: bold;" class="mycode_b">.eml</span> em <span style="font-weight: bold;" class="mycode_b">logs/dry-run/</span> e não conecta: dá para mexer no gamemode sem gastar cota nem mandar e-mail para jogador de verdade / 🇬🇧 writes each message as an <span style="font-weight: bold;" class="mycode_b">.eml</span> and sends nothing<br />
</li>
</ul>
<br />
🇧🇷 Credenciais ficam fora do código: um <span style="font-weight: bold;" class="mycode_b">.env</span> (via <a href="https://github.com/NullSablex/env-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">env_samp</span></a>), variáveis de ambiente, uma URL SMTP ou um <span style="font-weight: bold;" class="mycode_b">smtp.ini</span> — as mesmas chaves em qualquer fonte, e nenhuma delas precisa ir para o repositório.<br />
🇬🇧 Credentials stay out of the source: a <span style="font-weight: bold;" class="mycode_b">.env</span>, the process environment, an SMTP URL or an <span style="font-weight: bold;" class="mycode_b">smtp.ini</span> — the same keys from any source, and none of them has to reach your repo.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📚 Links</span></span><ul class="mycode_list"><li><a href="https://email-samp.nullsablex.com/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> — 🇧🇷 instalação, configuração, envio, templates, erros e segurança / 🇬🇧 installation, configuration, sending, templates, errors, security<br />
</li>
<li><a href="https://email-samp.nullsablex.com/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Referência da API</span></a> — 🇧🇷 as 34 natives, uma a uma / 🇬🇧 all 34 natives<br />
</li>
<li><a href="https://github.com/NullSablex/email-samp/tree/master/examples" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Exemplos</span></a> — 🇧🇷 comece pelo <span style="font-weight: bold;" class="mycode_b">00_ready_to_send</span>: um gamemode pronto, com o arquivo do e-mail junto / 🇬🇧 start with <span style="font-weight: bold;" class="mycode_b">00_ready_to_send</span><br />
</li>
</ul>
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">🇧🇷 Projeto independente, mantido por uma pessoa. <span style="font-weight: bold;" class="mycode_b">Não</span> é afiliado, endossado nem patrocinado pelo SA-MP, pelo open.mp ou por qualquer provedor de e-mail citado.<br />
🇬🇧 Independent project, maintained by one person. <span style="font-weight: bold;" class="mycode_b">Not</span> affiliated with or endorsed by SA-MP, open.mp or any email provider mentioned.</span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Dúvidas, sugestões e relatos de bug são bem-vindos — aqui no tópico ou nas issues.<br />
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.</span><br />
<br />
<a href="https://github.com/NullSablex/email-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/email-samp</span></a></div>]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-size: 30pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b"><span style="color: #0e639c;" class="mycode_color">📧 email_samp 1.0.0</span></span></span><br />
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">E-mail (SMTP) direto do servidor — SA-MP e open.mp, o mesmo binário</span><br />
<span style="font-style: italic;" class="mycode_i">Email (SMTP) straight from the server — SA-MP and open.mp, the same binary</span></span><br />
<br />
<a href="https://github.com/NullSablex/email-samp/releases/latest" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Download</span></a> · <a href="https://github.com/NullSablex/email-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">GitHub</span></a> · <a href="https://email-samp.nullsablex.com/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a></div>
<br />
<blockquote class="mycode_quote"><cite>Quote:</cite>🇧🇷 Código de registro, recuperação de senha, aviso para a staff: sempre deu para fazer, mas nunca de dentro do servidor. Era requisição HTTP para um script PHP, PHPMailer do outro lado, um serviço externo no meio — três coisas para manter no ar só para mandar um e-mail. Este plugin fala <span style="font-weight: bold;" class="mycode_b">SMTP</span> e <span style="font-weight: bold;" class="mycode_b">TLS</span> por conta própria, e o envio cabe em uma linha.<br />
<br />
🇬🇧 Registration codes, password resets, staff alerts: always doable, never from inside the server. It meant an HTTP request to a PHP script, PHPMailer on the other end, some external service in between — three moving parts just to send one mail. This plugin speaks <span style="font-weight: bold;" class="mycode_b">SMTP</span> and <span style="font-weight: bold;" class="mycode_b">TLS</span> itself, and sending fits on one line.</blockquote>
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>email_setup();  // credenciais do .env, do ambiente ou do smtp.ini<br />
email_send_to("jogador@exemplo.com", "Bem-vindo", "Sua conta esta pronta.");</code></div></div><br />
🇧🇷 <span style="font-weight: bold;" class="mycode_b">Nada trava.</span> Toda native retorna na hora: o e-mail sai em threads separadas e o resultado volta num callback, então relay lento não segura o tick.<br />
🇬🇧 <span style="font-weight: bold;" class="mycode_b">Nothing blocks.</span> Every native returns at once: mail leaves on worker threads and the result comes back in a callback, so a slow relay never holds the tick.<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>email_send_to(email, "Bem-vindo", corpo, "OnMailSent", "d", playerid);<br />
<br />
Email::OnMailSent(success, playerid)<br />
{<br />
    SendClientMessage(playerid, -1, success ? ("E-mail enviado.") : ("Falhou."));<br />
    return 1;<br />
}</code></div></div><br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📦 Instalar é copiar um arquivo / Installing is copying one file</span></span><br />
<br />
🇧🇷 Sem PHPMailer, sem <span style="font-weight: bold;" class="mycode_b">sendmail</span>, sem OpenSSL no sistema: SMTP e TLS estão <span style="font-weight: bold;" class="mycode_b">compilados dentro do binário</span>. Funciona em host compartilhado, onde você não instala nada. E é <span style="font-weight: bold;" class="mycode_b">um arquivo só</span> para os dois servidores:<br />
🇬🇧 No PHPMailer, no <span style="font-weight: bold;" class="mycode_b">sendmail</span>, no system OpenSSL: SMTP and TLS are <span style="font-weight: bold;" class="mycode_b">compiled into the binary</span>. Works on shared hosting, where you install nothing. One file, both servers:<br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">SA-MP</span> — 🇧🇷 em <span style="font-weight: bold;" class="mycode_b">plugins/</span>, nome no <span style="font-weight: bold;" class="mycode_b">server.cfg</span> / 🇬🇧 in <span style="font-weight: bold;" class="mycode_b">plugins/</span>, name in <span style="font-weight: bold;" class="mycode_b">server.cfg</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">open.mp nativo</span> — 🇧🇷 em <span style="font-weight: bold;" class="mycode_b">components/</span>, encontrado sozinho / 🇬🇧 in <span style="font-weight: bold;" class="mycode_b">components/</span>, auto-discovered<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">open.mp legacy</span> — 🇧🇷 o mesmo arquivo em <span style="font-weight: bold;" class="mycode_b">plugins/</span> / 🇬🇧 same file in <span style="font-weight: bold;" class="mycode_b">plugins/</span><br />
</li>
</ul>
<br />
🇧🇷 Dois includes: <span style="font-weight: bold;" class="mycode_b">&lt;email_samp&gt;</span> em snake_case e <span style="font-weight: bold;" class="mycode_b">&lt;email_samp_omp&gt;</span> no estilo <span style="font-weight: bold;" class="mycode_b">Email_SendTo</span>, para quem não quer misturar convenção no gamemode.<br />
🇬🇧 Two includes: <span style="font-weight: bold;" class="mycode_b">&lt;email_samp&gt;</span> in snake_case and <span style="font-weight: bold;" class="mycode_b">&lt;email_samp_omp&gt;</span> in <span style="font-weight: bold;" class="mycode_b">Email_SendTo</span> style.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">✉️ O texto do e-mail fica num arquivo / The wording lives in a file</span></span><br />
<br />
🇧🇷 Quem já mandava e-mail pelo PHP tem o <span style="font-weight: bold;" class="mycode_b">.html</span> pronto — ele serve como está. Ou use um <span style="font-weight: bold;" class="mycode_b">.tpl</span>, que carrega assunto, versão texto e versão HTML juntos:<br />
🇬🇧 If you already sent mail from PHP, your <span style="font-weight: bold;" class="mycode_b">.html</span> works as-is. Or use a <span style="font-weight: bold;" class="mycode_b">.tpl</span>, which carries subject, text and HTML together:<br />
<br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>[subject]<br />
Seu codigo e {codigo}<br />
<br />
[text]<br />
Ola {nome}, seu codigo de verificacao e {codigo}.</code></div></div><br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>new msg = email_new();<br />
email_add_to(msg, email);<br />
email_set_template(msg, "mail/registro.tpl");<br />
email_set_var(msg, "nome", nome);<br />
email_set_var(msg, "codigo", "%d", codigo);<br />
email_send(msg);</code></div></div><br />
🇧🇷 Editou o arquivo, o próximo e-mail já sai com o texto novo — sem recompilar, sem reiniciar. E o valor que veio do jogador é <span style="font-weight: bold;" class="mycode_b">escapado sozinho</span> no HTML: nick com <span style="font-weight: bold;" class="mycode_b">&lt;script&gt;</span> chega como texto.<br />
🇬🇧 Edit the file and the next mail uses it — no recompile, no restart. Player-supplied values are <span style="font-weight: bold;" class="mycode_b">escaped automatically</span> in the HTML part.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 22pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">🔧 E ainda / And also</span></span><br />
<ul class="mycode_list"><li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Anexo e imagem embutida / 🇬🇧 Attachments and inline images</span> — 🇧🇷 arquivo, texto gerado no gamemode, ou imagem que aparece dentro do HTML / 🇬🇧 a file, data built in the gamemode, or an image shown inside the HTML<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Ritmo de envio / 🇬🇧 Paced for real providers</span> — 🇧🇷 e-mails por minuto, prioridade e nova tentativa em falha temporária: mailing para a base inteira não atrasa o reset de senha de quem está esperando / 🇬🇧 rate limit, priorities and retries, so a mailing never delays a password reset<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Seguro com o que o jogador digita / 🇬🇧 Safe with player input</span> — 🇧🇷 quebra de linha em cabeçalho é recusada (senão um nick vira um <span style="font-weight: bold;" class="mycode_b">Bcc:</span> escondido), endereço é validado de verdade e anexo não sai da pasta do servidor / 🇬🇧 header injection refused, addresses parsed, attachments sandboxed<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 TLS obrigatório / 🇬🇧 TLS required</span> — 🇧🇷 se o STARTTLS não subir, o envio falha em vez de mandar a senha em texto claro / 🇬🇧 if STARTTLS fails, the send fails instead of leaking the password<br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Acentuação intacta / 🇬🇧 Accents survive</span> — 🇧🇷 nick acentuado chega certo, não como <span style="font-weight: bold;" class="mycode_b">Jo?o</span> / 🇬🇧 no more <span style="font-weight: bold;" class="mycode_b">Jo?o</span><br />
</li>
<li><span style="font-weight: bold;" class="mycode_b">🇧🇷 Modo de teste / 🇬🇧 Dry-run</span> — 🇧🇷 escreve cada mensagem como <span style="font-weight: bold;" class="mycode_b">.eml</span> em <span style="font-weight: bold;" class="mycode_b">logs/dry-run/</span> e não conecta: dá para mexer no gamemode sem gastar cota nem mandar e-mail para jogador de verdade / 🇬🇧 writes each message as an <span style="font-weight: bold;" class="mycode_b">.eml</span> and sends nothing<br />
</li>
</ul>
<br />
🇧🇷 Credenciais ficam fora do código: um <span style="font-weight: bold;" class="mycode_b">.env</span> (via <a href="https://github.com/NullSablex/env-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">env_samp</span></a>), variáveis de ambiente, uma URL SMTP ou um <span style="font-weight: bold;" class="mycode_b">smtp.ini</span> — as mesmas chaves em qualquer fonte, e nenhuma delas precisa ir para o repositório.<br />
🇬🇧 Credentials stay out of the source: a <span style="font-weight: bold;" class="mycode_b">.env</span>, the process environment, an SMTP URL or an <span style="font-weight: bold;" class="mycode_b">smtp.ini</span> — the same keys from any source, and none of them has to reach your repo.<br />
<br />
<hr class="mycode_hr" />
<br />
<span style="font-size: 18pt;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">📚 Links</span></span><ul class="mycode_list"><li><a href="https://email-samp.nullsablex.com/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Documentação</span></a> — 🇧🇷 instalação, configuração, envio, templates, erros e segurança / 🇬🇧 installation, configuration, sending, templates, errors, security<br />
</li>
<li><a href="https://email-samp.nullsablex.com/api-reference/" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Referência da API</span></a> — 🇧🇷 as 34 natives, uma a uma / 🇬🇧 all 34 natives<br />
</li>
<li><a href="https://github.com/NullSablex/email-samp/tree/master/examples" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">Exemplos</span></a> — 🇧🇷 comece pelo <span style="font-weight: bold;" class="mycode_b">00_ready_to_send</span>: um gamemode pronto, com o arquivo do e-mail junto / 🇬🇧 start with <span style="font-weight: bold;" class="mycode_b">00_ready_to_send</span><br />
</li>
</ul>
<br />
<span style="font-size: 15pt;" class="mycode_size"><span style="font-style: italic;" class="mycode_i">🇧🇷 Projeto independente, mantido por uma pessoa. <span style="font-weight: bold;" class="mycode_b">Não</span> é afiliado, endossado nem patrocinado pelo SA-MP, pelo open.mp ou por qualquer provedor de e-mail citado.<br />
🇬🇧 Independent project, maintained by one person. <span style="font-weight: bold;" class="mycode_b">Not</span> affiliated with or endorsed by SA-MP, open.mp or any email provider mentioned.</span></span><br />
<br />
<div style="text-align: center;" class="mycode_align"><span style="font-style: italic;" class="mycode_i">🇧🇷 Dúvidas, sugestões e relatos de bug são bem-vindos — aqui no tópico ou nas issues.<br />
🇬🇧 Questions, suggestions and bug reports are welcome — here or on GitHub issues.</span><br />
<br />
<a href="https://github.com/NullSablex/email-samp" target="_blank" rel="noopener" class="mycode_url"><span style="font-weight: bold;" class="mycode_b">⭐ github.com/NullSablex/email-samp</span></a></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Custom Models - Weird Streaming Issue]]></title>
			<link>https://forum.open.mp/showthread.php?tid=6471</link>
			<pubDate>Fri, 25 Sep 2026 14:58:02 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://forum.open.mp/member.php?action=profile&uid=2495">Torque</a>]]></dc:creator>
			<guid isPermaLink="false">https://forum.open.mp/showthread.php?tid=6471</guid>
			<description><![CDATA[I've noticed that when looking at a custom model from the East (Facing West), the model seems to stream in much later then when approaching it from other directions. Anybody else noticed this and is it a model issue or a SAMP issue? Wondering if there's a solution to this. I'm no expert with custom models so wondering if it's something I need to change in Blender.<br />
<br />
Thanks.]]></description>
			<content:encoded><![CDATA[I've noticed that when looking at a custom model from the East (Facing West), the model seems to stream in much later then when approaching it from other directions. Anybody else noticed this and is it a model issue or a SAMP issue? Wondering if there's a solution to this. I'm no expert with custom models so wondering if it's something I need to change in Blender.<br />
<br />
Thanks.]]></content:encoded>
		</item>
	</channel>
</rss>