Cómo funciona una partida#
Cada partida sigue el mismo ciclo, ya sea una práctica contra un bot o un duelo con dinero en juego:
Momento | Qué ocurre |
|---|---|
En la mesa | Estar a menos de 1.5 m de una mesa muestra [E] - Play Arm wrestle. |
Los ajustes | Match Settings pide la dificultad contra un bot, o la apuesta contra un jugador. Ready la inicia. |
Sentarse | Los dos luchadores se colocan en sus asientos, a lados opuestos de la mesa, quedan fijos en su sitio y reproducen la animación de entrada. |
La cuenta atrás | 3, 2, 1 y GO! llenan la pantalla, un segundo cada uno, con un sonido en cada número. Pulsar antes de tiempo no hace nada. |
El forcejeo | Pulsa |
El final | Se reproducen las poses de ganador y perdedor, aparece You win ! o You lost, y cuatro segundos después ambos se levantan: es el momento en que se paga cualquier apuesta. |
El servidor decide todo lo que importa: quién se sienta dónde, la fuerza, quién ganó y a quién se le paga. El juego del jugador solo envía las pulsaciones y anima el resultado.
Colocar mesas#
Las mesas se colocan en el juego y se guardan en la base de datos: no hay coordenadas que escribir en la configuración. Solo se puede jugar en las mesas colocadas con el creador; una mesa de pulso que forma parte de un mapa sigue siendo decoración.
El creador#
/armwrestlecreator abre el Arm Wrestling Table Creator: todas las mesas del servidor a la izquierda, con un buscador y un botón +, y la mesa seleccionada a la derecha. Cada fila muestra el nombre de la mesa y su modelo, y un botón que te teletransporta hasta ella tras preguntarte.
Sección | Qué configuras ahí |
|---|---|
Table Info | El nombre de la mesa. Obligatorio. |
Table Model | El prop que se genera: uno de |
Pricing | Un precio y un método de pago, Cash Money o Bank Transfer. Consulta Precios de las mesas más abajo. |
Placement | Select para una mesa nueva: se habilita en cuanto se elige un modelo. Las coordenadas y la orientación aparecen una vez colocada. |
Location | Para una mesa existente: dónde está, y Reposition para moverla. |
Save Table necesita un nombre, un modelo y una ubicación. Una mesa existente se guarda con Save Changes, y Delete la elimina del mundo y de la base de datos tras preguntarte. Cada cambio llega a todos los jugadores al instante: no hay nada que reiniciar. Esc cierra el creador.
Soltar una mesa en el mundo#
Select cierra la ventana y te pasa a un modo de colocación. Una copia transparente de la mesa sigue lo que mires, hasta 50 m de distancia, con un marcador rojo y una línea roja desde ti hasta ella. Se apoya en el suelo por sí sola (el script lee el tamaño del modelo), y la orientación y el desfase de altura se muestran en la parte superior de la pantalla.
Tecla | Hace |
|---|---|
| Soltarla aquí. Solo funciona mientras apuntas a una superficie. |
| Girarla, mientras mantengas la tecla pulsada: 80° por segundo por defecto. |
| Subirla o bajarla, 5 cm por paso. |
| Cancelar y volver al creador. |
El HUD y el minimapa se ocultan mientras colocas. El creador se vuelve a abrir con la ubicación rellenada, y Re-select la coloca de nuevo.
Deja espacio a ambos lados. Los dos luchadores se sientan a lados opuestos de la mesa, así que colócala donde quepa un jugador a cada lado, no contra una pared o una barra, y gírala con
Z/Xpara que quede alineada con la sala.
Modelos de mesa#
Hay tres props de GTA V listos para elegir, junto con la sensibilidad del modo de colocación:
Config.Creator = {
permission = 'command.armwrestlecreator',
rotateSpeed = 80.0, -- degrees per second while rotating
heightStep = 0.05, -- metres per mouse-wheel notch
groundOffset = 0.0, -- extra height on top of the automatic ground offset
models = {
{ hash = `prop_arm_wrestle_01`, label = 'Arm Wrestle Table' },
{ hash = `bkr_prop_clubhouse_arm_wrestle_01a`, label = 'Clubhouse Arm Wrestle (A)' },
{ hash = `bkr_prop_clubhouse_arm_wrestle_02a`, label = 'Clubhouse Arm Wrestle (B)' },
},
}Añade cualquier otro prop con una línea propia: el nombre del modelo entre comillas invertidas y la etiqueta que se muestra en el creador. Los asientos están pensados para mesas de este tamaño y forma, así que un prop mucho más grande o más pequeño sienta a los luchadores en el sitio equivocado. Si las mesas flotan o se hunden en tu mapa, groundOffset añade o quita altura en cada colocación.
Iniciar una partida#
Acércate a una mesa (el aviso aparece a menos de 1.5 m) y pulsa E. El menú ofrece dos tipos de partida; una mesa que ya tiene una en curso responde That table is already in use.
Player vs Bot → elige una dificultad en Match Settings — Easy, Hard o Normal → Ready. Te sientas y un bot se sienta frente a ti: un personaje aleatorio de Config.Bot.models, visible para todos los que estén cerca.
Las partidas contra bots nunca llevan apuesta y no cuestan nada. Son práctica, y una forma de probar el juego en solitario.
Player vs Player muestra a todos los que están a menos de 15 m de la mesa, del más cercano al más lejano, con su nombre, ID de servidor y distancia. Elige uno y Match Settings se abre con la tarjeta de tu rival y, con las apuestas activadas, un control deslizante para la apuesta, desde No bet hasta el máximo.
Ready envía el desafío, y tu rival ve Arm Wrestling Challenge — <name> wants to arm wrestle you! — con la apuesta. Tiene 30 segundos para Accept o Decline; Esc rechaza. Cuando acepta, se cobra la apuesta a ambos y los dos se sientan a la mesa.
Puedes tener un desafío pendiente a la vez, y un jugador solo puede tener uno esperando su respuesta.
Quédate junto a la mesa mientras esperas: ambos jugadores se sientan en cuanto se acepta el desafío.
Si la mesa se ocupa o se elimina antes de que acepte, el desafío se cancela y nadie paga.
Ganar una partida#
Arm Wrestling es un concurso de pulsaciones. Cada partida guarda un número, la fuerza, en una escala de 0 a 100. Empieza en 50, el centro, y cada empujón la mueve hacia un lado. Los brazos en pantalla la siguen: rectos en 50, y cuanto más se acerca a cualquiera de los extremos, más baja la mano que pierde. Llega al extremo y la partida termina.
Regla | Detalle |
|---|---|
Un empujón | Una pulsación de |
Valor | 1.5 puntos: 34 empujones para ganar desde el centro si el otro lado no hace nada. |
Contra un jugador | Ambos empujan en direcciones opuestas, así que gana quien pulsa más rápido. No hay reloj: una partida dura hasta que una mano toca la mesa. |
Contra un bot | El bot empuja al ritmo de su dificultad; consulta más abajo. |
Cada empujón pasa por el servidor, que lo suma e indica a ambos jugadores dónde están los brazos, así que ambas pantallas muestran el mismo forcejeo.
Dificultades del bot#
Un bot empuja por su cuenta, una cantidad fija a un ritmo fijo, con algo de aleatoriedad para que nunca parezca mecánico. Para ganar tienes que empujar más rápido que él:
Dificultad | El bot empuja | Pulsaciones por segundo solo para aguantar |
|---|---|---|
Easy | 1.2 puntos aproximadamente cada 0.7 s | Unas 1.2 |
Normal | 1.9 puntos aproximadamente cada 0.38 s | Unas 3.4 |
Hard | 2.2 puntos aproximadamente cada 0.22 s | Unas 6.7 |
Cada dificultad es un bloque en Config.Bot.difficulties. Estos son los valores por defecto:
Config.Bot = {
models = {
'a_m_y_skater_01',
'a_m_y_musclbeac_01',
'g_m_y_lost_01',
's_m_y_dockwork_01',
'a_m_y_hipster_01',
},
difficulties = {
easy = { label = 'Easy', pressInterval = 700, pressAmount = 1.2, variance = 0.40 },
normal = { label = 'Normal', pressInterval = 380, pressAmount = 1.9, variance = 0.25 },
hard = { label = 'Hard', pressInterval = 220, pressAmount = 2.2, variance = 0.15 },
},
defaultDifficulty = 'normal',
}Ajuste | Significa |
|---|---|
| Milisegundos entre los empujones del bot, de media. Cuanto menor, más difícil. Nunca menos de 150. |
| Puntos por empujón del bot, en la misma escala que el 1.5 de un jugador. |
| Aleatoriedad aplicada al intervalo: |
| El texto del botón, salvo que el archivo de idioma traduzca |
| Se usa cuando una partida pide una dificultad que no existe. |
| Cualquier lista de modelos de ped. Se elige uno al azar para cada partida contra un bot. |
Un bloque nuevo, expert = { label = 'Expert', ... }, añade otro botón a Match Settings. Los botones se ordenan alfabéticamente por sus claves.
Apuestas#
Las apuestas son solo para partidas entre jugadores. El retador elige la cantidad con un control deslizante, desde No bet hasta Config.Betting.max en pasos de Config.Betting.step: $10,000 en pasos de $100 por defecto. Ambos jugadores pagan la misma cantidad, en efectivo, cuando se acepta el desafío. El servidor comprueba primero el dinero de ambos: si alguno no puede pagar, el desafío se rechaza y no se le cobra a nadie.
Cómo terminó la partida | El bote |
|---|---|
Un jugador venció al otro | El ganador se lleva ambas apuestas, que se pagan cuando se levanta. |
Un jugador salió con | Se devuelven ambas apuestas. |
Un jugador se desconectó | El que sigue ahí se lleva ambas apuestas. |
Establece Config.Betting.enabled = false para quitar el control deslizante por completo. Para cobrar las apuestas del banco, o en algo que no sea dinero, consulta Integraciones.
Precios de las mesas#
La sección Pricing del creador guarda un precio y un método de pago con cada mesa, y la base de datos los conserva. En esta versión solo se almacenan: iniciar una partida no los cobra, y las apuestas son el único dinero que cambia de manos.
Salir de una partida#
Forma | Resultado |
|---|---|
| Te levanta y termina la partida para ambos jugadores. Antes de que haya un ganador, se devuelve cualquier apuesta. |
Desconectarse | La partida termina, y el jugador que se quedó se lleva ambas apuestas. |
La victoria | Ambos se levantan cuatro segundos después del último empujón. |
Mientras estás sentado no puedes caminar, usar armas ni subir a un vehículo; el chat y la voz siguen funcionando.
La pantalla durante una partida#
Dónde | Qué hay |
|---|---|
Centro | La cuenta atrás: un 3, 2 y 1 grandes, y luego, en verde, GO!. |
Abajo a la derecha | Las teclas: Exit ( |
Notificaciones | You win ! o You lost al final, y cada mensaje de desafío, mediante |
La cara de tu personaje se tensa durante toda la partida, y ambos luchadores reproducen las poses de ganador y perdedor de GTA V al final. Todas las teclas están en Comandos y controles.



