Under the Bonnet | Patch 9

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

With each new build of the hangar module, I’ve been keeping my own dumps of the game folders, running diffs against the varying versions, and making internal notes just out of nerdy curiosity for what’s actually being changed under the hood. I figured I’d start sharing some of these results, as others might find this interesting too. I plan to make this a recurring thing with each new patch until it becomes impractical.

This won’t cover each and every single byte difference between builds – just major points of interest that I find in doing diff-comparisons; in particular things which might not have been directly mentioned in the patch notes. There’s also a LOT to manually go through between builds, so it’s likely that I’ll miss some things.

This will generally be a bit of a disorganized mess as it’s more or less a brain dump as I go, but I’ll try to keep things as neat as I can. Bear in mind as well that 99% of this document will be my own conjecture – I may (and likely will) be wrong about my interpretation of a lot of things.


  • CURRENT BUILD: 12-12-2013 – Build 15
  • PREVIOUS BUILD: 10-22-2013 – Build 12

(As per \CitizenClient\Client_Release.id)

LOTS of exciting stuff this time under the hood – we’re seeing original code for AI-driven ships (not just leftover Cryengine code) which likely relates to the DFM, initial working models for HUD and UI objects, an initial implementation of facial animations libraries for the player character (LiveDriver-related!) , updates to the weapon mount for the upcoming firing range, and so much more!

Read on for my findings so far.

Patch Breakdown


  • All-new Mobi-glass animations have been added to the Male character skeleton! (Animations.pak\Animations\Characters\Human\Male\Controls\3P). I.e. “mobiglass_crouch_idle_1.caf”, etc. I’ll need to throw these into the Cryengine editor later on to see what they look like. I haven’t seen a clear sign of actual mobiglass models yet, but it’s clear they’re starting to add these resources in behind the scenes.
  • A facial animation expression library has also been added (\Animations.pak\Animations\Characters\Human\Male\LiveDriver\expressions.fxl). This is awesome because it might mean we no longer have to use generic models from other games (i.e. Psycho from Crysis 3) for machinima movies if we want characters with lip-synced mouths and expressions. Another thing to try playing with.

