Kit de armas

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Roblox ofrece las siguientes armas prefabricadas para ayudar en la creación de juegos competitivos basados en combate. El sistema central presenta armas basadas en proyectiles con una cámara sobre el hombro, y establecer la velocidad del proyectil lo suficientemente alta puede simular armas de raycasting como pistolas láser.

Para usar un arma prefabricada en tu juego:

  1. Selecciona un arma de abajo, navegando al enlace de la biblioteca de activos.

    Pistola

    Escopeta

    Rifle Automático

    Subfusil

    Rifle de Francotirador

    Ballesta

    Lanzagranadas

    Lanzacohetes

    Railgun

  2. En la página del artículo del arma, haz clic en el botón Obtener Modelo y confirma la transacción.

  3. En Studio, abre el Toolbox y selecciona tu sección de Inventario.

  4. Localiza el arma y haz clic en ella para agregarla al lugar. Cuando se te pregunte si deseas poner la herramienta en el paquete inicial, haz clic en si deseas que los jugadores comiencen con el arma en su mochila, o haz clic en No para simplemente colocar el arma en el mundo 3D como un objeto recogible.

  5. Si esta es la primera vez que traes un arma prefabricada, mueve su carpeta WeaponsSystem a ServerScriptService para que sirva como la carpeta del sistema unificada para todas las armas prefabricadas en el juego.

Estructura de la carpeta del sistema

La carpeta WeaponsSystem es una carpeta unificada que contiene activos, configuraciones y scripts que alimentan todas las armas prefabricadas en el juego. Si se encuentra en ServerScriptService, anula cualquier carpeta WeaponsSystem equivalente que pueda residir dentro de armas individuales.

Dentro de la carpeta WeaponsSystem, diferentes aspectos son controlados por los siguientes ModuleScripts:

AspectoManejado principalmente dentro de...
Funcionalidad de las armas
  • WeaponsSystem
  • Libraries/BaseWeapon
  • WeaponTypes/BulletWeapon
  • WeaponTypes/BowWeapon
Cámara sobre el hombro
  • Libraries/ShoulderCamera
GUI de armas
  • Libraries/WeaponsGui
  • Libraries/DirectionalIndicatorGuiManager
  • Libraries/DamageBillboardHandler

Estructura del arma

Las armas prefabricadas son herramientas y están nombradas como aparecerán en la mochila del jugador. Cada arma está estructurada con una jerarquía similar.

Tipo de arma

El WeaponType StringValue corresponde con el ModuleScript para el arma en la carpeta WeaponsSystem/WeaponTypes. Los dos valores base son BulletWeapon y BowWeapon.

Modelo de arma

Cada arma contiene un Model compuesto por una o más BaseParts para formar el arma física. Uno de estos debe establecerse como la PrimaryPart del modelo.

El modelo también incluye los siguientes descendientes importantes que pueden estar parentados a uno de los BaseParts del modelo:

  • TipAttachmentAttachment cuya posición en el BasePart padre determina de dónde salen las balas/proyectiles.
  • HandleAttachmentAttachment cuya posición en el BasePart padre determina dónde se suelda el mango de la herramienta.
  • Fired
    opcional
    Sound que se reproduce cuando se dispara el arma.
  • Reload
    opcional
    Sound que se reproduce cuando se recarga el arma.
  • Descendientes adicionales para cualquier opción especializada.

Configuración

La carpeta Configuration contiene tipos de "valor" específicos para el comportamiento del arma. Más allá de los valores predeterminados, puedes agregar elementos de configuración adicionales para opciones especializadas cuando sea aplicable.

A continuación se presentan las configuraciones base y sus valores predeterminados:

