This for the remixable world submitted for Meta Horizon World on Desktop Editor, September 2025
README
Table of Contents:
Section 1 – Overview
Section 2 – Game Mode Selection and Main Configuration
Section 3 – Primary Script Overview
Section 4 – Full Script/Prop Layout:
Section 1 – Overview
This is modular mobile multiplayer touch-screen / focused interaction template that can be easily modified and scaled-up. This template has 3 multiplayer arcade game modes built in that can be adjusted modularly for side-scroll-top-down shooter, arcade busting, and interactive block game modes. The settings can be changed to manage which game mode is active and due to modularity unused game modes can be removed. The initial configuration has 3 player multiplayer setup with scalable multiplayer quickly by simply copying the active player object group and adjusting health and scoring positions for new players. The code-base is designed with many settings/props that can be adjusted, and 3D models and other entities can easily be swapped out or modified. Wherever possible easily identifiable visual selection of objects have been used as the design choice to make it easier for someone to modify the game elements.
Features List:
a) Swap between 3 main mobile-arcade game modes easily (unused modes can also be deleted easily)
b) Focused Interaction mobile-touch control system dialed in for multi-device usability
c) Fully configured for multiplayer, quickly add players by copying player object groups
d) Directional shooting system with scoring that is easily changeable
e) Player health and collision system
f) Fixed world border for static-screen-style play is enabled and is easily changeable
g) Dynamic focused interaction calibration system (in beta) is included as a bonus
h) Local camera controls
i) Extensive debug console logs available
j) Easily adjustable player movement controls
h) World objects are easily identifiable to be swapped out by someone using the template
() General
- high score is tracked by persistent variable
- unused Game Modes are recommended to be deleted once a preferred game template mode is selected
- work around scripts in place to have triggers and visual objects follow certain objects
- player health is setup to reset active current score when all life bars losr
() Focused Interaction Touch Controls: - setup with generous boundaries so icons will be in correct locations across multiple devices
- beta calibration mode let’s user dynamically change focused interaction regions and icon placement at start but more work is needed to dial in the user setup experience
Section 2 – Game Mode Selection and Main Configuration
Instructions
1) Shooter Game:
- Pre-configured at launch
- Z position is set at -3.4786
2) Asteroid Game Setup: - disable visible/collidable on Shooter Game
- enable visible/collidable on Asteroid Game
- move Shooter Game to Z position 500
- move Asteroid Game to Z position 13.7
- in each player’s HUDLocal Script:
- – enable useRotationMode
- – enable useForwardMovementMode
3) Block Kin Game Setup - disable visible/collidable on other Games
- enable visible/collidable on Block Kin
- move Asteroid Game to position -500
- move Block Kin Game from Z 100 to Z position -1.62
- in each player’s HUDLocal Script
- – disable useRotationMode
- – disable useForwardMovementMode
- enable ObjectB collider in each player’s PLAYER
- disable visible on each player’s Health Bars parent
- disable visible HUD Global object SHOOT and NOVA
- in each players “Player Visual Object”
- – disable visible, all but “blockkin…”
- in each player’s PlayerControllerLocal
— set managedPlayerObject2, from HealthBars to blank - set each player’s Current Score+children from white to black
- set each player’s Health Bar to not visible
- set each player’s ForceXY entity target from PLAYER to blank
- set each player’s bullets to none
4) Starting Point: Endless Runner Waypoint Game - change global Player Settings to 1 Player
- disable local camera on PlayerLocalPntrollers
- In Endless Runner Game, on Waypoints object:
- – enableWaypointSystem
- – enableWaypointCamera
- – enableLocalCamera
5) Calibration Beta (tested for 1 person) - on HUDLocal enable calibrationmodebetatest
6) Multiplayer Scaling (pre-configured 3 players) - copy “Local Objects – Copy per player”, 1 per player
- increase Player Settings to desired number of players
- per player move position of: PLAYER, Current Score, and Health Bars
7) General Setup Notes: - reverse setup changes to return to original Shooter Game setup
- player collision needed for directional bullet configuration
- “bullet” model can be changed under “bullet trigger”
- change visual player under “Player Visual Object”
Section 3 – Primary Script Overview
1) HUDLocal – full review
showOnlyMovementControls-placeholder for UI adjustments
hideUnecessaryUI-placeholder for UI adjustments
enableFocusedInteraction – controls if Focused Interaction will be on at Start
useHoldInsteadOfTap – disables the hold-down functionality and only allows tapping for directional arrows
holdThresholdMS – optional condition to dial in hold timing
holdResponseDelayMs – optional condition to dial in hold timing
maxHoldActionsPerSecond – controls how long a button can be held down at once
enableDirectObjectControl – enables PLAYER movement controls
selectedObject – this is the PLAYER object, which needs to be a collision enabled
leftRightMovementAmount – controls how much the player moves left or right with forward direction mode
upDownMovementAmount – controls how much player moves up or down with arrows pressed
rotAmtDeg – controls how much rotation the left and right arrow will do per press on “useRotationMode”
useRotationMode – left and right arrows will turn the player instead of moving the player
useForwardMovementMode – up and down will move the player forward relative to their direction
RegionX settings – controls Focused Interaction Spacing
enableRapidTapInHoldMode – allows for quick tapping on buttons with Hold mode enabled
rapidTapThresholdMS – controls amount of rapid tapping reaction
Debug settings – enables relative debug logs
cal settings – custom configuration of beta dynamic calibration system, it essentially allows the user to adjust a plane at start and then the child object arrows replace the global UI, with the focused interaction changing dynamically based on the ratio of the shown calibration plane
1.1) Focused Interaction Settings in HUDLocal:
Screen Coordinate System-use normalized screen coordinates (0-1):
sX: 0 = left edge, 1 = right edge of screen
sY: 0 = top edge, 1 = bottom edge of screen
Region Variables and Their Effects
SHTingRegionX (default: 0.42)
What it controls: The vertical dividing line that separates shooting regions from movement regions
Effect:
Values closer to 0 = shooting regions take up more of the left side
Values closer to 1 = shooting regions get smaller, movement regions get larger
At 0.42, any touch with sX < 0.42 triggers SHT1 (top half) or SHT2 (bottom half) leftButtonRegionX (default: 0.7) What it controls: The left boundary for the LEFT movement button region Effect: Lower values = LEFT region starts further left, making it wider Higher values = LEFT region starts further right, making it narrower Must be between SHTingRegionX and rightButtonRegionX rightButtonRegionX (default: 0.7) What it controls: The left boundary for the RIGHT movement button region Effect: Lower values = RIGHT region starts further left, making it wider Higher values = RIGHT region starts further right, making it narrower Any touch with sX > this value = RIGHT button
upButtonRegionY (default: 0.35)
What it controls: The bottom boundary of the UP movement button region
Effect:
Lower values = UP region extends further down, making it taller
Higher values = UP region gets shorter, pushed toward top of screen
Any touch with sY < this value (in the movement area) = UP button downButtonRegionY (default: 0.65) What it controls: The top boundary of the DOWN movement button region Effect: Lower values = DOWN region starts higher up, making it taller Higher values = DOWN region gets pushed toward bottom, making it shorter Any touch with sY > this value (in the movement area) = DOWN button
2) PlayerControllerLocal
enableLocalCamera-enables the mobile game camera at Start (disable if using for example the Waypoint Runner Mode)
spawnPosition-not applicable other than we want the avatar to not be falling through space forever
cameraPosition-location of the mobile Local Camera (fixed game camera)
cameraRotationX-set as 90 degrees to look straight down
cameraRotationY-additional camera setting for rotation
cameraRotationZ-additional camera setting for rotation
enablePositionFreeze-placeholder controls for additional avatar controls
jumpObject-used to manage jumping object in the bonus waypoint runner framework
jump settings-used to manage jumping object in bonus waypoint runner framework
enablePlayerObjectManagement-enables the next 6 objects in the settings to be turned on and off if the player is active
managedColliderObject-control collider on and off on an object if enablePlayerObjectManagement is enabled
managedParticleObject-play on loopa particle if enablePlayerObjectManagement is enabled
enablePlayerNameDisplay-controls if the next object (text Gizmo) will display the active local player’s name
Debug settings – enable relative debug logs
3) ShootingMechanicsLocal – summary:
-Select relative bullet and score UI objects by placing desired visual object in the current “bullet” or HUD object location.
- The Shoot2Vi and Shoot2ViCal will toggle the Shoot2 button based on the CDNSeconds cooldown (how often the button press will cause the Shoot2 event).
-The selectedObject is the player.
-The TargetPoints control the points for tagged object contact with bullets.
Section 4 – Full Script/Prop Layout:
Meta Horizon Worlds Scripts Documentation
Script Summary Overview (Alphabetical)
- AnimationStarter.ts – Automatically starts animations with retry logic and timing controls
- BlockImpact.ts – Trigger-based scoring system with particle effects and neon texture randomization
- BulletTargetGame.ts – Collision detection and scoring for bullet-target interactions
- DeviceVisibilityManager.ts – Controls entity visibility based on player device type (VR/Desktop/Mobile)
- ForceXZ.ts – Monitors and resets object rotation to prevent unwanted X/Z axis rotation
- HideAtStart.ts – Automatically hides objects at world start with show/hide control methods
- HUDLocal.ts – Local player HUD with touch controls, movement, calibration, and focused interaction
- HUDManager.ts – Manages player local HUDs using a pool system for multiplayer environments
- ParticleSnow.ts – Triggers particle and sound effects when objects become invisible with toggle functionality
- PlayerControllerLocal.ts – Handles player positioning, camera management, freezing, and jump simulation
- PlayerControllerManager.ts – Manages player controller assignment, shooting scripts, and waypoints using pool patterns
- PlayerEventTriggerBase.ts – Base class for components that fire events on player/entity trigger interactions
- PlayerHealth.ts – Health system with deterioration modes, collision damage, and visibility-based reset
- PlayerTracker.ts – Tracks player movement and position with rotation matching capabilities
- PlayParticleEffects.ts – Plays multiple particle effects with configurable delay timing
- ShooterManager.ts – Server-side score management with persistent high score tracking
- ShooterManagerLocal.ts – Local display component for shooting game UI and score display
- Shooting.ts – Bullet shooting system with collision detection, movement, and scoring
- TriggerTracker.ts – Makes trigger objects follow other entities with configurable offsets
- Waypoints.ts – Player-based waypoint movement system with camera control and local management
Detailed Properties Documentation (Alphabetical)
AnimationStarter.ts
Summary: Automatically starts animations with retry logic and timing controls
Properties:
initialDelay: Number = 1000
– Initial delay before first animation attempt in millisecondsretryInterval: Number = 500
– Time between retry attempts in millisecondsmaxRetryTime: Number = 5000
– Maximum total time to retry before giving upenableAutoStart: Boolean = true
– Enable automatic animation startingshowDebugMessages: Boolean = true
– Enable console debug output
BlockImpact.ts
Summary: Trigger-based scoring system with particle effects and neon texture randomization
Properties:
scoreText: Entity
– TextGizmo to display and update scorescoreIncrease: Number = 5
– Points to add per hit (ignored if random scoring enabled)enableRandomScoring: Boolean = false
– Use random score values instead of fixedminScore: Number = 1
– Minimum random score valuemaxScore: Number = 10
– Maximum random score valueparticleEffect1: Entity
– First particle effect to play on impactparticleEffect2: Entity
– Second particle effect to play on impactparticleEffect3: Entity
– Third particle effect to play on impactsoundEffect: Entity
– Audio effect to play on impactreactivationTime: Number = 5.0
– Seconds until trigger reactivates after hitenableNeonTexture: Boolean = false
– Apply random neon texture on respawnneonTextureTarget: Entity
– MeshEntity to apply neon texture toneonIntensity: Number = 8.0
– Brightness multiplier for neon effect (1-20)showDebugMessages: Boolean = false
– Enable console debug logging
BulletTargetGame.ts
Summary: Collision detection and scoring for bullet-target interactions
Properties:
zOffsetOnHit: Number = 100
– Distance to move bullet in Z direction after hittargetDisableTime: Number = 20
– Seconds targets stay invisible after being hitnormalTargetPoints: Number = 1
– Points awarded for hitting normal targetsspecialTargetPoints: Number = 5
– Points awarded for hitting special targetsscoreText: Entity
– Text gizmo for displaying current scorehighScoreText: Entity
– Text gizmo for displaying high scorehitSFX: Entity
– Sound effect when bullet hits normal targetspecialHitSFX: Entity
– Sound effect when hitting special targethitVFX: Entity
– Particle effect on normal target hitspecialHitVFX: Entity
– Particle effect on special target hitshowDebugMessages: Boolean = false
– Enable console debug output
DeviceVisibilityManager.ts
Summary: Controls entity visibility based on player device type (VR/Desktop/Mobile)
Properties:
showOnVR: Boolean = false
– Make entity visible to VR playersshowOnDesktop: Boolean = false
– Make entity visible to Desktop playersshowOnMobile: Boolean = false
– Make entity visible to Mobile players
ForceXZ.ts
Summary: Monitors and resets object rotation to prevent unwanted X/Z axis rotation
Properties:
targetEntity: Entity
– Entity to monitor and reset rotation forshowDebugMessages: Boolean = true
– Enable console debug loggingcheckInterval: Number = 100
– Check frequency in milliseconds (1/10th second)xRotationThreshold: Number = 0.1
– Allowed X rotation deviation in degrees (pitch/nodding)zRotationThreshold: Number = 0.1
– Allowed Z rotation deviation in degrees (roll/tilting)
HideAtStart.ts
Summary: Automatically hides objects at world start with show/hide control methods
Properties:
target: Entity
– Object to hide (uses attached entity if not specified)disableCollision: Boolean = true
– Also disable collision when hidingshowDebug: Boolean = false
– Enable console debug output
HUDLocal.ts
Summary: Local player HUD with touch controls, movement, calibration, and focused interaction
Properties:
gameStatusText: Entity
– Text gizmo for displaying game status informationvfx: Entity
– Visual effects entity for UI feedbackshowOnlyMovementControls: Boolean = true
– Show only movement-related UI elementshideUnnecessaryUI: Boolean = true
– Hide non-essential UI elementsenableFocusedInteraction: Boolean = true
– Enable focused interaction mode for touch controlsuseHoldInsteadOfTap: Boolean = false
– Use hold-and-drag instead of tap controlsholdThresholdMs: Number = 200
– Milliseconds to hold before registering as holdholdResponseDelayMs: Number = 50
– Delay between hold actions in millisecondsmaxHoldActionsPerSecond: Number = 10
– Maximum hold actions per second rate limitenableDirectObjectControl: Boolean = true
– Enable direct object movement controlselectedObject: Entity
– Object to control with touch inputleftRightMovementAmount: Number = 0.5
– Distance to move left/right per inputupDownMovementAmount: Number = 0.5
– Distance to move up/down per inputrotAmtDeg: Number = 15
– Degrees to rotate per rotation inputuseRotationMode: Boolean = false
– Left/right inputs rotate instead of moveuseForwardMovementMode: Boolean = false
– Up/down moves forward/backward relative to objectSHTingRegionX: Number = 0.42
– Screen X coordinate for shooting region boundaryleftButtonRegionX: Number = 0.7
– Screen X coordinate for left button regionrightButtonRegionX: Number = 0.7
– Screen X coordinate for right button regionupButtonRegionY: Number = 0.35
– Screen Y coordinate for up button regiondownButtonRegionY: Number = 0.65
– Screen Y coordinate for down button regionenableRapidTapInHoldMode: Boolean = true
– Allow rapid tapping in hold moderapidTapThresholdMs: Number = 100
– Milliseconds threshold for rapid tap detectionshowTouchDebugMessages: Boolean = true
– Enable touch input debug loggingshowMovementDebug: Boolean = true
– Enable movement debug loggingshowHoldDebug: Boolean = false
– Enable hold gesture debug loggingenableWorldBoundaries: Boolean = true
– Enable world boundary enforcementworldBoundaryPlusX: Number = 3
– Positive X boundary limitworldBoundaryMinusX: Number = -3
– Negative X boundary limitworldBoundaryPlusZ: Number = 1.3
– Positive Z boundary limitworldBoundaryMinusZ: Number = -1.3
– Negative Z boundary limitshootingScript: Entity
– Reference to shooting script for communicationcalibrationmodebetatest: Boolean = false
– Enable screen calibration systemcalPlane: Entity
– Calibration plane entity for screen adjustmentcalStepSize: Number = 20
– Units to adjust calibration plane per inputcalMinPlaneX: Number = 100
– Minimum X dimension for calibration planecalMinPlaneZ: Number = 100
– Minimum Z dimension for calibration planecalUpRegionCenter: Entity
– Center point for up region during calibrationcalDownRegionCenter: Entity
– Center point for down region during calibrationcalLeftRegionCenter: Entity
– Center point for left region during calibrationcalRightRegionCenter: Entity
– Center point for right region during calibrationcalSht1RegionCenter: Entity
– Center point for shooting region 1 during calibrationcalSht2RegionCenter: Entity
– Center point for shooting region 2 during calibrationcalUpArrowObject: Entity
– Arrow object to position at up region centercalDownArrowObject: Entity
– Arrow object to position at down region centercalLeftArrowObject: Entity
– Arrow object to position at left region centercalRightArrowObject: Entity
– Arrow object to position at right region centercalSht1Object: Entity
– Object to position at shooting region 1 centercalSht2Object: Entity
– Object to position at shooting region 2 centercalCompleteHideObject: Entity
– Object to hide when calibration is completedcalText1-5: Entity
– Text gizmos for calibration instructions and feedback
HUDManager.ts
Summary: Manages player local HUDs using a pool system for multiplayer environments
Properties:
static propsDefinition = {}
– No configurable properties; manages HUD assignment automatically
ParticleSnow.ts
Summary: Triggers particle and sound effects when objects become invisible with toggle functionality
Properties:
targetObject: Entity
– Target object to monitor for invisibility (optional – uses attached entity if not set)particleEffect: Entity
– ParticleGizmo to trigger when object becomes invisiblesoundEffect: Entity
– AudioGizmo to play when object becomes invisibleenableObjectToggle: Boolean = false
– Enable functionality to show/hide another object with timertoggleObject: Entity
– Object to show when target becomes invisibletoggleDurationSeconds: Number = 15
– Duration in seconds to keep toggle object visiblecheckFrequencyMs: Number = 50
– How often to check visibility in milliseconds (recommended: 50ms)showDebugMessages: Boolean = false
– Enable console debug logging for troubleshooting
PlayerControllerLocal.ts
Summary: Handles player positioning, camera management, freezing, and jump simulation
Properties:
enableLocalCamera: Boolean = true
– Toggle to enable/disable local camera controlspawnPosition: Vec3 = (0,0,0)
– Initial spawn position for the playercameraPosition: Vec3 = (1,1,-3)
– Static camera position in world coordinatescameraRotationX: Number = 0
– Camera X rotation in degreescameraRotationY: Number = 0
– Camera Y rotation in degreescameraRotationZ: Number = 0
– Camera Z rotation in degreesfreezePlayerPosition: Vec3 = (0,0,0)
– Position to lock player at when freezing enabledenablePositionFreeze: Boolean = true
– Whether to freeze player at specified positionjumpObject: Entity
– Object to animate with jump simulation when triggeredenableJumpSimulation: Boolean = false
– Enable jump animation systemjumpHeight: Number = 2.0
– Local Y height to jump to in world unitsjumpUpSpeed: Number = 5.0
– Speed going up in units per secondjumpDownSpeed: Number = 8.0
– Speed falling down in units per secondjumpUpdateInterval: Number = 0.016
– Update frequency for smooth jump animationjumpResetToZero: Boolean = true
– Whether to reset to Y=0 or original Y positionjumpFollowParent: Boolean = true
– Keep jump object following parent positionenablePlayerObjectManagement: Boolean = false
– Toggle for player object visibility managementmanagedPlayerObject: Entity
– Player object to manage visibility/collision/positionmanagedPlayerObject2: Entity
– Second player object to managescoreTextGizmo1: Entity
– First score text display gizmoscoreTextGizmo2: Entity
– Second score text display gizmoresetScoreText1: String = "Score: 0"
– Default text for first score gizmoresetScoreText2: String = "Lives: 0"
– Default text for second score gizmomanagedColliderObject: Entity
– Object to enable/disable collider based on player activitymanagedParticleObject: Entity
– Particle effect to control based on player activityenablePlayerNameDisplay: Boolean = false
– Show active local player’s nameplayerNameTextGizmo: Entity
– Text gizmo to display the player’s nameshowDebugMessages: Boolean = true
– Enable console debug outputshowPlayerManagementDebug: Boolean = false
– Enable detailed player management debug logs
PlayerControllerManager.ts
Summary: Manages player controller assignment, shooting scripts, and waypoints using pool patterns
Properties:
- No configurable properties – manages assignment pools automatically
PlayerEventTriggerBase.ts
Summary: Base class for components that fire events on player/entity trigger interactions
Properties:
- No configurable properties – abstract base class providing trigger event functionality
PlayerHealth.ts
Summary: Health system with deterioration modes, collision damage, and visibility-based reset
Properties:
green1-green5: Entity
– Health bar block entities showing healthy statered1-red5: Entity
– Health bar block entities showing damaged stateplayerDeathObject: Entity
– Object to hide when player diesminDeteriorationTime: Number = 30
– Minimum deterioration time in seconds (random mode)maxDeteriorationTime: Number = 120
– Maximum deterioration time in seconds (random mode)useControlledMode: Boolean = false
– Switch between random and trigger-controlled damagedamageCollisionTag: String = "trigger"
– Tag name for objects that cause damage in controlled modelifeDisplayText: Entity
– Text gizmo to display life countdamageSound: Entity
– Audio effect when taking damagedeathSound: Entity
– Audio effect when all health is lostchangeTextOnDeath: Boolean = false
– Change text display to “0” when deadobjectDisableTime: Number = 45
– Seconds to disable collision objects after hitcollisionEffect: Entity
– Particle/audio effect to play on collisioninvincibilityTime: Number = 5
– Seconds of invincibility after taking damagevisibilityResetObject: Entity
– Object to monitor for visibility-based health resetenableVisibilityReset: Boolean = false
– Enable automatic health reset when monitored object becomes invisiblevisibilityCheckInterval: Number = 2
– How often to check visibility in secondsshowDebug: Boolean = false
– Enable debug console logging
PlayerTracker.ts
Summary: Tracks player movement and position with rotation matching capabilities
Properties:
playerVisible: Entity
– Entity to move based on player core positionplayerCore: Entity
– Entity to track position fromupdateIntervalMs: Number = 100
– Update frequency in millisecondsshowDebugMessages: Boolean = true
– Enable console debug outputenableTracking: Boolean = true
– Enable/disable position trackingtrackingDistance: Number = 1000
– Maximum tracking distance before stoppingsmoothingFactor: Number = 1.0
– Position smoothing (0.0-1.0, 1.0 = no smoothing)matchYRotation: Boolean = false
– Enable Y-axis rotation matchingrotationSmoothingFactor: Number = 1.0
– Rotation smoothing factor (0.0-1.0)
PlayParticleEffects.ts
Summary: Plays multiple particle effects with configurable delay timing
Properties:
particle1: Entity
– First particle effect entity to playparticle2: Entity
– Second particle effect entity to playparticle3: Entity
– Third particle effect entity to playdelay: Number = 6
– Delay in seconds before playing all particle effects
ShooterManager.ts
Summary: Server-side score management with persistent high score tracking
Properties:
currentScoreText: Entity
– Text gizmo displaying current scoreplayerHighScoreText: Entity
– Text gizmo displaying player’s high scoreshootingComponent: Entity
– Reference to the shooting component entity for communicationshowDebugMessages: Boolean = true
– Enable console debug output for troubleshooting
ShooterManagerLocal.ts
Summary: Local display component for shooting game UI and score display
Properties:
serverScript: Entity
– Reference to server-side ShooterManager script entityplayerHighScoreText: Entity
– Local text gizmo for displaying high scoreshowDebugMessages: Boolean = true
– Enable console debug output
Shooting.ts
Summary: Bullet shooting system with collision detection, movement, and scoring
Properties:
currentScoreText: Entity
– Text gizmo for displaying current scoreShoot1SFX: Entity
– Audio effect for standard shootinghitTargetSFX: Entity
– Audio effect when bullet hits targetShoot2Tri: Entity
– Trigger entity for special shot 2Shoot2Sfx: Entity
– Audio effect for special shot 2Shoot2Pfx: Entity
– Particle effect for special shot 2Shoot2Vi: Entity
– Visual indicator for special shot 2 availabilityShoot2ViCal: Entity
– Visual indicator for special shot 2 calibrationShoot2CDNSeconds: Number = 10
– Cooldown time for special shot 2 in secondsselectedObject: Entity
– Object to use as shooting reference pointbulletEntity1-5: Entity
– Five bullet entities for shooting rotationBLTSpeed: Number = 8
– Bullet movement speed in units per secondBLTSpawnOffset: Number = 5
– Distance to spawn bullet from selected objectenableBLTPhysics: Boolean = false
– Enable physics simulation for bulletsenableChildMovement: Boolean = true
– Enable movement for child entities of bulletszeroTargetPoints: Number = 0
– Points awarded for zero-point targetsnormalTargetPoints: Number = 1
– Points awarded for normal targetsspecialTargetPoints: Number = 5
– Points awarded for special targetsmediumTargetPoints: Number = 10
– Points awarded for medium targetshighTargetPoints: Number = 20
– Points awarded for high-value targetszOffsetOnHit: Number = 50
– Z-axis distance to move bullet after hittargetDisableTime: Number = 15
– Seconds to disable targets after being hitpostShotCooldown: Number = 500
– Cooldown in milliseconds between shotsshooterManager: Entity
– Reference to ShooterManager for score communicationshowSHTingDebug: Boolean = true
– Enable shooting system debug outputshowScoringDebug: Boolean = true
– Enable scoring system debug output
TriggerTracker.ts
Summary: Makes trigger objects follow other entities with configurable offsets
Properties:
triggerToFollow: Entity
– Trigger gizmo entity that will follow the targetobjectToTrack: Entity
– Entity to track position fromxOffset: Number = 0
– X-axis offset from tracked object positionzOffset: Number = 0
– Z-axis offset from tracked object positionupdateIntervalMs: Number = 100
– Update frequency in millisecondsshowDebugMessages: Boolean = true
– Enable console debug outputenableTracking: Boolean = true
– Enable/disable position trackingtrackingDistance: Number = 1000
– Maximum tracking distancesmoothingFactor: Number = 1.0
– Position smoothing factor (0.0-1.0)
Waypoints.ts
Summary: Player-based waypoint movement system with camera control and local management
Properties:
enableWaypointSystem: Boolean = false
– Master toggle for waypoint systemenableWaypointCamera: Boolean = false
– Enable waypoint-based camera controlenableLocalCamera: Boolean = true
– Enable local static camerawpWaypointParent: Entity
– Parent entity containing waypoint childrenwpTargetObject: Entity
– Object to move along waypoint pathwpCameraOffsetObject: Entity
– Object to use for camera offset calculationswpMovementSpeed: Number = 5
– Movement speed in units per secondwpUpdateInterval: Number = 0.016
– Update frequency for smooth movementwpSmoothTurning: Boolean = true
– Enable smooth rotation between waypointswpTurnSpeed: Number = 2.0
– Rotation speed for smooth turningwpIgnoreYPosition: Boolean = false
– Keep original Y position during movementwpLoopPath: Boolean = true
– Loop back to first waypoint when reaching endwpArrivalThreshold: Number = 0.3
– Distance threshold for reaching waypointswpUsePositionSmoothing: Boolean = true
– Enable position smoothingwpPositionSmoothingFactor: Number = 0.8
– Position smoothing strength (0.0-1.0)wpMinimumMovementThreshold: Number = 0.01
– Minimum movement distance per framewpUseSubFrameInterpolation: Boolean = false
– Enable sub-frame interpolationwpSubFrameSteps: Number = 2
– Number of sub-frame steps for interpolationwpCameraFollowSpeed: Number = 5.0
– Camera follow speedwpCameraRotationSpeed: Number = 3.0
– Camera rotation speedwpCameraPositionOffset: Vec3 = (0,2,-5)
– Camera offset from targetwpCameraLookAhead: Number = 2.0
– Distance to look ahead for camerawpCameraUpdateFrequency: Number = 0.016
– Camera update frequencywpFollowTargetRotation: Boolean = true
– Camera follows target rotationwpCameraTurnMode: String = "smooth"
– Camera turning mode (smooth/timed)wpCameraTurnTime: Number = 1.0
– Time for camera turns in timed modewpCameraTurnSmoothness: Number = 2.0
– Camera turn smoothness factorwpCameraRotationX/Y/Z: Number = 0
– Camera rotation offsetslocalCameraPosition: Vec3 = (1,1,-3)
– Static local camera positionlocalCameraRotationX/Y/Z: Number = 0
– Static local camera rotationwpEnablePlayerManagement: Boolean = true
– Enable player management integrationwpDisablePlayerMovement: Boolean = true
– Disable player movement during waypointswpFreezePlayerPosition: Boolean = true
– Freeze player at specified positionwpPlayerFreezePosition: Vec3 = (0,0,0)
– Position to freeze player atwpAutoStartOnEnabled: Boolean = true
– Auto-start waypoints when player assignedwpStartDelay: Number = 0.5
– Delay before starting waypoint movementshowDebugMessages: Boolean = true
– Enable general debug outputshowCameraDebugMessages: Boolean = false
– Enable camera-specific debug outputshowPlayerManagementDebug: Boolean = false
– Enable player management debug output