Portal 2 Sixense MotionPack DLC

The Portal 2 Sixense MotionPack DLC (for PC), or Portal 2 In Motion (for PS3), is exclusive Portal 2 downloadable content available to owners of the Razer Hydra or the PlayStation Move, created by Sixense. The content includes both singleplayer and cooperative levels –created by Danny Woodall and Chip Sbrogna in cooperation with Valve– as well as mechanics that make use of the controller's motion detection capabilities. Sixense was able to accomplish this through early access to Portal 2's source code (before Portal 2's official release date). The most recent public build of the Portal 2 Sixense MotionPack DLC is most similar to the base game's build in 2014.

Razer has discontinued the Razer Hydra via their own and Steam's online store due to Sixense's unreleased Wireless STEM System.

Featured Mechanics and Their Functions
Freeaim:


 * This mechanic allows the player to control the Portal Gun viewmodel and crosshair on the screen by moving the right-hand controller. This method of controlling the player in the game helps create a more realistic experience for the audience since the player can act intuitively. The MotionPack defaults this as the standard means of looking around, however, the player can also choose to use both joysticks on the Razer Hydra instead, similar to the standard controller option.

One-To-One:


 * This mechanic allows the player to extend any grabbable object away from themselves. It is performed by simply moving the right-hand controller away from yourself. While in this state, camera tracking is disabled and the player can freely move and rotate the object at any angle by orienting the right-hand controller. Sixense has integrated this mechanic in most of their official levels as a requirement to proceed to the next part of a chamber, whether it be to place a cube far away from you or to redirect lasers precisely.

Ratcheting:


 * This minor mechanic is only active while in One-To-One mode. Its function is to stop updating the orientation of the right-hand controller so that a player can reposition their hand to a more comfortable location. Through this, the player can rotate objects in any orientation without strain. Ratcheting does not stop updating the positional data of the controller, however. This mechanic is most notably used when redirecting lasers or Scaling.

Portal Surfing:


 * This mechanic allows the player to reposition and rotate existing portals, on the condition that they can shoot that portal. It is performed by aiming at the desired portal and holding down the trigger to fire that specific portal. The player can then control the portal and rotate it by repositioning the right-hand controller respectively.

Scaling:


 * This mechanic is only functional with the Scalable Cube and the Turret. While the player is in One-To-One mode holding a Scalable Cube, they can then stretch out the cube, not only increasing its size but also its mass. The player can take advantage of this by building bridges to cross large distances, crush Turrets, and press more than one floor-button at the same time. As for the Turrets, they self-destruct about 1 second after being scaled. Interestingly, the collision model of the Turrets does not update while being scaled in that small time frame.
 * In the MotionPack, the player uses the left-hand controller to control the size of the cube. Sixense had to change this functionality to the right-hand controller in the Sixense In Motion DLC since the PlayStation Move Navigation Controller does not have motion-sensing capabilities.

Sixense's Entities
Sixense created and extensively made use of five entities that are not available in stock Portal 2. These are defined in portal2_sixense.fgd and are available for mappers to use.


 * prop_scaled_cube
 * sixense_info_placement_helper
 * sixense_logic_playmovie_hint
 * sixense_logic_relay
 * trigger_player_fall_aim

There is one entity by the name of trigger_portal_button_aim made by Sixense that is not defined in the fgd. This entity is spawned and parsed internally at runtime, similar to Valve's trigger_portal_button entity. This entity is what Sixense uses to allow prop_floor_button and prop_under_floor_button to have cubes hone on top of them and change skin color.

Interesting Behaviors and Other Notes

 * Typing "-nosixense" (without quotes) in the launch options of Portal 2 on Steam will launch the game without reading the Sixense MotionPack DLC.
 * The Scalable Cube is programmed to not lose its collision temporarily when a player holds it.
 * Scaling was meant to be used while in One-To-One mode, however, it can still be activated even when the player has not initiated this state.
 * The Scalable Cube was only featured in the singleplayer campaign but not in the cooperative one. If the cube is spawned in a MotionPack CO-OP game via the console, the cube will still remain fully functional for both clients of the server. However, the button to activate Scaling mode has been remapped in CO-OP mode as 'quickping'. This most likely means that Sixense's plan to not to add a Scaling puzzle in their official cooperative campaign during development was intentional.
 * Inside the pak01_dir.vpk file of the Sixense MotionPack, there is an unused VGUI menu for doing Challenge Mode with both the singleplayer and multiplayer Sixense maps. This was not integrated for reasons unknown, and parts of the menu are broken to a hardcoded extent. If you were to manually load a Sixense Challenge Mode game, the session will disconnect you since Steam does not recognize the map on its official leaderboards.
 * Inside the pak01_dir.vpk file of the Sixense MotionPack, there is a hidden skin of the Scalable Cube, in which the cube glows blue when 'inactive'. Only the 'active' and 'off' skins are visible in both the MotionPack and In Motion DLC.
 * When attempting to play community test chambers, the game will crash upon loading workshop thumbnails, whether it be singleplayer or multiplayer maps. Two solutions to this problem include unsubscribing to all custom workshop maps in Portal 2, thus giving you access to the Quick Play option, or by running the game without the DLC. Alternatively, you can patch client_sixense.dll's byte sequences of (8B C8 E8 E7 2C 0B 00 8B 4D FC 85 C9 74) with (8B C8 E8 E7 2C 0B 00 8B 4D FC 85 C9 EB) on the most recent build of the MotionPack to patch the loading of workshop thumbnails.
 * When playing workshop maps with custom sound scripts, Sixense sounds are not precached, giving the player varied pitches of the error.wav sound file, when using the Sixense features. The best solution for this is to stuff the contents of sixense_sounds.txt into an existing file declared in game_sounds_manifest.txt, ensuring that the Sixense sounds are parsed alongside the main game's content.
 * When playing custom maps in the workshop, autosave triggers can sometimes cause the game to crash.
 * Sound scripts are not able to be overridden in any maps through the maps/ _level_sounds.txt method, as the Sixense MotionPack does not look for the file.
 * An exploit with Portal Surfing can be performed where the player can keep a portal while passing through a Material Emancipation Grill. It can be done by pointing at a portal surface and activating the Portal Surfing mechanic while walking through the Material Emancipation Grill. The initial portal fizzles, but once the Portal Surfing button is released, the portal revives.