Under The Bonnet | Patch 12

Written by Parias on . Posted in Scattered Chatter, Under The Bonnet


(As per \CitizenClient\Client_Release.id)

A new month has finally heralded the release of the much-awaited Dogfighting Module (more formally known as “Arena Commander”) release for Star Citizen! After more than a few mishaps and unexpected delays, the team finally rushed it out the door early last week…. and then rushed it out the door again a few hours later after realizing the actual dogfighting maps had accidentally been excluded somehow. Whoops.

But everything’s in order now and many of us have had a chance to check out the first evidence of real, actual gameplay that Star Citizen has to offer. This turned out to be one of the largest patches yet (understandably), bringing the game download size up to 10GB. This also makes for a somewhat daunting exploration of the files given the sheer amount of stuff that’s changed… you’ll also notice we’re back down to Build 75 now. Correspondingly, I’ve noticed that the Client_Release.id file shows a completely different branch this time (“release12” vs last month’s “patch11”) so there’s some strong evidence that we’re working with a very different build this time.

In fact, this build is so different that it took me several days to actually work through the insane number of changes and pick out what was worth reporting on! It actually took me so long that CIG snuck out a second update while I was still working on this, so you’re actually getting an Under The Bonnet back-to-back special. See part two here.

CIG has also confirmed that the .PAK files have been locked down a bit; Scripts.pak cannot be opened at all now with standard tools (and requires a bit of extra know-how parse), and while the other archives can still be edited freely, the game will fail to read them properly on boot-up if modified. This limits the amount of fun one can have versus the previous builds, but is understandable given the need to keep the testing environment sane while the actual gameplay builds start ramping up. Still, this is a bit disappointing for modders and machinima artists who relied on being able to manipulate the game’s assets to create some of their works, so I hope they open the game files up to modding again soon (for private gaming only, of course).

Again, this is a very significant new build with a lot of little changes, so I’m going to just be focusing on (arguably) the most interesting bits that I can find – with the script / gamedata changes taking up a sizable chunk of attention. If you know of something else cool that you think should be included, drop a comment! Let’s dive in.

Patch Breakdown


  • Remember that awesome part where the discount hangar door opened in the PAX demo? This sequence hasn’t actually been hooked up in the public Arena Commander build, but the files are still there. Here’s what you get when you plug ObjectsBrushPlanet.pak\Objects\brush\planet\uee\door\HangarDoor_grunge_discount_animated.cga (and it’s associated animation files) into the Cryengine editor: https://www.youtube.com/watch?v=6S2AeW8kd9g
  • There have been a variety of interesting new incomplete / unused map objects added to the game files, along with working animations for them. I’ll go into more detail about them in the Other Objects section.
  • We’ve also seen some more changes to the binary animation files for the “comm_relay” object that popped up a build or two ago (Animations.pak\Animations\Objects\comm_relay), but so far I still haven’t found a matching model file to go with it.
  • There’s a scattering of small-scale animation additions for a variety of ships. There are two new strange animation files relating to the Cutlass in Animations.pak\Animations\Spaceships\Ships\DRAK\Cutlass: “Cutlass_Cine.animsettings” and a matching.caf file. Perhaps relating to some cinematic variant of the Cutlass that’s being worked on internally? The Avenger PT variant now has a new “sleepdoor_close” animation in Animations.pak\Animations\Spaceships\Ships\AegisDynamics\AvengerPT. The Freelancer also has a number of new animations for things like “Entrance_Front_Doors_Open/Close”, “Berths_Ladder_Deploy”,  and “Rear Turret Deploy”. A bunch of extra initial animations have also been added for the Freelancer DUR, MAX, and MIS variants! You may recall these completely went missing a few builds ago, following an unexpected “leak” when they somehow slipped into the game files before their time.
  • We have some more hints from the FPS module; animations for “Pistol_Combustion” and “Rifle_BehringP4SC” have been added to Animations.pak\Animations\weapons . The pistol only has a slide-back / firing animation, while the rifle now has both a firing and reload animation… however neither of them actually seem to properly animate the weapon at this time. Here’s a preview of what they look like in case you haven’t seen them before: https://www.youtube.com/watch?v=mNrVdf2rDis

(Update!) There’s also a new “Shotgun_Electric” weapon model worth looking at, located in ObjectsWeapons.pak\Objects\Weapons\Shotgun_Electric . Included are models for both the weapon itself, and a “bullet” projectile. I’ve imported it and performed a quick fly-around that can be seen here: https://www.youtube.com/watch?v=vnW1NJ-1drs – Thanks to the venerable AnythingFPS for pointing this out!)



