Log inGet started
▣
module · drop-in viewer
asset⌬ modulemoduleprimary: init.luau·originates fromworld 6ea94b2d-3…

combat

Three generated naval fighters, steering AI, cannon ballistics and guided missiles. Registers with game.shared at order20. Boot activates the weapon input map; reset clears the encounter; update spawns the patrol eight seconds after carrier departure, advances AI and projectiles;…

byzero-proxy @ DESKTOP-DB3UJOJ·posted 1mo ago
What it does

SKYWARD combat

Three generated naval fighters, steering AI, cannon ballistics and guided missiles. Registers with game.shared at order20. Boot activates the weapon input map; reset clears the encounter; update spawns the patrol eight seconds after carrier departure, advances AI and projectiles; stop releases controls and every owned temporary object. Weapons stay safe on the deck and during the catapult stroke.

Space / left mouse / right trigger fires from a finite600-round inventory at15rounds per second. The gun sits2.5m right,0.8m below and5m ahead of the flight viewpoint, using the aircraft's actual banked pose. Tracers converge on the boresight at1200m. M / right mouse / left trigger launches one of six missiles after holding the selected enemy within a15-degree seeker cone and4km range for1.15seconds. A press during acquisition queues the missile for up to4seconds; changing targets cancels it. Tab / gamepad north cycles living targets. Touch exposes labelled buttons.

Missiles eject from alternating wing mounts4m either side,1.4m below and3m forward, then accelerate and steer toward a predictive intercept point. A bright motor and persistent smoke show their trajectory. Damage requires a geometric proximity hit; cannon and hostile rounds use swept line collision. Three kills calls the shared victory state. Hostiles maneuver to intercept and only shoot when their nose aims at the player's flight path.

s.weaponStatus is the HUD status string. s.missilePending is queued time remaining in seconds, zero when inactive. s.lastLaunchReject and s.lastLaunchRejectTime describe the most recent refused request. telemetry() exposes launch requests and reasons, actual mount origins, missile position/speed/smoke, and hit counters.

Aircraft geometry has twin fins, paired engines and retracted landing gear. Units are meters, Y up and forward -Z. Owned entities are temporary and unsynced; each encounter stays local to the player's peer. Game lifecycle drives updates without a polling task loop.

Interface

What this asset declares: the schema it conforms to, what it exposes, and the rendered structured payload.

conforms to

zero/source-extract/v2
ModelAsset

add(a: ?, b: ?, k: ?) → void

argtypedescription
a?
b?
k?

sub(a: ?, b: ?) → void

argtypedescription
a?
b?

dot(a: ?, b: ?) → void

argtypedescription
a?
b?

cross(a: ?, b: ?) → void

argtypedescription
a?
b?

length(a: ?) → void

argtypedescription
a?

unit(a: ?) → void

argtypedescription
a?

turnToward(current: ?, desired: ?, angle: ?) → void

argtypedescription
current?
desired?
angle?

intercept(origin: ?, target: ?, velocity: ?, speed: ?) → void

argtypedescription
origin?
target?
velocity?
speed?

basis( ) → void

mount(lateral: ?, vertical: ?, forward: ?) → void

argtypedescription
lateral?
vertical?
forward?

safety( ) → void

segmentHit(a: ?, b: ?, p: ?, r: ?) → void

argtypedescription
a?
b?
p?
r?

removeEntity(e: ?) → void

argtypedescription
e?

keep(h: ?) → void

argtypedescription
h?

clear( ) → void

impact(p: ?) → void

argtypedescription
p?

explosion(p: ?) → void

argtypedescription
p?

damageEnemy(e: ?, amount: ?, p: ?) → void

argtypedescription
e?
amount?
p?

selectTarget( ) → void

projectile(p: ?, d: ?, speed: ?, hostile: ?, owner: ?) → void

argtypedescription
p?
d?
speed?
hostile?
owner?

logLaunch(reason: ?, origin: ?) → void

argtypedescription
reason?
origin?

reject(reason: ?, text: ?) → void

argtypedescription
reason?
text?

makeSmoke(p: ?) → void

argtypedescription
p?

launchLocked( ) → void

launch( ) → void

buildEnemy(i: ?) → void

argtypedescription
i?

boot( ) → void

ready(_: ?) → void

argtypedescription
_?

reset( ) → void

update(dt: ?) → void

argtypedescription
dt?

stop( ) → void

telemetry( ) → void

spawnAir(opts: ?) → void

Mission director consumes combat primitives while this module owns weapons and hit resolution.

argtypedescription
opts?

addGround(name: ?, role: ?, p: ?, ent: ?, radius: ?) → void

argtypedescription
name?
role?
p?
ent?
radius?

setTrigger(value: ?) → void

argtypedescription
value?

Sub-parts

Everything contained inside this part. Assets are composite children (clickable cards). Files are leaf payloads. Expand any row to view its source.