ElementoDescripciónPredeterminado
AimTrackNombre de la pista de animación de apuntar en Assets/Animations de la carpeta del sistema.RifleAim
AimZoomTrackNombre de la pista de animación de zoom de apuntar en Assets/Animations de la carpeta del sistema.RifleAimDownSights
AmmoCapacityNúmero de disparos en cada "cargador de munición" antes de que el jugador deba recargar. Ten en cuenta que la munición es ilimitada y esto no especifica cuánta munición lleva un jugador.30
BulletSpeedVelocidad a la que viajan las balas/proyectiles cuando se disparan. Establecer esto en un valor muy alto como 20000 simula armas de raycasting como pistolas láser.1000
BurstShotCooldownTiempo entre cada disparo en una ráfaga; solo importa si estableces FireMode en Burst.Valor de ShotCooldown
FiredPlaybackSpeedRangeCantidad que el tono puede variar para el sonido Fired del arma. Establece esto en 0 para reproducirlo siempre al mismo tono.0.1
FireModeElige entre Semiautomático (un disparo por clic/tap), Automático (fuego continuo) o Ráfaga (ráfaga de disparos igual a NumBurstShots en cada clic/tap).Semiautomático
FullDamageDistanceDistancia máxima a la que los disparos harán daño completo. Cualquier cosa golpeada más allá de esta distancia recibirá menos y menos daño a medida que la distancia se acerque a ZeroDamageDistance.1000
GravityFactorCantidad que la gravedad debe influir en cada bala/proyectil. Por ejemplo, este valor para la Ballesta es 1 porque las flechas arquean durante el vuelo, pero este valor para el Lanzacohetes es 0 porque los cohetes propulsados viajan en línea recta.0
HasScopeEstablece en true si deseas usar la mira que se especifica en GUI de Armas.false
HitDamageCantidad de daño que hace cada golpe directo.10
MaxDistanceDistancia máxima que las balas/proyectiles viajan antes de desaparecer.2000
MaxSpreadCantidad máxima de dispersión para el arma.Valor de MinSpread
MinSpreadCantidad mínima de dispersión para el arma.0
NumBurstShotsNúmero de disparos por clic/ráfaga; solo importa si estableces FireMode en Burst.3
NumProjectilesNúmero de balas/proyectiles que se dispararán al mismo tiempo cuando hagas clic/tap una vez. Esto es útil para armas como la Escopeta que dispara múltiples balas al mismo tiempo. Ten en cuenta que un disparo siempre usará exactamente una munición independientemente de este valor.1
RecoilDecayMultiplicador de decaimiento para el retroceso; esencialmente la tasa a la que el retroceso disminuye después de disparar.0.825
RecoilDelayTimeTiempo de espera después de disparar/hacer clic antes de que se agregue el retroceso a la cámara.0.07
RecoilMaxMáximo retroceso agregado por cada disparo.0.5
RecoilMinMínimo retroceso agregado por cada disparo.0.05
ReloadAnimationNombre de la pista de animación de recarga en Assets/Animations de la carpeta del sistema.RifleReload
ShotCooldownTiempo de espera mínimo entre clics. Para armas con FireMode de Automático, este también es el tiempo entre disparos mientras se presiona el botón de disparo o se mantiene el clic.0.1
StartupTimeDuración del tiempo después de equipar el arma antes de que el jugador pueda disparar. Esto evita que los jugadores disparen un solo disparo de múltiples armas diferentes en rápida sucesión.0.2
TotalRecoilMaxMáximo total de retroceso acumulado. El retroceso actual del arma nunca excederá este valor.2
ZeroDamageDistanceCualquier cosa golpeada a esta distancia o más allá no recibirá daño.10000

Opciones especializadas

Puedes agregar/modificar las siguientes opciones para cualquier arma. Estas personalizaciones requieren modificar ya sea el Model del arma, la Configuration del arma, o ambos. Algunas configuraciones dependen de otras, como partículas de boca que requieren los hijos necesarios para efectos y sonidos de proyectiles/golpes.

Animaciones y sonidos del cerrojo

El cerrojo de un arma es la parte que se mueve hacia adelante y hacia atrás cada vez que se dispara.

  • Descendientes del modelo del arma:

    • BoltBasePart que se mueve cuando se dispara el arma.
    • BoltMotorMotor6D utilizado para animar el cerrojo. Asegúrate de establecer el Part0 del motor en el PrimaryPart del modelo del arma y Part1 en la parte Bolt.
    • BoltMotorStartAttachment cuya posición en el BasePart padre determina dónde está el cerrojo cuando está en reposo.
    • BoltMotorTargetAttachment cuya posición en el BasePart padre determina dónde se anima el cerrojo al disparar.
    • BoltOpenSound
      opcional
      Sound que se reproduce cuando se abre el cerrojo.
    • BoltCloseSound
      opcional
      Sound que se reproduce cuando se cierra el cerrojo.
  • Descendientes de la carpeta de configuración del arma:

    • ActionOpenTime
      opcional
      — Tiempo que tarda el cerrojo en animarse a la posición abierta. El valor predeterminado es 0.025.
    • ActionCloseTime
      opcional
      — Tiempo que tarda el cerrojo en animarse a la posición cerrada. El valor predeterminado es 0.075.