As mentioned earlier, scripts.pak has been encrypted in some way and is basically inaccessible via normal tools, limiting our ability to easily analyze the latest differences. But when has a silly thing like that ever stopped me?

  • A breakdown of all of the current Arena Commander gameplay modes can be found in Scripts.pak\Scripts\GameRules (including ones not implemented / available yet). This includes BattleRoyale, CaptureTheCore, Survival, and the enigmatic “Conquest” mode (see some details about this in the “SHIP / WEAPON / OTHER OBJECTS” section below).  This is currently the most incomplete / generic of the set, with a line that even indicates “NEEDS A DESCRIPTION” and some interesting toggle settings:
        <Setting name='Time Limit' type='slider' defaultValue='10' description='How long the match is.' tooltip='How long the match lasts in minutes.' />
        <Setting name="Target Score" type="slider" defaultValue="5" description="" tooltip="" />
        <!--<Setting name='Cockpit View' type='bool' defaultValue='true' description='Allow users to use 3rd person viewing.' tooltip='Enable/Disable 3rd Person.' />
        <Setting name='Friendly Fire' type='bool' defaultValue='true' description='Allow the ability to fire upon your allies.' tooltip='Enable/Disable friendly fire.' />-->
  •  Scripts.pak\Scripts\Hangars is an all-new folder. Right now there’s just one file inside – “Asteroid.xml”, which ‘seems’ to show hints of the upcoming hangar-expansion functions planned for the game:
<HangarDefinition Name="Asteroid">
    <BaseLibrary Name="Hangar">
    <SeedCategory Name="Seeds"/>
        <Category Name="stock"/>
        <Category Name="Expansion_1"/>
        <Category Name="Expansion_2"/>
        <Category Name="Expansion_3"/>
        <Category Name="Expansion_4"/>
        <Layout Size="1">
            <Category Name ="Nubs_Stock_Left"/>
            <Category Name ="Nubs_Stock_Right"/>
  • There are a number of references across a few files (Scripts.pak\Scripts\Entities\AI\Characters\Human_x.lua, Scripts\Entities\actor\BasicActor.lua, etc) from “CIG cbrungardt @ IllFonic” referencing “part of Equipment Manager Removal”. This seems like some legacy code cleanup, potentially from something that was part of the base Cryengine SDK.
  • Scripts.pak\Scripts\Entities\Cover has two new files of interest – “CoverGroup.lua” and “CoverSlot.lua”.  These entities are likely related to further development of the cover system being implemented for the FPS gameplay.
  • There’s a new block in Scripts.pak\Scripts\Entities\Items\XML\Weapons\Rifle_BehringP4SC.xml relating to Mobiglass augmented-reality functionality (presumably) for one of the new upcoming FPS weapons. Here’s a bit:
<mobiGlasARDataAttachment arType="ItemPort" arAttachPoint ="0, 0, 0" arLongRange="12" arShortRange="6" arMinRange="1" arMaterial="materials/item_selection/HoloTable_empty_port_dodecahedron_prop_uee_darkblue.mtl" />

Presumably this provides an “attachment point” for AR text to appear while your Mobiglass is out and scanning environmental objects – weapons, ships, usable terminals, etc.

  • Scripts.pak\Scripts\Entities\Multiplayer has a few new files relating to the as-of-yet-unimplemented Capture The Core base / core objects. Here’s a neat little code snippet that seems to indicate an animation to “open” the CTC base object will play if you get close to it while you have the core (“flag”). This corresponds nicely to some animations found in the game files for a similar-sounding object: https://www.youtube.com/watch?v=h2XsR1z15JY
function CTCBase:SetInProximity(inProx)
    --if (self.InProximity ~= inProx) then
    --    self.InProximity = inProx;

    --    if (self.HasFlag) then
    --        local animName;
    --        if (inProx) then
    --            animName = "ctf_base_open";
    --        else
    --            animName = "ctf_base_close";
    --        end        
    --        local installed, duration = self:StartAnimation(0,animName, 0, 0.4, 1.0, 0);
    --        Log("CTCBase:InProximity anim %s %d", animName, duration*1000);
    --        self:SetTimer(TIMER_ANIM_TRANSITION, duration*1000);
    --    end