From the naming, this also sounds like their initial implementation of the “LiveDriver” functions (wasn’t that for reading facial expressions from a real camera and translating it to your character in-game?) which I understand from some recent developer notes they have already been testing internally.

  • Animations have been added to the “firing mount” object (i.e. \Data\Animations.pak\Animations\Characters\Human\Male\Misc\3P\test_firingmount_lift.caf, \Animations.pak\Animations\Vehicles\Weapon_Mount\chair_deploy.caf), likely in reference to the upcoming weapons test platform for the firing range. Note this object was already added to the hangar module way back in the October build hidden in the game files, but in a somewhat different state and did not actually fire.
  • Animations for something called “lockers” has been added (\Animations.pak\Animations\Objects\lockers – i.e. footlocker_01_idle.caf, open / close anims).
  • It looks like they’ve done some clean-up and removed / shifted around a lot of the generic SDK animations that had been included with the hangar module previously (i.e. guy walking with rifle, death animations, generic solider idle anims and such).


  • Initial hints of AI-controlled ships! A couple of new entities have been added: \GameData.pak\Entities\AISpawnPoint.ent and AISpawnBundle.ent. Both point to corresponding LUA files in \Scripts.pak\Entities\AI, which contains some interesting tidbits. Here’s an example (note: Chad Zamzow is listed as working on Star Citizen (http://www.linkedin.com/pub/chad-zamzow/49/604/8a9), so this isn’t leftover generic Cryengine code, this is new):
--[[ - @file AISpawnBundle.lua - @brief Implementation of the AISpawnBundle entity - @author Chad Zamzow --]]
--[[ - @class AISpawnBundle - @brief An entity that bundles together AISpawnPoints for use through a - single Flow Graph node --]]
        AIWavesXML =
            sFilename   = "",   -- The name of the XML file to load AI wave information from
            nWaveID     = 0,    -- The ID of the wave to spawn
        SpawningParameters =
            esAIProfile = "",   -- (OPTIONAL) The name of the profile to set on all spawned AI
            sArchetype  = "",   -- (OPTIONAL) The full name of the archetype for linked AISpawnPoints to spawn an AI from
            sName       = "",   -- (OPTIONAL) The name to give to all spawned AI
            nGroupSize  = 0,    -- The number of ships to spawn whenever the Spawn input event occurs
                                    -- NOTE: values <= 0 or >= the number of links will just spawn from all linked AISpawnPoints

Possible advancement towards AI combat in the DFM? There’s a lot of other interesting bits of info in here, it’s worth reading through for the inclined.

  • I also strongly recommend checking out \GameData.pak\Libs\EntityArchetypes\AISpaceShips.xml:
    <EntityPrototypeLibrary Name="AISpaceShips" SandboxVersion=""> <EntityPrototype Name="Team_A.ANVL_Hornet_F7C" Id="{965FEEB4-F727-41E5-9E76-C63B3382C472}" Library="AISpaceShips" Class="ANVL_Hornet" Description=""> <Properties accuracy="1" esAIPilotEntity="UEE_Pilot" attackrange="320" bAutoGenAIHidePts="0" bCanUsePrimaryWeapon="1" bCanUseSecondaryWeapon="0" aicharacter_character="StarFighter" commrange="100" bDisableEngine="0" esFaction="Players" bFactionHostility="1" followDistance="5" bFrozen="0" FrozenModel="" bHeavyObject="0" bInteractLargeObject="0" sItemLoadout="Scripts/Vehicles/Default_Loadout_ANVL_Hornet_F7C.xml" leaderName="" material="" Modification="F7C" esNavigationType="VehicleMedium" Paint="" bProvideAICover="1" soclasses_SmartObjectClass="" bSyncPhysics="1" teamName=""> <AIPressureAOE bFriendlyEnable="0" friendlyPressureDec="0" friendlyRadius="0" bHostileEnable="0" hostilePressureInc="0" hostileRadius="0"/> <Perception camoScale="1" FOVPrimary="-1" FOVSecondary="-1" persistence="60" sightrange="200" sightrangeVehicle="-1" stanceScale="1" velBase="1" velScale="0.5"/> (Etc...)


  • A new control has been added to the default profile key bindings list (\GameData.pak\Libs\Config\defaultProfile.xml):
    <action name="ai_DebugCenterViewAgent" onPress="1" noModifiers="1" keyboard="np_divide" />
  • \Engine.pak\Config\multiplayer.cfg has the following new lines:
    -- CIG BEGIN - cbrungardt @ IllFonic, added this for multiplayer AI
    ai_SystemUpdate = 1
    ai_TargetTracking = 2
    -- CIG END
  • Further development in various internal shaders (\Shaders.pak\Shaders\HWScripts\CryFX\ – i.e. Hud3D.cfx, Shield_UVWVolume.cfx, etc). Nothing too specific worth noting here other than development and fine-tuning appears to be ongoing as assets are added (mostly because I’m clueless when it comes to shader code). It’s a bit interesting because there have rarely been changes to the Engine / Shaders PAK files so far in previous patches.
  • A number of changes to \Scripts.pak\Scripts\Entities\Vehicles\Implementations (which covers some basic ship property / loadout information): “AD_Avenger.lua” has become “AEGS_Avenger.lua, and “Drake_Cutlass.lua” is now “DRAK_Cutlass.lua”… “Greycat_PTV.lua” also got changed (interestingly) to “GRIN_PTV.lua”. “Vanduul_Scythe.lua” is now “VNCL_Scythe.lua”.

More consolidation… it looks like all of the LUAs for the 300i and Aurora variants (i.e. OJ_315p.lua) have been annexed – everything is under “ORIG_300i.lua” and “RSI_Aurora.lua” now.

  • A bit funny – RSI_Merlin.lua (P52 Merlin) finally got it’s loadout line corrected. Instead of sItemLoadout = “Scripts/Vehicles/DefaultOriginJumpworks300i.xml”, it now correctly points to “Scripts/Vehicles/Default_Loadout_RSI_P52_Merlin.xml”.
  • Speaking of the Merlin, various implementation XML files have been edited. The Constellation’s XML still considers the Merlin to be a placeholder / dummy object for now:
                    <!-- FIX ME! Needs to be an attachment as the vehicle entity -->
                    <!-- Dummy Merlin -->
                    <Part name="hangar_merlin_helper" component="turret" mass="0">
                        <AnimatedJoint filename="Objects/Spaceships/Ships/Roberts_Space_Industries/P52_Merlin/RSI_P52_Merlin.cga" />
                    <!-- /Dummy Merlin -->
                    <!-- /FIX ME! -->

Seat actions have also been added to the Constellation for things like “Kitchen Table”, “BunkBedLowerLeft/LowerRight”, etc, which means these might be usable in the near future if they aren’t already (haven’t had a chance to play the new build yet).


  • In the last build, the developers had started moving all of the ship files into a centralized location in ObjectsSpaceships.pak (i.e. they removed Objects300i.pak, ObjectsAurora.pak, etc and put them all into this one .pak file instead). This move has now been reverted, and we’re back to having external .pak files for each ship again. Perfectly understandable as I imagine they’re still figuring out their long-term resource model… but a bit annoying because it makes it harder to properly diff things =)
  • It looks like a bunch of new models for UI objects have been added to \Objects.pak\Objects\UI – i.e. Chat.cgf, Equipped.cgf, Waypoint.cgf, Target_Hull_Breachable.cgf,Target_Mag_Size.cgf, Test_HUD_GFX.mtl, etc… need to plug these into the Cryengine editor afterwards to check them all out. We might already have access to the initial versions of the hud graphics shown off during the livestream. I can’t wait until tonight when I have access to my gaming system to test all of these out.
  • Models have been added to \ObjectsWeapons.pak\Objects\Weapons which look like the first pass at hand-held items… i.e. “Burst_Cannon.cdf”, “Combustion_Pistol.cdf”, “Laser_Pistol.cdf”, “Microwave_Cannon.cdf”. Should pop these open in the Cryengine editor to see how complete they are (and how many might still be generic carry-overs from the base SDK content, as it seems like the folder structure here has now changed dramatically).

That’s about it for now as I’m short on time… taking a quick scroll through the list, I can see even more interesting new stuff (references to new Nebula entities, new textures for asteroids, flares, particles, etc, and a bunch of other textures like monorailprobe01_tickets_001_cm.dds, new cubemaps from planet_uee_terra_prime_landingzone, etc) that I haven’t had time to thoroughly explore yet. I’ll update this post if I see anything else worth noting.



(There are a few other “transition” animations too of course, nothing too crazy though)

Trackback from your site.

Comments (2)

Leave a comment