Casquillos de bala expulsados

Las armas pueden incluir casquillos de bala físicos que se expulsan al disparar y caen al suelo.

  • Descendientes del modelo del arma:

    • CasingEjectPointAttachment cuya posición en el BasePart padre determina dónde deseas que salgan los casquillos de bala. Ten en cuenta que su orientación determina la dirección en la que los casquillos salen.
  • Descendientes de la carpeta de configuración del arma:

    • CasingEffect — Nombre de la parte BasePart de casquillo en Assets/Effects/Casings de la carpeta del sistema.
    • CasingEjectSpeedMin
      opcional
      — Velocidad mínima de expulsión de los casquillos. El valor predeterminado es 15.
    • CasingEjectSpeedMax
      opcional
      — Velocidad máxima de expulsión de los casquillos. El valor predeterminado es 18.
  • Hijo de la parte BasePart del casquillo en Assets/Effects/Casings de la carpeta del sistema:

    • CasingHitSound
      opcional
      Sound que se reproduce cuando los casquillos golpean el suelo.

Efectos y sonidos de proyectiles/golpes

Puedes configurar proyectiles físicos para cualquier arma, junto con Sounds, Beams, y ParticleEmitters para efectos de golpe y otros efectos especiales.

  • Descendientes de la carpeta de configuración del arma:

    • ShotEffect — Nombre de un efecto de disparo almacenado en Assets/Effects/Shots de la carpeta del sistema.
    • ShouldMovePart
      opcional
      — Establece en true si el ShotEffect del arma debe moverse con el proyectil o false si no. Solo debes establecer esto en true si hay un objeto visible que se mueve con cada disparo, como una flecha o un cohete. El valor predeterminado es false.
    • BeamFadeTime
      opcional
      — Tiempo que tarda en desvanecerse Beam0 o Beam1 (ver más abajo) después de que la bala/proyectil golpea algo. Por defecto, no se aplicará un desvanecimiento manual por código. El valor predeterminado es 0.
    • BeamWidth0
      opcional
      — Grosor de Beam0 o Beam1 en Attachment0 (ver más abajo). El valor predeterminado es 1.5.
    • BeamWidth1
      opcional
      — Grosor de Beam0 o Beam1 en Attachment1 (ver más abajo). El valor predeterminado es 1.8.
    • NumHitParticles
      opcional
      — Número de partículas que el emisor HitParticles (ver más abajo) emitirá. El valor predeterminado es 3.
    • HitParticlesUsePartColor
      opcional
      — Establece en true si deseas que las partículas de golpe sean del color de la superficie golpeada; false si deseas que las partículas de golpe no cambien de color. El valor predeterminado es true.
  • Descendientes del ShotEffect especificado en la sección anterior:

    • Flying
      opcional
      Sound que se reproduce mientras la bala/proyectil está viajando.
    • Beam0
      opcional
      — Primer espacio para un Beam que sigue a la bala/proyectil. No olvides establecer Attachment0 y Attachment1.
    • Beam1
      opcional
      — Segundo espacio para un Beam que sigue a la bala/proyectil. No olvides establecer Attachment0 y Attachment1.
    • Attachment0
      opcional
      Attachment cuya posición en el BasePart padre determina la parte trasera de los haces que siguen; asegúrate de establecer Beam.Attachment0 en ambos Beam0 y Beam1 a esto.
    • Attachment1
      opcional
      Attachment cuya posición en el BasePart padre determina la parte delantera de los haces que siguen; asegúrate de establecer Beam.Attachment1 en ambos Beam0 y Beam1 a esto.
    • TrailParticles
      opcional
      ParticleEmitter parentado como un hijo directo de Attachment0; esto emitirá mientras la bala/proyectil está viajando.
    • LeadingParticles
      opcional
      ParticleEmitter parentado como un hijo directo de Attachment1; esto emitirá mientras la bala/proyectil está viajando.
    • HitEffect
      opcional
      Attachment cuya posición se establecerá en Beam.Attachment1 de Beam0 cuando la bala/proyectil golpee. Debes especificar Beam0 y sus adjuntos para que esto funcione correctamente.
    • HitSound
      opcional
      Sound parentado como un hijo directo de HitEffect; se reproduce cuando la bala/proyectil golpea.
    • HitParticles
      opcional
      Sound parentado como un hijo directo de HitEffect; emite cuando la bala/proyectil golpea.
    • Mesh
      opcional
      SpecialMesh que deseas que aparezca como un proyectil físico. Asegúrate de establecer ShouldMovePart en la configuración del arma en true si tienes un objeto visible aquí.