Although it should be noted that this same file references “Objects/multiplayer/props/cw2_ctf_base/cw2_ctf_base.cdf” for the CTCBase file model, while the aforementioned movie shows animations from a “conquest_tower” object which may just be unrelated.

  • Scripts.pak\Scripts\FlowGraphs\CargoItem_Grabbable_FlowGraph.xml seems to have some preliminary bits for grabbable cargo objects. Here’s a snippet:
  <Node Id="129" Class="Movement:RotateEntityToEx" pos="1030,2070,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" Destination="0,0,0" DynamicUpdate="1" ValueType="1" Value="0.25" CoordSys="1"/>
  <Node Id="130" Name="Carry_Object\nOver_The_Shoulder" Class="_comment" pos="-900,1220,0" flags="0"/>
  <Node Id="133" Name="rotate_to_side,_top_facing_forward" Class="_comment" pos="580,1210,0" flags="0"/>
  <Node Id="138" Class="Mission:GameTokenSet" pos="-130,1180,0" flags="0">
   <Inputs gametoken_Token="PlayerIsCarryingObject" Value="true"/>
  <Node Id="139" Class="Mission:GameTokenSet" pos="-100,1930,0" flags="0">
   <Inputs gametoken_Token="PlayerIsCarryingObject" Value="false"/>
  <Node Id="141" Class="Entity:ChildDetach" pos="-70,650,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" KeepTransform="1" EnablePhysics="1"/>
  <Node Id="142" Name="detach_from_GravLift" Class="_comment" pos="-80,600,0" flags="0"/>
  <Node Id="143" Class="Entity:ChildDetach" pos="-1210,1010,0" flags="0" GraphEntity="0">
   <Inputs entityId="0" KeepTransform="1" EnablePhysics="1"/>
  <Node Id="144" Name="make_sure_this_isn&apos;t_a_child" Class="_comment" pos="-1270,960,0" flags="0"/>
  • A number of seemingly-inconspicuous entities have been added to GameData.pak\Entities – i.e. “BaldEagle”, “Birds”, “Bugs”, “Frogs”, and so forth. I’m not sure if these are generic SDK objects that got lumped in with this branch (possibly due to some changes in the Cryengine version development is now being based from) , or if these actually have implications for some of the stuff we’ll eventually see while exploring planetary environments. We also have some new Kythera entities like “NavObstacle”, a new “CTCBase” entity (for Capture The Core?), and a few other odds and ends.
  • Speaking of Kythera, the engimatic Kythera “maneuvers” map / layer added a few builds back (GameData.pak\GameLayers\Kythera) has now been expanded quite a bit with a whole bunch of new maneuver nodes, navsplines, and other things. It might’ve been neat to use the classic override trick to make the game load this layer and see if it works correctly now that we have working AI support and stuff, but sadly the new hard-requirement for signed, unedited PAK files makes this impossible to explore in more detail right now.
  • The default key mappings in GameData.pak\Libs\Config\Profiles\defaultProfile.xml have obviously been completely overhauled now that we actually have functioning, fully simulated ships to fly. The additions are so extensive that it’s not practical to go into detail here; one neat trick I’ll call out though is that if you hit the Numpad Minus key while flying, you can pull up a special debug menu with an auxiliary interface for setting weapon groupings and handling power management. The developers have confirmed this shouldn’t be present and will probably disappear soon – the internal nature of it also seems to be reflected by it’s simple label in the action mapping sections of the file: action name=”v_hud_minus” (as opposed to things like “v_radar_toggle_onoff” or “vshield_boost_recharge” seen in other parts).

(Update!) Brandon Evans (a UI programmer at CIG) was kind enough to clarify on this bit: “The v_hud_minus thing isn’t actually because it’s a debug key – the entire numpad is like that, because the engine doesn’t actually handle those inputs – it passes them to flash, which decides what that key combination does depending on the state of the HUD”