Showing up to 3 levels deep. Open a part to see what it holds further down.

23+items
·
inputmap · born here
❒asset
# weapons <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this inputMap provides and who consumes it, then delete both comment lines. --> TODO: describe this inputMap.
▲ 0↑ born
▣
module · born here
❒asset
# Sortie state and lifecycle Shared per-client game state, constants, system registration, ordered update/reset callbacks, UI callback routing, damage, mission outcomes and bounded sound/event history for SKYWARD. The scene entrypoint loads flight, combat, cockpit and environment modules and drives this registry.
▲ 0↑ born
▣
module · born here
❒asset
# AI aircraft motion Shared bank-driven flight for Skyward's enemy fighters, wingman, bombers and reconnaissance aircraft. Combat and mission director modules supply guidance; this module integrates attitude, speed and position. Require `game.flight.ai_aircraft`. Call `step(aircraft, desiredUnitDirection, targetSpeed, dt, profile, terrainHeight)`, then `pose(aircraft)` to update its entity. Aircraft tables provide position, unit forward and speed in metres/second; optional id selects the initial reversal side. Profiles are fighter, wingman, bomber and recon. terrainHeight(x,z) returns metres above sea level. Call reset after deliberately changing an existing aircraft's pose. Roll has bounded rate and acceleration. Heading follows bank and airspeed; pitch respects a combined load limit. Speed responds gradually to throttle demand, climb and turn drag. Predictive terrain clearance steers upward without snapping altitude. The rendered up vector follows the same bank used to turn. Numerical integration substeps at at most 1/120 second. This is a tuned kinematic flight model, not a full aerodynamic simulation. Missile steering is separate. Run /zero/source/design/verify-ai-flight.luau for motion limits, frame-rate consistency and terrain clearance; verify-sorties.luau and verify-tactics.luau cover the mission consumers.
▲ 0↑ born
▣
module · born here
❒asset
# Unguided aircraft rockets Alternating wing-launched rocket fire for Skyward's multirole and Rocket Strike loadouts. Combat configures existing damage, explosion and smoke callbacks; rockets owns motor thrust, drag, gravity, swept target/terrain collisions, blast occlusion, lingering trails and the predicted impact sight. Hold R, gamepad west or the ROCKETS touch button to ripple fire at five rounds per second without target lock. The cockpit displays ammunition and a terrain impact pipper; environment audio consumes rocket events. Public functions: configure(callbacks), launch(), setTrigger(held), update(dt), reset(), predict(), advance(shot,dt), inspect(). A shot starts below/outside the cockpit and inherits airspeed, burns for 1.2 seconds, then coasts ballistically for a maximum of eight seconds. Direct hits deal 100 damage; ground splash falls off over 90 metres beyond the target hit radius and is blocked by intervening terrain. Nearby blasts can damage the player. No homing or airburst proximity fuse. Rocket Strike carries 32 rockets, two guided missiles and six countermeasures. Multirole carries 12 rockets, six missiles and ten countermeasures. Interceptor has no pods. Reset/stop destroys all rocket entities and particle emitters. Verification is in design/verify-rockets.luau.
▲ 0↑ born
·
inputbinding · born here
❒asset
# cannon <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this inputBinding provides and who consumes it, then delete both comment lines. --> TODO: describe this inputBinding.
▲ 0↑ born
·
inputbinding · born here
❒asset
# missile <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this inputBinding provides and who consumes it, then delete both comment lines. --> TODO: describe this inputBinding.
▲ 0↑ born
·
inputbinding · born here
❒asset
# rockets The 'ROCKETS' control.
▲ 0↑ born
·
inputbinding · born here
❒asset
# target <!-- zero:scaffolded-readme --> <!-- Replace the line below with what this inputBinding provides and who consumes it, then delete both comment lines. --> TODO: describe this inputBinding.
▲ 0↑ born

Problems

Everything affecting this asset right now: its own problems, anything wrong inside it, and problems on its direct dependencies.

0problems
No problems reported on this asset or on the parts this page shows. Parts it leaves out are not counted here.
⌬ZeroMind agent review · awaiting first pass
Findings
Reviewer findings (handle · model · tag · quoted note) appear here once the per-pass review log lands. Today only the rolled-up agent_score is exposed.
usability—
did it work as advertised
quality—
authoring polish + cohesion
performance—
frame & memory budget held
agent review score
—
/ 100
awaiting first pass
usability × 0.40
+ quality × 0.35
+ performance × 0.25
± compat factor

Usability ratings

Did the part work as advertised when consumers tried to drop it in. Separate from upvotes: those are taste; this is "did it function".

—%no reports yet
Sign in to report whether this part worked for you.
Discussion

Scoped to this part · feeds back into the world's score.

0comments
Sign in to post.sign in
No comments yet. Be the first.