Partículas de boca

Esta opción emite partículas del ParticleEmitter especificado en el TipAttachment Attachment del arma cuando se dispara. Los descendientes de la carpeta de configuración del arma incluyen:

  • ShotEffect — Nombre de un efecto de disparo almacenado en WeaponsSystem/Assets/Effects/Shots. Como hijo de este efecto de disparo, incluye un activo ParticleEmitter llamado MuzzleParticles.
  • NumMuzzleParticles
    opcional
    — Número de partículas de boca que se emitirán. El valor predeterminado es 50.

Destellos de boca

Esta opción crea un efecto de destello Beam cuando se dispara el arma.

  • Descendientes del modelo del arma:

    • MuzzleFlash0Attachment utilizado para especificar un lado del destello de boca. La posición no importa.
    • MuzzleFlash1Attachment utilizado para especificar el lado opuesto del destello de boca. La posición no importa.
    • MuzzleFlashBeam para el efecto de destello de boca. Asegúrate de establecer el Attachment0 del haz en MuzzleFlash0 y el Attachment1 en MuzzleFlash1.
  • Descendientes de la carpeta de configuración del arma:

    • MuzzleFlashTime
      opcional
      — Duración del tiempo que se mostrará el destello de boca. El valor predeterminado es 0.03.
    • MuzzleFlashRotation0
      opcional
      — Rotación mínima del destello de boca. El valor predeterminado es -math.pi.
    • MuzzleFlashRotation1
      opcional
      — Rotación máxima del destello de boca. El valor predeterminado es math.pi.
    • MuzzleFlashSize0
      opcional
      — Tamaño mínimo del destello de boca. El valor predeterminado es 1.
    • MuzzleFlashSize1
      opcional
      — Tamaño máximo del destello de boca. El valor predeterminado es 1.

Rastro de partículas

Esta opción crea un rastro de longitud variable desde el arma hasta el punto de impacto del proyectil. Los descendientes de la carpeta de configuración del arma incluyen:

  • TrailLength
    opcional
    — Longitud del rastro detrás de la bala/proyectil; el valor predeterminado es nil, lo que significa que la longitud del rastro se calculará utilizando TrailLengthFactor.
  • TrailLengthFactor
    opcional
    — Si se especifica, la longitud del rastro se establecerá en este valor multiplicado por la distancia que la bala/proyectil viajó en el último fotograma; el valor predeterminado es 1. Ten en cuenta que esto se anulará si incluyes TrailLength.
  • ShowEntireTrailUntilHit
    opcional
    — Establece en true para renderizar el rastro desde la punta del arma hasta donde sea que esté el proyectil; esto anulará tanto TrailLength como TrailLengthFactor y el rastro solo desaparecerá una vez que el proyectil golpee algo. Establece en false para usar una de las dos opciones anteriores para calcular la longitud del rastro. El valor predeterminado es false.

Marcas de impacto

Esta adición visual aparece en la superficie donde los proyectiles golpean y es útil para flechas, agujeros de bala, marcas de quemaduras, etc. Los descendientes de la carpeta de configuración del arma incluyen:

  • HitMarkEffect
    opcional
    — Nombre de un efecto de marca de impacto Part/MeshPart/SpecialMesh almacenado en WeaponsSystem/Assets/Effects/HitMarks. El valor predeterminado es BulletHole.
  • AlignHitMarkToNormal
    opcional
    — Establece en true si la marca de impacto debe alinearse siempre plana contra la superficie como un agujero de bala, o false si la marca de impacto debe aparecer atascada en la superficie desde la dirección de la que vino el proyectil (como una flecha). El valor predeterminado es true.