This folder also of course contains the various other joystick layouts, including the increasingly-popular “layout_joystick_spacesim.xml” profile which swaps the X and “rotz” axis’ around so the game is actually playable for those of us who don’t like having to twist their x52’s to perform a yaw maneuver (which is currently the default). Execute pp_RebindKeys Libs\Config\layout_joystick_spacesim.xml from the console to apply this config.

  • GameData.pak\Libs\DatabaseXML\auto\default.xml has a new addition in the form of an “asteroid hangar” section. As that hangar is allegedly nearing completion from the latest news, this is not surprising. I’m still unclear on the exact purpose of this file, but believe it’s been used for internal / press demos to quickly pull up a custom hangar layout with a bunch of pre-populated objects. Sadly I don’t think it’s possible to execute it with the build we have.
  • There’s a lot of cool new dialogue updates in GameData.pak\Libs\Dialogs\SpeakerNames\SpeakerNames.xml, mostly involving some very cool character names… all currently starring “Microsoft Anna” according to the TTS= field. Some of these names are changed from previous entries (i.e. “Npc_S42_Ernst_Bishop” just became “Bishop”) while others are all new… “Advocacy_Field_Office_Clerk”, “ArcCorp_Bar_Bartender”, “Lev_Cronenberg”, and even “Dumpers_Depot_Manager” (remember them?)! Definitely worth a read if you’re interested in an advance (if vague) look at what NPCs are going to be waiting for us in the game universe.
  • There’s also a ton of sample dialogue in GameData.pak\Libs\Dialogs\XML. A lot of these look like general NPC / wingman acks (i.e. “I have the core” or “I’ll cover you”), but some are a bit weirder… like “Shan, peeps. (Shiny, people)” or “Kuiza, man. Dez winn. (%$*! man. They’re winning)”.  A lot of these filenames (i.e. Dlg_SC_ac_bludgeon_player_order_return_to_base.xml or Dlg_SC_ac_bullseye_reaction_commiting_friendly_fire.xml) seem to match the NPC names referenced in the SpeakerNames.xml I just mentioned above, so I think we’re getting a surprisingly detailed look at what kind of dialogue your wingmen (or other NPC pilots) might have.

I think a lot of this stuff used to exist in English.pak\Dialog too – that folder is gone now and the contents largely moved into GameData.pak .

  • GameData.pak\Libs\MusicLogic has some files that show some interesting data on how the music logic in Arena Commander functions, for things like starting the match, winning a battle, dying, and so forth.
  • GameData.pak\Prefabs is absolutely worth a look. It contains a lot of cool layout stuff relating to ships we haven’t even seen for ourselves in-engine yet, like the Javelin and redesigned Idris – particularly in this latest build (even Dumper’s Depot gets a cameo!). Here are a few snippets regarding things like crew stations and the like:
<Prefab Name="CrewStation_STANDARD" Id="{0BC3326B-BF40-4274-9057-4866A1EF6307}" Library="AEGS_Idris_Interiors" Footprint="2,2,2" Description="" Category="">
   <Object Type="Brush" Layer="Props" Id="{D4DF7732-3EBB-43E2-A778-A2739F402272}" Name="idris_engineering_panel_b-019" Pos="0.46679688,0.95800781,0" FloorNumber="-1" Rotate="1,0,0,0" ColorRGB="16777215" MatLayersMask="0" Prefab="Objects/brush/ships/AEGS_Idris/props/engineering_panels/idris_engineering_panel_b.cgf" OutdoorOnly="0" CastShadowMaps="1" RainOccluder="1" SupportSecondVisarea="0" Hideable="0" LodRatio="100" ViewDistRatio="100" MinViewDistance="0" NotTriangulate="0" AIRadius="-1" NoStaticDecals="0" NoAmnbShadowCaster="0" RecvWind="0" Occluder="0" DrawLast="0" ShadowLodBias="0" RndFlags="1610612744">
<Prefab Name="CrewStation_ENGINEER" Id="{DABA6F77-7722-4EDE-BBB2-398217567713}" Library="AEGS_Idris_Interiors" Footprint="2,2,2" Description="" Category="">
 <Prefab Name="Javelin.t2.hall.CapitalShipInterior_AEGS_t2_MainHall_Straight_4m" Id="{1D730E3D-0374-4FA8-BD94-5B5D2C9EB285}" Library="AEGS_Javelin_Interiors" Footprint="4,8,4" Description="" Category="">
   <Object Type="Brush" Layer="AEGS_Javelin" Id="{CA6180DB-4DF1-480B-AAC0-EDC43237360B}" Name="AEGS_Tier2_Javelin_Corridor_Main_4x8x4-001" Pos="0,0,0" FloorNumber="-1" Rotate="1,0,0,0" ColorRGB="16777215" MatLayersMask="0" Prefab="Objects/Spaceships/Ships/AEGS/Javelin/Interiors/t2/AEGS_Tier2_Javelin_Corridor_Main_4x8x4.cgf" OutdoorOnly="0" CastShadowMaps="1" RainOccluder="1" SupportSecondVisarea="0" Hideable="0" LodRatio="100" ViewDistRatio="100" MinViewDistance="0" NotTriangulate="0" AIRadius="-1" NoStaticDecals="0" NoAmnbShadowCaster="0" RecvWind="0" Occluder="0" DrawLast="0" ShadowLodBias="0" RndFlags="1610612744">
<Object Type="Brush" Layer="dumper_t2_walls" Id="{B46B78C8-817F-4DBC-8882-13431DE56C94}" Name="dumper_int_wall_1x8x1_btrim_a_reg-010" Pos="0,0,1" FloorNumber="-1" Rotate="1,0,0,0" ColorRGB="16777215" Material="Objects/brush/planet/uee/kits/interior_dumpers_depot/interior_dumper_master_mat" MatLayersMask="0" Prefab="Objects/brush/planet/uee/kits/interior_dumpers_depot/wall/dumper_int_wall_1x8x1_btrim_a_reg.cgf" OutdoorOnly="0" CastShadowMaps="1" RainOccluder="1" SupportSecondVisarea="0" Hideable="0" LodRatio="100" ViewDistRatio="100" MinViewDistance="0" NotTriangulate="0" AIRadius="-1" NoStaticDecals="0" NoAmnbShadowCaster="0" RecvWind="0" Occluder="0" DrawLast="0" ShadowLodBias="0" RndFlags="1610612744">



  • (Update!) There’s an interesting new bit of kit for the Hornet located in ObjectsShipsANVL.pak\Objects\Spaceships\Ships\ANVL\Hornet\Armor ! This stuff is as of yet unused, but seems to provide some cool-looking hexagonal layering on designed to fit onto sections of the Hornet model. I could go to the trouble of slapping it onto a Hornet model just to see how it looks, but why bother when AnythingFPS (the one who also pointed this out to me) did such a better job of showing it off?

There’s also a related comment by CIG that’s a little curious in nature, as it states “The armor you see in that video is fan created (and doesn’t actually exist in game yet), however it was based off a concept done by us. “. This isn’t completely true as we can see the assets are included in the Arena Commander files, but he does also go on to say that “the armor in the concept was likely (but I’m not entirely sure) showing the Void Armor which would be used for diffusing scans.” Maybe there’s some crossed wires or confusion somewhere, but it’s a bit interesting to read.

  • ObjectsBrush.pak\Objects\brush\dummy.txt is now the only file in ObjectsBrush.pak, and simply has a message saying “Dummy text file so the ObjectsBrush.pak and ObjectsBrushSpace.pak asset builds won’t throw an error for being empty right now. Once those paks actually have something in them this can be removed.”
  • There have been a number of additions to (what looks like) the asteroid hangar assets in ObjectsBrushPlanet.pak\Objects\brush\planet\uee\kits\hangar_asteroid_pirate_kit_master – for example, here’s a glance at \Anims\hangar_asteroid_pirate_stabilizer_01.cga: https://www.youtube.com/watch?v=PVsqXHz9zFY
  • As mentioned earlier, there’s also a new modeled-but-untextured object called “conquest_tower” in ObjectsBrushSpace.pak\Objects\brush\space\uee\Asteroid_infrastructures\conquest_tower . It’s animated, but I’m not completely clear on it’s purpose; the name seems to imply a gameplay mode correlation, but to my knowledge (correct me if I’m wrong) there’s no formally-announced announced “conquest” gameplay mode – though I have seen references to it here and here.

“Conquest” may relate to the eventual boarding-action version of Arena Commander, but this doesn’t explain what this tower object would be used for. I’d almost wonder if it’s more for a kind of “control the hardpoint” kind of gameplay.

  • There’s also a bunch of other new / changed objects in the ObjectsBrushPlanet and ObjectsBrushSpace.pak files relating to all sorts of things, like DFM content, planetary objects (there are references to numerous planets like “hadur”, “leir”, “nemo”, “rihlah”, “pyro” with some basic material files included), the asteroid hangar interiors, and so on.  There’s a LOT of evidence of the ongoing interior development of planets and stations in these folders – many things which have never before been seen in the game beyond concept art and some brief dev videos- but are far too numerous for me to pick apart here. If you need an excuse to copy over some CGFs and dust off your Cryengine editor however, this is it!
  • In UI.pak\UI , there are a bunch of new swfs for interface components not available in the game yet. For example, here’s the WIP asset for what looks like the scoreboard / rankings display may look like for team battles: http://i.imgur.com/LxBPc6U.png

Here’s what the Mobiglass “homescreen” is looking like right now (obviously still preliminary, and looking very basic without seeing all the supporting shader / texture effects this will be wrapped around in-engine): http://i.imgur.com/kpAwFTy.png



With each new build of the hangar module, Parias likes to run diffs against the varying versions, and make notes just out of nerdy curiosity for what’s actually being changed under the hood —  in particular things which might not have been directly mentioned in the patch notes.

99% of this document will be personal conjecture – Parias may (and likely will) be wrong on the interpretation of a lot of things.


Trackback from your site.

Comments (1)

Leave a comment