Como se indica en HitMarkEffect arriba, puedes agregar una parte/malla dentro de WeaponsSystem/Assets/Effects/HitMarks para aparecer como un proyectil físico. Por ejemplo, incluir una MeshPart de flecha y establecer AlignHitMarkToNormal en false hará que la flecha sobresalga de la superficie desde la dirección en la que la disparaste. Esta Part/MeshPart/SpecialMesh puede contener los siguientes descendientes:

  • Glow
    opcional
    Decal que aparece en la superficie golpeada completamente opaco, luego se vuelve rápidamente más transparente, como un efecto de brillo en la superficie que se desvanece rápidamente. Útil para cosas como mostrar una marca roja brillante donde impactan explosivos.
  • BulletHole
    opcional
    Decal que aparece en la superficie golpeada completamente opaco y, después de 4 segundos, se desvanece a transparente durante 1 segundo.
  • ImpactBillboard
    opcional
    BillboardGui que se muestra en la superficie golpeada, siempre mirando hacia la cámara.
  • Impact
    opcional
    ImageLabel como un hijo directo de ImpactBillboard; comienza completamente opaco, crece al tamaño completo del ImpactBillboard durante 0.1 segundos, luego se reduce a la mitad de su tamaño y se desvanece a plena transparencia durante 0.1 segundos.

Proyectiles explosivos

Los proyectiles pueden incluir un objeto Explosion para dañar personajes de jugadores en un área alrededor del punto de impacto. Los descendientes de la carpeta de configuración del arma incluyen:

  • ExplodeOnImpact
    opcional
    — Establece en true si deseas que las balas/proyectiles del arma exploten al impactar, false de lo contrario. El valor predeterminado es false.
  • BlastRadius
    opcional
    BlastRadius de la explosión; el valor predeterminado es 8.
  • BlastPressure
    opcional
    BlastPressure de la explosión; el valor predeterminado es 10000.
  • BlastDamage
    opcional
    — Daño infligido a las cosas en el centro de la explosión. Ten en cuenta que la explosión hace menos daño cuanto más lejos están los objetos golpeados del centro de la explosión. El valor predeterminado es 100.

Arma de carga

Un arma de carga como el Railgun debe cargarse entre disparos antes de que pueda disparar nuevamente.

  • Descendientes del modelo del arma:

    • Charging
      opcional
      Sound que se reproduce mientras el arma se está cargando.
    • Discharging
      opcional
      Sound que se reproduce mientras el arma se está descargando, por ejemplo, si cargas el arma solo parcialmente y sueltas el botón de disparo.
    • ChargeComplete
      opcional
      Sound que se reproduce cuando el arma ha alcanzado la carga completa.
    • DischargeComplete
      opcional
      Sound que se reproduce cuando el arma se ha descargado completamente.
    • ChargeGlow
      opcional
      BasePart que se volverá menos transparente a medida que el arma se carga, de modo que será completamente opaco al 100% de carga.
    • ChargeCompleteParticles
      opcional
      ParticleEmitter que emite cuando el arma ha terminado de cargarse. Este emisor puede ser un hijo de cualquier modelo BasePart o un hijo de un Attachment dentro del BasePart.
    • DischargeCompleteParticles
      opcional
      ParticleEmitter que emite cuando el arma se ha descargado completamente. Este emisor puede ser un hijo de cualquier modelo BasePart o un hijo de un Attachment dentro del BasePart.
    • ChargingParticles
      opcional
      ParticleEmitter que emite mientras el arma se está cargando. Puedes incluir múltiples emisores de este nombre y cada uno emitirá mientras se carga. Este emisor puede ser un hijo de cualquier modelo BasePart o un hijo de un Attachment dentro del BasePart.
  • Descendientes de la carpeta de configuración del arma:

    • ChargeRate — Tasa a la que el arma se cargará. Este valor debe especificarse para indicar que el arma utiliza carga.
    • DischargeRate
      opcional
      — Tasa a la que el arma se descargará. El valor predeterminado es 0, lo que significa que el arma no se descargará en absoluto.
    • ChargePassively
      opcional
      — Establece en true si deseas que el arma se cargue pasivamente para que dispare instantáneamente cuando hagas clic, o false si deseas hacer clic/tocar para cargar el arma y que dispare una vez que se alcance la carga completa. El valor predeterminado es false.
    • ChargingParticlesRatePerCharge
      opcional
      — Número de partículas que se emitirán de todos los emisores ChargingParticles multiplicado por la carga actual del arma. El valor predeterminado es 20, lo que significa que si la carga del arma está al 10%, cada emisor ChargingParticles emitirá 2 partículas (20*0.1), y si la carga del arma está al 90%, cada emisor emitirá 18 partículas (20*0.9).
    • FireDischarge
      opcional
      — Cantidad de carga que el arma perderá después de disparar un disparo completamente cargado. El valor predeterminado es 1.
    • NumChargeCompleteParticles
      opcional
      — Número de partículas que el emisor ChargeCompleteParticles emitirá una vez que el arma esté completamente cargada. El valor predeterminado es 25.
    • NumDischargeCompleteParticles
      opcional
      — Número de partículas que el emisor DischargeCompleteParticles emitirá cuando el arma esté completamente descargada. El valor predeterminado es 25.

Arma de arco

Un arma de arco como la Ballesta puede incluir una construcción de cuerda y brazos realista, así como una flecha visual colocada en la cuerda.

Además de agregar descendientes al modelo, necesitas aplicar lo siguiente:

  • Haz que el arma sea un arma de carga. Por ejemplo, agrega la ChargeRate requerida dentro de la Configuration del arma que especifica qué tan rápido se tensa la cuerda. Además, considera agregar descendientes opcionales al Model del arma, como un sonido de Charging para la cuerda/brazos que se tiran hacia atrás.
  • Establece el WeaponType en BowWeapon como se indica en la estructura del arma.

Los descendientes del modelo del arma incluyen:

  • LeftString
    opcional
    Beam para la mitad izquierda visual de la cuerda.
  • RightString
    opcional
    Beam para la mitad derecha visual de la cuerda.
  • Arrow
    opcional
    BasePart para la flecha que aparece cuando el arco está completamente tensado. Ten en cuenta que esto es solo para apariencia visual en el arco (la flecha disparada real será un ShotEffect como se describe en efectos y sonidos de proyectiles/golpes).
  • String1Attachment para el punto central de la cuerda.
  • StringLooseAttachment punto donde String1 debería estar cuando el arco está en reposo.
  • StringTightAttachment punto donde String1 debería estar cuando el arco está completamente tensado.
  • Arms
    opcional
    Part que solo sirve como un indicador interno de que los brazos del arco serán animados. Esto puede contener los siguientes hijos directos:
    • LeftString0Attachment punto donde el lado izquierdo de la cuerda está unido al arco.
    • RightString0Attachment punto donde el lado derecho de la cuerda está unido al arco.
    • LeftLooseAttachment punto donde LeftString0 debería estar cuando el arco está en reposo.
    • RightLooseAttachment punto donde RightString0 debería estar cuando el arco está en reposo.
    • LeftTightAttachment punto donde LeftString0 debería estar cuando el arco está completamente tensado.
    • RightTightAttachment punto donde RightString0 debería estar cuando el arco está completamente tensado.
    • MeshSpecialMesh parte del arco que realmente se doblará cuando se tense el arco. Ten en cuenta que debes especificar los siguientes cuatro objetos Vector3Value para que esto se anime.

GUI de Armas

El sistema central de armas interactúa con este sistema para actualizar la GUI en función de cosas como la dispersión del arma, indicadores de cuándo te golpean o golpeas a otros, etc.

El WeaponsSystemGui es un objeto ScreenGui en WeaponsSystem/Assets que se parenta a PlayerGui cuando comienza el juego. WeaponSystemGui tiene cuatro descendientes como sigue:

  • ScalingElements es una Folder con los siguientes descendientes:

    • DirectionalIndicatorsFolder donde se almacenan todos los indicadores direccionales.
    • Crosshair — Un Frame que contiene un UIAspectRatioConstraint y etiquetas de imagen para los elementos inferior, izquierdo, derecho y superior del punto de mira.
    • HitMarker — Un Frame que contiene un UIAspectRatioConstraint y una etiqueta de imagen HitMarkerImage que aparece y se desvanece cuando el jugador golpea exitosamente a otro personaje jugador.
  • LargeTouchscreen es un Frame que contiene botones AimButton y FireButton que se muestran en pantallas táctiles grandes.

  • Scope es un Frame que contiene la etiqueta de imagen ScopeImage que aparece al hacer zoom en un arma con HasScope habilitado (ver estructura del arma).

  • SmallTouchscreen es un Frame que contiene botones AimButton y FireButton que se muestran en pantallas táctiles pequeñas.

Indicadores direccionales

Los indicadores direccionales se utilizan para mostrar la dirección de algo alrededor del punto de mira del jugador. Por ejemplo, si alguien te dispara, puede aparecer un semicírculo rojo alrededor de tu punto de mira en la dirección de donde vino el disparo. Otros ejemplos incluyen indicadores para mostrar la dirección de pasos, disparos indirectos, o incluso objetos ambientales como cofres.

Para crear un nuevo indicador, agrega un nuevo Frame en WeaponsSystemGui/ScalingElements/DirectionalIndicators con la siguiente estructura:

  • Indicador (Frame)
    • ImageLabel para el indicador direccional. Puede ser necesario ajustar la rotación de la imagen en Studio a menos que subas la imagen de manera que esté mirando hacia abajo y haya poco o ningún espacio en blanco a su alrededor. Esta etiqueta de imagen también debe contener su propio UIAspectRatioConstraint.
    • Configuration que contiene propiedades opcionales para ajustar:
      • DistanceLevelFromCenter
        opcional
        — Número de niveles de distancia desde el centro de la pantalla (cada nivel de distancia es aproximadamente 0.03 de escala de pantalla). El valor predeterminado es 6.
      • FadeTime
        opcional
        — Tiempo de desvanecimiento del indicador después de su activación y el tiempo TimeBeforeFade. El valor predeterminado es 1.
      • Name
        opcional
        — Nombre del indicador direccional como deseas referenciarlo en el código. El valor predeterminado es el nombre del Frame de nivel superior del indicador.
      • TimeBeforeFade
        opcional
        — Número de segundos que el indicador aparecerá antes de desvanecerse. El valor predeterminado es 1.
      • TransparencyBeforeFade
        opcional
        — Transparencia del indicador antes de que comience a desvanecerse. El valor predeterminado es 0.
      • WidthLevel
        opcional
        — Número de niveles de ancho desde el centro (cada nivel de ancho es aproximadamente 0.03 de escala de pantalla). El valor predeterminado es el valor de DistanceLevelFromCenter.

Una vez creado, puedes activar un indicador a través del siguiente comando dentro de WeaponsSystem/Libraries/WeaponsGui donde indicatorName es el nombre de cadena del indicador a activar y worldPos es la posición en el mundo donde el indicador direccional debe apuntar:

self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

Cartel de daño

El cartel de daño se utiliza para mostrar números sobre la cabeza de un personaje cuando son dañados. Estos solo aparecerán para el jugador que dañó al personaje de otro jugador, no para los jugadores que están observando.

Los carteles de daño son manejados en WeaponsSystem/Libraries/DamageBillboardHandler y pueden ser activados desde cualquier código del lado del cliente de la siguiente manera, donde damage es la cantidad de daño infligido y adornmentPart es la parte en la que adornar el cartel, como la cabeza de la víctima:

DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Cámara sobre el hombro

La cámara sobre el hombro es una cámara en tercera persona que mira sobre el hombro derecho del personaje jugador. Para personalizar la cámara sobre el hombro, modifica las variables bajo el comentario -- Parámetros de configuración (constantes) en la función ShoulderCamera.new() de WeaponsSystem/Libraries/ShoulderCamera. Puedes modificar cosas como el campo de visión, el desplazamiento del personaje, la velocidad de caminata mientras corres o haces zoom, etc.

Correr y hacer zoom

Por defecto, el sistema de armas agrega la capacidad de "correr" para que los jugadores puedan correr manteniendo presionada la tecla Shift, empujando completamente hacia arriba en el joystick dinámico (móvil), o empujando completamente hacia arriba en el joystick izquierdo (controlador). Si deseas desactivar la carrera, establece el valor de SprintEnabled dentro de WeaponsSystem/Configuration en false.

El sistema también reduce la velocidad del jugador mientras está apuntando/haciendo zoom, pero puedes desactivar este comportamiento estableciendo el valor de SlowZoomWalkEnabled dentro de WeaponsSystem/Configuration en false.

©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.