<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=152.3.76.154</id>
	<title>FreeSpace Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=152.3.76.154"/>
	<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php/Special:Contributions/152.3.76.154"/>
	<updated>2026-11-15T10:50:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Command-Line_Reference&amp;diff=759</id>
		<title>Command-Line Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Command-Line_Reference&amp;diff=759"/>
		<updated>2005-11-14T08:55:30Z</updated>

		<summary type="html">&lt;p&gt;152.3.76.154: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Launcher Flags==&lt;br /&gt;
The following command-line options can be chosen from the launcher.  &lt;br /&gt;
===Graphics===&lt;br /&gt;
====-spec====&lt;br /&gt;
Enables specular mapping.  Only polygons mapped with textures for which a shinemap exists will recieve specular lighting.  Specular maps are specified with the base map name plus &amp;quot;-shine&amp;quot; (i.e. TCov3A-shine.pcx).&lt;br /&gt;
====-glow====&lt;br /&gt;
Enables glowmapping.  Only polygons mapped with textures for which a glowmap exists will be glowmapped.  Glow maps are specified with the base map name plus &amp;quot;-shine&amp;quot; (i.e. TCov4A-glow.pcx)&lt;br /&gt;
====-jpgtga====&lt;br /&gt;
Enables the use of TGA and JPG file formats for image files.  If a ship is showing up partially invisible, select this option.&lt;br /&gt;
====-pcx32====&lt;br /&gt;
&amp;lt;color = &amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;WARNING - HIGH MEMORY USAGE&#039;&#039;&#039;&amp;lt;/color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enables PCX files to be loaded into 32-bit memory.  This will not imporove the rendering of any ships in-game, and is usually more of a burden on performance than is worthwhile.  Use at your own risk.&lt;br /&gt;
====-cell====&lt;br /&gt;
Enables cell shading.  This will make graphics appear more &amp;quot;cartoonish&amp;quot;.  For use with media in mv_cell.vp.  Not considered a standard enhancement.&lt;br /&gt;
====-mipmap====&lt;br /&gt;
Enables mipmaping.&lt;br /&gt;
====-nomotiondebris====&lt;br /&gt;
Disables motion debris.&lt;br /&gt;
====-2d_poof====&lt;br /&gt;
Applies nebula poofs in 2d, effectively preventing them from forming intersections with ships.&lt;br /&gt;
====-noscalevid====&lt;br /&gt;
Disables scaling of video clips.&lt;br /&gt;
====-cache_bitmaps====&lt;br /&gt;
Caches bitmaps between missions, which will ideally reduce the load-time from one mission to another.&lt;br /&gt;
====-img2dds====&lt;br /&gt;
Converts all images to DDS (compressed) format.  Decreases memory usage but potentially reduces image quality.&lt;br /&gt;
====-no_vsync====&lt;br /&gt;
Disables vertical sync.&lt;br /&gt;
===HUD===&lt;br /&gt;
====-dualscanlines====&lt;br /&gt;
Adds a second pair of scanning lines to the target window when scanning an object.&lt;br /&gt;
====-targetinfo====&lt;br /&gt;
Displays target info, such as name and class, beside the targeted object.&lt;br /&gt;
====-orbradar====&lt;br /&gt;
Enables 3D radar (the Orb).  3D radar will replace the standard 2D version.&lt;br /&gt;
====-ballistic_gauge====&lt;br /&gt;
Adds an ammo gauge to the HUD when armed with a ballistic weapon.&lt;br /&gt;
===Gameplay===&lt;br /&gt;
====-nobeampierce====&lt;br /&gt;
Causes beams to hit (and damage) shields before they impact a ship&#039;s hull.  This is a global flag, but this behavior can also be modified in weapons.tbl.&lt;br /&gt;
====-smart_shields====&lt;br /&gt;
Enables &amp;quot;smart&amp;quot; shield recharging.  Shield recharge rate is distributed across all damaged quadrants only, so each quadrant will recharge faster if not all are damaged.&lt;br /&gt;
====-ship_choice_3d====&lt;br /&gt;
Use ship and weapon models in ship selection and weapon loadout.  Completely disables the standard ANI interface on those screens.&lt;br /&gt;
====-3dwarp====&lt;br /&gt;
Use full geometry for the subspace warp effect.&lt;br /&gt;
====-warp_flash====&lt;br /&gt;
Enable a flash at warp in and warp out.&lt;br /&gt;
====-UseNewAI====&lt;br /&gt;
Tells the game to use new AI routines.  This argument alters mission balance and is not considered a standard feature.&lt;br /&gt;
====-tbp&lt;br /&gt;
Enable feature set for The Babylon Project&lt;br /&gt;
====-wcsaga====&lt;br /&gt;
Enable feature set for The Wing Commander Saga&lt;br /&gt;
===Audio===&lt;br /&gt;
====-snd_preload====&lt;br /&gt;
Preload mission sounds.  Useful in preventing game stuttering when sounds are played for the first time.&lt;br /&gt;
====-nosound====&lt;br /&gt;
Disables all sounds.&lt;br /&gt;
====-nomusic====&lt;br /&gt;
Disables music only.&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
====-standalone====&lt;br /&gt;
Creates a standalone server.&lt;br /&gt;
====-startgame====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-closed====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-restricted====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-multilog====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-clientdamage====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-mpnoreturn====&lt;br /&gt;
Disables return to the flight deck screen after a mission completes.&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
====-fixbugs====&lt;br /&gt;
&amp;lt;color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;Obsolete Argument&#039;&#039;&#039;&amp;lt;/color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Originally used to disable certain crashing behavior as a stop-gap measure.  This feature is not available in current builds.&lt;br /&gt;
====-nocrash====&lt;br /&gt;
&amp;lt;color=&amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;Obsolete Argument&#039;&#039;&#039;&amp;lt;/color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Originally used to disable certain crashing behavior as a stop-gap measure.  This feature is not available in current builds.&lt;br /&gt;
====-oldfire====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-nohtl====&lt;br /&gt;
&amp;lt;color = &amp;quot;red&amp;quot;&amp;gt;&#039;&#039;&#039;WARNING - VERY SLOW&#039;&#039;&#039;&amp;lt;/color&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reverts to software rendering mode.  Does this work any more?&lt;br /&gt;
====-no_set_gamma====&lt;br /&gt;
Disables the gamma settings in the options screen.&lt;br /&gt;
====-nomovies====&lt;br /&gt;
Disables all video playback.&lt;br /&gt;
====-noparseerrors====&lt;br /&gt;
Disables some parsing warnings and makes other parse errors non-fatal.  Do not rely on this when creating new tables, the errors are there for a reason.&lt;br /&gt;
====-safeloading====&lt;br /&gt;
Loads missions the old way.  Typically safer, but slower.&lt;br /&gt;
====-query_speech====&lt;br /&gt;
Determines if the current build includes text-to-speech.&lt;br /&gt;
====-d3d_bad_tsys====&lt;br /&gt;
Enable inefficient texture system.&lt;br /&gt;
====-novbo====&lt;br /&gt;
Disables OpenGL VBO.&lt;br /&gt;
====-noibx====&lt;br /&gt;
Disables IBX caching of model geometry data.  This will dramatically increase load times, but will help troubleshoot a model if one is working incorrectly.&lt;br /&gt;
====-loadallweps====&lt;br /&gt;
Load all weapons, even those not used.&lt;br /&gt;
===Experimental===&lt;br /&gt;
====-env====&lt;br /&gt;
Enables environment mapping.  Direct3D only.  Environment mapping intensity will be determined from the intensity of specular maps.&lt;br /&gt;
====-alpha_env====&lt;br /&gt;
Enables alpha environment mapping.  Direct3D only.  Environment mapping intensity will be determined from the alpha channel of specular maps.&lt;br /&gt;
====-decals====&lt;br /&gt;
Enables damage decals.&lt;br /&gt;
====-ingame_join====&lt;br /&gt;
Enables ingame joining in multiplayer.  FIXME: Host option?&lt;br /&gt;
====-tga16====&lt;br /&gt;
Converts all TGA images to 16-bits.  Reduces memory footprint at the expense of image quality.&lt;br /&gt;
===Development Tools===&lt;br /&gt;
====-fps====&lt;br /&gt;
Displays current frames per second.&lt;br /&gt;
====-pos====&lt;br /&gt;
Displays current position coordinates of camera.&lt;br /&gt;
====-window====&lt;br /&gt;
Runs the game in a window.  No check to make sure that resolution is no higher than your desktop resolution, so be careful.&lt;br /&gt;
====-timerbar====&lt;br /&gt;
Displays a timing bar across the top of the screen.  Timebar format varies by build.&lt;br /&gt;
====-stats====&lt;br /&gt;
Shows statistics.&lt;br /&gt;
====-coords====&lt;br /&gt;
Shows coordinates of the mouse cursor.&lt;br /&gt;
====-show_mem_usage====&lt;br /&gt;
Shows memory usage.&lt;br /&gt;
====-pofspew====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-tablecrcs====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-missioncrcs====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-dis_collisions====&lt;br /&gt;
Disables all collisions.&lt;br /&gt;
====-dis_weapons====&lt;br /&gt;
Disables weapons rendering.&lt;br /&gt;
====-output_sexps====&lt;br /&gt;
Outputs SEXPs to sexps.html.&lt;br /&gt;
====-output_scripting====&lt;br /&gt;
Outputs scripting to scripting.html.&lt;br /&gt;
====-nograb====&lt;br /&gt;
Unix only.  Disables focus grabbing in a window.&lt;br /&gt;
==Other==&lt;br /&gt;
The following options are not available as checkboxes in the launcher.  Many require parameters, which follow the flag seperated by a space.  The prototype for use in this case is &amp;quot;-option argument&amp;quot;&lt;br /&gt;
===Graphics===&lt;br /&gt;
====-ambient_factor====&lt;br /&gt;
Reduces the ambient lighting levels.&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal.  The range is specified as a percent, so 0 is no ambient lighting, 100 is default levels.&lt;br /&gt;
====-spec_exp====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal.&lt;br /&gt;
====-spec_point====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal.&lt;br /&gt;
====-spec_static====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal.&lt;br /&gt;
====&amp;quot;-spec_tube====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal.&lt;br /&gt;
====-clipdist====&lt;br /&gt;
Changes the distance from the viewpoint for the near-clipping plane.&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal specifying the distance to the near-clipping plane.&lt;br /&gt;
===Gameplay===&lt;br /&gt;
====-mod====&lt;br /&gt;
Specifies a higher priority game directory.&lt;br /&gt;
&lt;br /&gt;
Takes one argument string, the name of the directory in which the target mod is contained.  Explicit use of this command line should be unnecessary as the launcher has MOD options, though multiple mods are supported and do require manual entry.&lt;br /&gt;
&lt;br /&gt;
Data precidence with -mod is as follows (mod directory &amp;quot;moddir&amp;quot;)&lt;br /&gt;
#moddir/data/(appropriate directory)/&lt;br /&gt;
#moddir/data/&lt;br /&gt;
#moddir/&lt;br /&gt;
#Freespace2/data/(appropriate directory)&lt;br /&gt;
#Freespace2/data/&lt;br /&gt;
#Freespace2/&lt;br /&gt;
====-fov====&lt;br /&gt;
Specifies the Field of View for the player eyepoint.&lt;br /&gt;
&lt;br /&gt;
Takes one argument decimal specifying the angle of the viewing cone.  FIXME: Is this a solid angle, or a width?  Is it radians or degrees?  What is the valid range of inputs?&lt;br /&gt;
===Multiplayer===&lt;br /&gt;
====-gamename====&lt;br /&gt;
Specifies the name of the game to be created by a stand-alone server.&lt;br /&gt;
&lt;br /&gt;
Takes one argument string, the name to be assigned to the game being created.&lt;br /&gt;
====-password====&lt;br /&gt;
Specifies the password for a stand-alone server.&lt;br /&gt;
&lt;br /&gt;
Takes one argument string, the required password for the game being created.&lt;br /&gt;
====-allowabove====&lt;br /&gt;
Specifies a player&#039;s minimum rank for joining a game on a stand-alone server.&lt;br /&gt;
&lt;br /&gt;
Takes one argument integer, the points ranking above which a player must be to enter the game.&lt;br /&gt;
====-allowbelow====&lt;br /&gt;
Specifies a player&#039;s maximum rank for joining a game on a stand-alone server.&lt;br /&gt;
&lt;br /&gt;
Takes one argument integer, the points ranking below which a player must be to enter the game.&lt;br /&gt;
====-port====&lt;br /&gt;
Specifies the port on which to run for a stand-alone server.&lt;br /&gt;
&lt;br /&gt;
Takes one argument integer, the port which the game should use to connect.&lt;br /&gt;
====-connect====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-clientdamage====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
====-timeout====&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;What does this do?&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>152.3.76.154</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=994</id>
		<title>Styxx&#039;s POF Conversion plugin for 3D Studio Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=994"/>
		<updated>2005-11-13T20:22:54Z</updated>

		<summary type="html">&lt;p&gt;152.3.76.154: /* Things that still need improvement */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Still a Work In progress, Styxx has created a plugin for 3d Studio Max versions 4 through 6. Available here: [[http://www.hard-light.net/forums/index.php/topic,26260.0.html]]&lt;br /&gt;
&lt;br /&gt;
Despite being available for well over a year, not many people actually know how to make this plugin work correctly.  To that end, the following is intended to be a complete walkthrough of using the plugin to create a simple ship that makes use of all of the plugin&#039;s features.&lt;br /&gt;
&lt;br /&gt;
==A Comprehensive 3dsMax-&amp;gt;POF conversion tutorial==&lt;br /&gt;
Please note that this is not a tutorial for actually creating models.  There are plenty of Max tutorials out there that have far better information in them than what can be provided here.  It is, however, a guide to getting a model out of 3ds Max and into the Freespace 2 object format, POF, with minimal complications.&lt;br /&gt;
&lt;br /&gt;
This tutorial is for the current exporter version as of November 13, 2003.&lt;br /&gt;
&lt;br /&gt;
To start off, load all of the components of your model into a single Max scene file, and make sure that everything is unlinked so that you have no heiararchy to start off with.  If you have already set up a heirarchy, go back and unlink it, as having things grouped too early may cause trouble later.  From here, preparing the geometry for conversion involves a specific sequence of actions.&lt;br /&gt;
&lt;br /&gt;
===Geometry Preperation===&lt;br /&gt;
# Orient everything so that the front of the ship points towards the top of the screen in &amp;quot;top&amp;quot; view mode.&lt;br /&gt;
# One by one, select each subobject and assign it a conversion name.  Certain subobjects require specific naming conventions.  Level of detail (LOD) objects are named detail-0, detail-1, etc, where detail-0 is the parent geometry for LOD0, detail-1 is the parent for LOD1, and so on.  Do not skip levels.  Debris chunks are similarly named debris-0, debris-1, ... debris-n, where n is one less than the total number of debris chunks.  Again, do not skip numbering, as the converter parses these in order and will break if a number is missed.  For all other subsystems, any name is valid as long as Freespace can parse it from the POF chunk (so no Cylinder,3) but remember that what you name the subobject will be what it is called in the POF itself.  The shield mesh should be named &amp;quot;shield&amp;quot; (and similarly, any and all geometry not supposed to be a sheild should not be named &amp;quot;shield&amp;quot;).  Models should only have one shield.&amp;lt;br&amp;gt;As you pass through your list of objects assigning them names, also change them to editable poly mode, as the converter seems to work best with poly models.&amp;lt;br&amp;gt;The following is a personal convention for naming other objects:&lt;br /&gt;
#* Turrets are named turretXX, where XX is a number between 01 and 99 that corresponds to the turret number that this model represents.&lt;br /&gt;
#* Live debris, the ugly chunks of stuff left over when a turret is destroyed, are specified by naming the subobject for the destroyed component the same as the healthy version but with an added &amp;quot;-destroyed&amp;quot; on the end.&lt;br /&gt;
#* Geometry that&#039;s acting as a &amp;quot;standard&amp;quot; Freespace subsystem should be named according to the final subsystem name.  A physical Comm system would be &amp;quot;communications&amp;quot;, a physical hanger would be &amp;quot;fighterbay&amp;quot;, and so on.&lt;br /&gt;
#* Geometry representing non-standard displaying subsystems should be given the name you want them to appear with.&lt;br /&gt;
#* Hidden subobjects should be given a name that&#039;s meaningful to their function, such as hangerdoor for a hanger door.&lt;br /&gt;
#* No subobject should ever be converted with it&#039;s max-generated default name.&lt;br /&gt;
# Assign properties to physical subobjects.  Turrets are the most common case, but rotating subobjects like radar dishes and geometry representing a game subsystem like engines also need some extra data.  To assign text properties to an object, open the object properties dialogue (right-click on the object, and select properties) and go to the &amp;quot;User Defined&amp;quot; tab.  All objects that will be subsystems will need &amp;quot;$special=subsystem&amp;quot; added to their user-defined properties tabs.  Turrets (turret bases) should have &amp;quot;$fov=XXX&amp;quot; where XXX is the field of view for the turret (0-180) and &amp;quot;$name=gunturret&amp;quot; added at the end.  Other subsystems also need the $name=somename&amp;quot; field, but only turrets require &amp;quot;gunturret&amp;quot;.  Rotating objects need &amp;quot;$rotate=X&amp;quot; where X is rotation time in seconds.  Negative values indicate reverse rotation.&lt;br /&gt;
# Position the primary model where it is supposed to be in the converted file so that its pivot point is at the origin.  If you were converting the colossus, you would put the model in such a location that the middle of its rear engines, the point about which it rotates in-game, at (0,0,0).  When the ship is in the exact place you want it, select the Heirarchy tab, click &amp;quot;Affect Pivot Only&amp;quot; and make sure that the pivot is at location 0,0,0.  The location of the pivot on the root geometry for a level of detail MUST be at the origin, and this is important, so do not skip this step.&lt;br /&gt;
# Position all turrets and other subobjects where you want them in relation to the detail-X object that they will be attached to (this will almost always be detail-0), making sure to follow Freespace conventions in terms of turret orientation.  Topside multipart turrets should face forward with their barrels pointing straight up, multipart turrets on the bottom of the ship should face towards the ship&#039;s rear and their barrels should point straight down.  Default resting positions can be assigned in tables, so don&#039;t try to do anything fancy with these in the model.  Barrels (and any other object consisting of more than one connected element) should be one object, not several, so attach multiple barrels together with the attach tool.&lt;br /&gt;
# Glass, transparency-blended nameplates, and other transparent textures should come last in the model.  An easy way to accomplish this is to select all faces that use the material of your glass texture and detach them from the model, select the original model and re-attach them with the attach tool, select the faces near the edge (all faces in the model may be appropriate) and perform a vertex weld with a threshold of 0.01.  This will move the transparent faces to the end of the model&#039;s face list and will ensure proper rendering in-game.  If you have a single map that is partially transparent, do this on the specific faces that will end up transparent.  All transparent textures should be part of the root geometry (detail-0), without exception.  Faces behind transparent textures, such as a pilot, are more likely to work correctly when it is a subobject.&lt;br /&gt;
# All faces on all geometry &#039;&#039;&#039;except the sheild&#039;&#039;&#039; must have a texture assigned to them.  Missing this on as little as a single face will cause the plugin to crash.&lt;br /&gt;
&lt;br /&gt;
===Paths===&lt;br /&gt;
Create your paths using the create line tool and modify the editable splines to suit each path you want in the model.  Typically, the paths needed for a &amp;quot;complete&amp;quot; model are paths for each subsystem (main subsystems and turret subobjects) so it&#039;s usually a good idea to know in advance where things like the weapons subsystem will be defined.  All editable splines will become paths on conversion, but name them according to the Freespace convention anyway.  Subsystem paths should be named $pathXX (XX is a number) and fighterbay paths should be named $bayXX.  The only exception is the dock paths, which must have &amp;quot;dock&amp;quot; in the name, so $dockXX is preferable.  Paths are ALWAYS defined toward the ship, so the first point (where you first click when you start an editable spline with the create line tool) should be the most distant from the ship, and the last the closest.  Turret and subsystem paths are fine with just two points, fighterbay and dock paths typically have more (docks should have at least 4).  Dock paths should have $name=somename, where somename is the display name of the dock in FRED, added to their user-defined properties tab.&lt;br /&gt;
&lt;br /&gt;
===Reset X-Form===&lt;br /&gt;
This is the step that has given people the most trouble.  Now would be a good time to make a backup of the scene, so that you can restore to the un-rigged state if something goes wrong.&lt;br /&gt;
&lt;br /&gt;
Select all objects in the scene and open the Utilities tab.  Select the &amp;quot;Reset X-Form&amp;quot; tool in the rollout that appears.  Click the button of the same name to reset the transforms on all objects in the scene.  If something in the scene moves in a strange way when you perform this action, there was still heirarchy set up in the scene so load up the backup and unlink the object(s) that moved from whatever they are attached to with the schematic editor.  Then update the backup and try Reset X-form again, repeating as necessary.&lt;br /&gt;
&lt;br /&gt;
===Turrets===&lt;br /&gt;
Most turret issues have already been covered, but there is one additional step that must be done for each turret.  To define a turret&#039;s firing points, place point helper objects in the scene at the desired location for these points.  It&#039;s a good idea to name these points something meaningful (if it&#039;s a firepoint for turret03, perhaps call it &amp;quot;turret03fp&amp;quot;) so that you can figure out what goes where when rigging.  For now, just create the points, we&#039;ll put the turrets together shortly.&lt;br /&gt;
&lt;br /&gt;
===Rigging the Scene===&lt;br /&gt;
Now that all geometry and paths are set up properly, it&#039;s time to start putting things together.  Setting up the heirarchy is done through the Schematic view, so go ahead and open that up.  If you can&#039;t make out anything, try zooming in; Max does a particularly poor job of initially displaying a large number of objects in this view.&lt;br /&gt;
&lt;br /&gt;
Objects are connected in a heirarchy with the link tool.  To link one object to another, select the link tool, click on the to-be child object and drag to the intended parent.&lt;br /&gt;
&lt;br /&gt;
====Turrets, again====&lt;br /&gt;
It&#039;s usually a good idea to set up turret groups before linking the turret itself to its parent.&lt;br /&gt;
*The standard button turrets consist of the turret geometry, with the turret path and the firepoint(s) attached as children.&lt;br /&gt;
*Multipart turrets are assembled with the turret base as the parent and with the firepoint(s), path, and barrels all attached as children.&lt;br /&gt;
&lt;br /&gt;
====Heirarchy Matters====&lt;br /&gt;
The connection heirarchy is essential to making the game display your model correctly.  Child objects cannot be rendered if their parent is not rendered, so keep this in mind when setting up your heirarchy groupings.  Child objects also rotate with their parents, so if you are setting up an animated model you must keep this in mind.  In general, all subobjects that the game can access as a submodel get assigned as direct children of detail-0, unless it&#039;s some strange case involving rotation.  Turret barrels, however, are &#039;&#039;&#039;always&#039;&#039;&#039; children of their base, even if you don&#039;t intend to use autogeneration to set the turret up for you.&lt;br /&gt;
&lt;br /&gt;
====Putting it All Together====&lt;br /&gt;
#Using the link tool in heirarchy view, one by one attach each turret base, physical subsystem, and extra subobjects intended to be direct subobjects of detail-0 to their parent LOD.&lt;br /&gt;
#Additional LODs should be set up the same way, though in most cases all lower LODs will have no child objects.  LODs should themselves be at the top level of the scene, not attached to any other piece of geometry or helper.&lt;br /&gt;
#Debris pieces be at the scene root as well, not attached to any parent object.&lt;br /&gt;
#The shield mesh (if one is being used) should also be at the top level of the scene.&lt;br /&gt;
#All paths not assigned to a turret or subobject (subsystem paths for non-geometry subsystems, fighterbay paths, and dock paths) should be at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you attempt an export with only &amp;quot;detail levels&amp;quot;, &amp;quot;debris objects&amp;quot;, and &amp;quot;glows&amp;quot; checked.  &amp;quot;glows&amp;quot; will obviously not do anything yet, but for some reason the exporter seems to crash when it is not selected.  If If it converts and everything is in the right place afterwards, then the geometry is sound and you can be sure that later errors were not caused by geometry issues.  See the converting section for details and debugging info.&lt;br /&gt;
&lt;br /&gt;
===Of Points and Dummies===&lt;br /&gt;
If you prefer editing all subsystem, turret, gun/missile point, dockpoint, engine glow, and glowpoint data in PCS, you can safely skip this section.  However, as this is perhaps the greatest strength of the MAX converter, it is strongly recommended that you actually use these features.&lt;br /&gt;
&lt;br /&gt;
All of the resulting structures should be left at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
====Weapon Banks====&lt;br /&gt;
Two components are necessary for each gun and missile bank that you want to add.  One is the points themselves; these are defined as point helper objects places where each specific firepoint should be.  The other is a container dummy object.  The location of the container dummy does not matter, so it can be dropped down anywhere.  However, to prevent serious oddities in conversion, it is strongly recommended to define &#039;&#039;&#039;all&#039;&#039;&#039; dummy objects in either a top-down or perspective view.  That rule applies to more than just weapon banks as well.  To create a weapon bank, place all of the firepoints where they belong (naming them something representative of their bank is helpful if you do multiple banks at a time) and add a dummy helper to the scene.  The dummy must take the name gunbank-X, if it is to be a gun bank, or missilebank-X if it is to be a missile bank.  X in both of these is the number of the bank, so start with zero and work your way up for both.  The count of gunbanks is not related to the count of missilebanks, so start both at 0 and don&#039;t skip numbers.&lt;br /&gt;
&lt;br /&gt;
In the Schematic view, attach all firepoints for a particular bank to the container dummy helper as children.&lt;br /&gt;
&lt;br /&gt;
====Dock Points====&lt;br /&gt;
Dockpoints are specified using a editable spline object and two point helpers.  Place one point helper where you want the dockpoint, and place a second point helper a short distance away towards the &amp;quot;top&amp;quot; of the dock.  If you want an argo to dock in a certain alignment, the second point should be above the first from the orientation of the argo.  The spline should have been set up already and named $dockXX, and its final point should come very close to the first dockpoint.  In the schematic view, attach the two dockpoints, in their creation order, to the dock path as children.  The dock point normals will be set as the direction from the dockpoints to the first point in the path, which is often wrong, but this must be corrected after the fact.&lt;br /&gt;
&lt;br /&gt;
====Special Subsystems====&lt;br /&gt;
To create the standard subsystems used in FS2, create a dummy object at the location and with the size of the special point you want to create.  This point should have a name starting with &#039;$&#039; and should be named what you want the point to display as otherwise.&lt;br /&gt;
&lt;br /&gt;
====Engine Glows====&lt;br /&gt;
Engine glows are created from dummy helpers attached to an engine subsystem.  Place the dummies centered where the engine glows should be and set their size to the size of the glow.  Glows associated with an engine subsystem should be linked to that subsystem as children.&lt;br /&gt;
&lt;br /&gt;
====Glowpoints====&lt;br /&gt;
Glowpoints are very similar to gun/missile banks in setup, except that instead of point helpers for each point, they use dummys.  The size of each individual dummy will determine the size of the glowpoint it creates.  Glow banks are specified with a container dummy helper (which has multiple dummy helpers attached to it as children) with the name glow-X where X is the number of the glow bank (start with 0 and don&#039;t skip numbers).  The string &amp;quot;$glow_texture=texturename&amp;quot; should be placed into the user properties tab for the parent helper.&lt;br /&gt;
&lt;br /&gt;
====Insignia====&lt;br /&gt;
Insignia&#039;s don&#039;t work properly, so this tutorial will not address them.&lt;br /&gt;
&lt;br /&gt;
===Converting===&lt;br /&gt;
Converting is a relatively simple process in comparison to actually setting everything up.  It is, however, not foolproof and actually quite failure prone.  It should be as simple as doing a file-&amp;gt;export, choosing Freespace 2 POF as your export filetype, and selecting only the components that you actually have in your scene.  The only exception is the glows box, which must always be checked or a crash will result.&lt;br /&gt;
&lt;br /&gt;
====What can go wrong====&lt;br /&gt;
The simple answer is a lot.  The converter will crash if you skipped a number in any sequence that requires a -X at the end.  Debris is the most common place for this to occur now, though there are other places that it may also come up.  The converter will crash if it encounters polygons on any mesh other than the shield that have no texture.  The converter will also always crash if the glow box is unchecked, though there isn&#039;t any good reason for this.  Finally, the converter will occasionally crash for no reason whatsoever, so always save before you convert and load it up and try again if it fails once.  Failing twice in a row is usually indicative of a real problem.&lt;br /&gt;
&lt;br /&gt;
===Things that still need improvement===&lt;br /&gt;
There are still some things that the POF converter cannot do properly.  For one thing, it makes a mess out of the header; the mass values are about two orders of magnitude higher than they would be for an equivalent stock model.  For another, the Moment of Inertia is a complete mess and doesn&#039;t output anything useful.  Both of these values should be changed before the model is used in game.  Unfortunately, if glowpoints were used, there is not a good mainstream way to correct the MoI data without losing the glow chunk, and PCS won&#039;t import glows, so you&#039;re sort of stuck unless you are willing to copy it by hand.  There is a third issue that most people rarely notice; the converter miscalculates the radius of the model by approximately a factor of 2, which creates some strange behavior during subspace warps and when viewing externally from the model.  Again, there is not a good way to correct this, so it may just be something you have to live with.  If the radius problem becomes an issue, please contact the user StratComm through the HLP PM system for assistance.&lt;/div&gt;</summary>
		<author><name>152.3.76.154</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=746</id>
		<title>Styxx&#039;s POF Conversion plugin for 3D Studio Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=746"/>
		<updated>2005-11-13T08:09:52Z</updated>

		<summary type="html">&lt;p&gt;152.3.76.154: /* Converting a fighter: A Comprehensive 3dsMax-&amp;gt;POF conversion tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Still a Work In progress, Styxx has created a plugin for 3d Studio Max versions 4 through 6. Available here: [[http://www.hard-light.net/forums/index.php/topic,26260.0.html]]&lt;br /&gt;
&lt;br /&gt;
Despite being available for well over a year, not many people actually know how to make this plugin work correctly.  To that end, the following is intended to be a complete walkthrough of using the plugin to create a simple ship that makes use of all of the plugin&#039;s features.&lt;br /&gt;
&lt;br /&gt;
==A Comprehensive 3dsMax-&amp;gt;POF conversion tutorial==&lt;br /&gt;
Please note that this is not a tutorial for actually creating models.  There are plenty of Max tutorials out there that have far better information in them than what can be provided here.  It is, however, a guide to getting a model out of 3ds Max and into the Freespace 2 object format, POF, with minimal complications.&lt;br /&gt;
&lt;br /&gt;
This tutorial is for the current exporter version as of November 13, 2003.&lt;br /&gt;
&lt;br /&gt;
To start off, load all of the components of your model into a single Max scene file, and make sure that everything is unlinked so that you have no heiararchy to start off with.  If you have already set up a heirarchy, go back and unlink it, as having things grouped too early may cause trouble later.  From here, preparing the geometry for conversion involves a specific sequence of actions.&lt;br /&gt;
&lt;br /&gt;
===Geometry Preperation===&lt;br /&gt;
# Orient everything so that the front of the ship points towards the top of the screen in &amp;quot;top&amp;quot; view mode.&lt;br /&gt;
# One by one, select each subobject and assign it a conversion name.  Certain subobjects require specific naming conventions.  Level of detail (LOD) objects are named detail-0, detail-1, etc, where detail-0 is the parent geometry for LOD0, detail-1 is the parent for LOD1, and so on.  Do not skip levels.  Debris chunks are similarly named debris-0, debris-1, ... debris-n, where n is one less than the total number of debris chunks.  Again, do not skip numbering, as the converter parses these in order and will break if a number is missed.  For all other subsystems, any name is valid as long as Freespace can parse it from the POF chunk (so no Cylinder,3) but remember that what you name the subobject will be what it is called in the POF itself.  The shield mesh should be named &amp;quot;shield&amp;quot; (and similarly, any and all geometry not supposed to be a sheild should not be named &amp;quot;shield&amp;quot;).  Models should only have one shield.&amp;lt;br&amp;gt;As you pass through your list of objects assigning them names, also change them to editable poly mode, as the converter seems to work best with poly models.&amp;lt;br&amp;gt;The following is a personal convention for naming other objects:&lt;br /&gt;
#* Turrets are named turretXX, where XX is a number between 01 and 99 that corresponds to the turret number that this model represents.&lt;br /&gt;
#* Live debris, the ugly chunks of stuff left over when a turret is destroyed, are specified by naming the subobject for the destroyed component the same as the healthy version but with an added &amp;quot;-destroyed&amp;quot; on the end.&lt;br /&gt;
#* Geometry that&#039;s acting as a &amp;quot;standard&amp;quot; Freespace subsystem should be named according to the final subsystem name.  A physical Comm system would be &amp;quot;communications&amp;quot;, a physical hanger would be &amp;quot;fighterbay&amp;quot;, and so on.&lt;br /&gt;
#* Geometry representing non-standard displaying subsystems should be given the name you want them to appear with.&lt;br /&gt;
#* Hidden subobjects should be given a name that&#039;s meaningful to their function, such as hangerdoor for a hanger door.&lt;br /&gt;
#* No subobject should ever be converted with it&#039;s max-generated default name.&lt;br /&gt;
# Assign properties to physical subobjects.  Turrets are the most common case, but rotating subobjects like radar dishes and geometry representing a game subsystem like engines also need some extra data.  To assign text properties to an object, open the object properties dialogue (right-click on the object, and select properties) and go to the &amp;quot;User Defined&amp;quot; tab.  All objects that will be subsystems will need &amp;quot;$special=subsystem&amp;quot; added to their user-defined properties tabs.  Turrets (turret bases) should have &amp;quot;$fov=XXX&amp;quot; where XXX is the field of view for the turret (0-180) and &amp;quot;$name=gunturret&amp;quot; added at the end.  Other subsystems also need the $name=somename&amp;quot; field, but only turrets require &amp;quot;gunturret&amp;quot;.  Rotating objects need &amp;quot;$rotate=X&amp;quot; where X is rotation time in seconds.  Negative values indicate reverse rotation.&lt;br /&gt;
# Position the primary model where it is supposed to be in the converted file so that its pivot point is at the origin.  If you were converting the colossus, you would put the model in such a location that the middle of its rear engines, the point about which it rotates in-game, at (0,0,0).  When the ship is in the exact place you want it, select the Heirarchy tab, click &amp;quot;Affect Pivot Only&amp;quot; and make sure that the pivot is at location 0,0,0.  The location of the pivot on the root geometry for a level of detail MUST be at the origin, and this is important, so do not skip this step.&lt;br /&gt;
# Position all turrets and other subobjects where you want them in relation to the detail-X object that they will be attached to (this will almost always be detail-0), making sure to follow Freespace conventions in terms of turret orientation.  Topside multipart turrets should face forward with their barrels pointing straight up, multipart turrets on the bottom of the ship should face towards the ship&#039;s rear and their barrels should point straight down.  Default resting positions can be assigned in tables, so don&#039;t try to do anything fancy with these in the model.  Barrels (and any other object consisting of more than one connected element) should be one object, not several, so attach multiple barrels together with the attach tool.&lt;br /&gt;
# Glass, transparency-blended nameplates, and other transparent textures should come last in the model.  An easy way to accomplish this is to select all faces that use the material of your glass texture and detach them from the model, select the original model and re-attach them with the attach tool, select the faces near the edge (all faces in the model may be appropriate) and perform a vertex weld with a threshold of 0.01.  This will move the transparent faces to the end of the model&#039;s face list and will ensure proper rendering in-game.  If you have a single map that is partially transparent, do this on the specific faces that will end up transparent.  All transparent textures should be part of the root geometry (detail-0), without exception.  Faces behind transparent textures, such as a pilot, are more likely to work correctly when it is a subobject.&lt;br /&gt;
# All faces on all geometry &#039;&#039;&#039;except the sheild&#039;&#039;&#039; must have a texture assigned to them.  Missing this on as little as a single face will cause the plugin to crash.&lt;br /&gt;
&lt;br /&gt;
===Paths===&lt;br /&gt;
Create your paths using the create line tool and modify the editable splines to suit each path you want in the model.  Typically, the paths needed for a &amp;quot;complete&amp;quot; model are paths for each subsystem (main subsystems and turret subobjects) so it&#039;s usually a good idea to know in advance where things like the weapons subsystem will be defined.  All editable splines will become paths on conversion, but name them according to the Freespace convention anyway.  Subsystem paths should be named $pathXX (XX is a number) and fighterbay paths should be named $bayXX.  The only exception is the dock paths, which must have &amp;quot;dock&amp;quot; in the name, so $dockXX is preferable.  Paths are ALWAYS defined toward the ship, so the first point (where you first click when you start an editable spline with the create line tool) should be the most distant from the ship, and the last the closest.  Turret and subsystem paths are fine with just two points, fighterbay and dock paths typically have more (docks should have at least 4).  Dock paths should have $name=somename, where somename is the display name of the dock in FRED, added to their user-defined properties tab.&lt;br /&gt;
&lt;br /&gt;
===Reset X-Form===&lt;br /&gt;
This is the step that has given people the most trouble.  Now would be a good time to make a backup of the scene, so that you can restore to the un-rigged state if something goes wrong.&lt;br /&gt;
&lt;br /&gt;
Select all objects in the scene and open the Utilities tab.  Select the &amp;quot;Reset X-Form&amp;quot; tool in the rollout that appears.  Click the button of the same name to reset the transforms on all objects in the scene.  If something in the scene moves in a strange way when you perform this action, there was still heirarchy set up in the scene so load up the backup and unlink the object(s) that moved from whatever they are attached to with the schematic editor.  Then update the backup and try Reset X-form again, repeating as necessary.&lt;br /&gt;
&lt;br /&gt;
===Turrets===&lt;br /&gt;
Most turret issues have already been covered, but there is one additional step that must be done for each turret.  To define a turret&#039;s firing points, place point helper objects in the scene at the desired location for these points.  It&#039;s a good idea to name these points something meaningful (if it&#039;s a firepoint for turret03, perhaps call it &amp;quot;turret03fp&amp;quot;) so that you can figure out what goes where when rigging.  For now, just create the points, we&#039;ll put the turrets together shortly.&lt;br /&gt;
&lt;br /&gt;
===Rigging the Scene===&lt;br /&gt;
Now that all geometry and paths are set up properly, it&#039;s time to start putting things together.  Setting up the heirarchy is done through the Schematic view, so go ahead and open that up.  If you can&#039;t make out anything, try zooming in; Max does a particularly poor job of initially displaying a large number of objects in this view.&lt;br /&gt;
&lt;br /&gt;
Objects are connected in a heirarchy with the link tool.  To link one object to another, select the link tool, click on the to-be child object and drag to the intended parent.&lt;br /&gt;
&lt;br /&gt;
====Turrets, again====&lt;br /&gt;
It&#039;s usually a good idea to set up turret groups before linking the turret itself to its parent.&lt;br /&gt;
*The standard button turrets consist of the turret geometry, with the turret path and the firepoint(s) attached as children.&lt;br /&gt;
*Multipart turrets are assembled with the turret base as the parent and with the firepoint(s), path, and barrels all attached as children.&lt;br /&gt;
&lt;br /&gt;
====Heirarchy Matters====&lt;br /&gt;
The connection heirarchy is essential to making the game display your model correctly.  Child objects cannot be rendered if their parent is not rendered, so keep this in mind when setting up your heirarchy groupings.  Child objects also rotate with their parents, so if you are setting up an animated model you must keep this in mind.  In general, all subobjects that the game can access as a submodel get assigned as direct children of detail-0, unless it&#039;s some strange case involving rotation.  Turret barrels, however, are &#039;&#039;&#039;always&#039;&#039;&#039; children of their base, even if you don&#039;t intend to use autogeneration to set the turret up for you.&lt;br /&gt;
&lt;br /&gt;
====Putting it All Together====&lt;br /&gt;
#Using the link tool in heirarchy view, one by one attach each turret base, physical subsystem, and extra subobjects intended to be direct subobjects of detail-0 to their parent LOD.&lt;br /&gt;
#Additional LODs should be set up the same way, though in most cases all lower LODs will have no child objects.  LODs should themselves be at the top level of the scene, not attached to any other piece of geometry or helper.&lt;br /&gt;
#Debris pieces be at the scene root as well, not attached to any parent object.&lt;br /&gt;
#The shield mesh (if one is being used) should also be at the top level of the scene.&lt;br /&gt;
#All paths not assigned to a turret or subobject (subsystem paths for non-geometry subsystems, fighterbay paths, and dock paths) should be at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you attempt an export with only &amp;quot;detail levels&amp;quot;, &amp;quot;debris objects&amp;quot;, and &amp;quot;glows&amp;quot; checked.  &amp;quot;glows&amp;quot; will obviously not do anything yet, but for some reason the exporter seems to crash when it is not selected.  If If it converts and everything is in the right place afterwards, then the geometry is sound and you can be sure that later errors were not caused by geometry issues.  See the converting section for details and debugging info.&lt;br /&gt;
&lt;br /&gt;
===Of Points and Dummies===&lt;br /&gt;
If you prefer editing all subsystem, turret, gun/missile point, dockpoint, engine glow, and glowpoint data in PCS, you can safely skip this section.  However, as this is perhaps the greatest strength of the MAX converter, it is strongly recommended that you actually use these features.&lt;br /&gt;
&lt;br /&gt;
All of the resulting structures should be left at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
====Weapon Banks====&lt;br /&gt;
Two components are necessary for each gun and missile bank that you want to add.  One is the points themselves; these are defined as point helper objects places where each specific firepoint should be.  The other is a container dummy object.  The location of the container dummy does not matter, so it can be dropped down anywhere.  However, to prevent serious oddities in conversion, it is strongly recommended to define &#039;&#039;&#039;all&#039;&#039;&#039; dummy objects in either a top-down or perspective view.  That rule applies to more than just weapon banks as well.  To create a weapon bank, place all of the firepoints where they belong (naming them something representative of their bank is helpful if you do multiple banks at a time) and add a dummy helper to the scene.  The dummy must take the name gunbank-X, if it is to be a gun bank, or missilebank-X if it is to be a missile bank.  X in both of these is the number of the bank, so start with zero and work your way up for both.  The count of gunbanks is not related to the count of missilebanks, so start both at 0 and don&#039;t skip numbers.&lt;br /&gt;
&lt;br /&gt;
In the Schematic view, attach all firepoints for a particular bank to the container dummy helper as children.&lt;br /&gt;
&lt;br /&gt;
====Dock Points====&lt;br /&gt;
Dockpoints are specified using a editable spline object and two point helpers.  Place one point helper where you want the dockpoint, and place a second point helper a short distance away towards the &amp;quot;top&amp;quot; of the dock.  If you want an argo to dock in a certain alignment, the second point should be above the first from the orientation of the argo.  The spline should have been set up already and named $dockXX, and its final point should come very close to the first dockpoint.  In the schematic view, attach the two dockpoints, in their creation order, to the dock path as children.  The dock point normals will be set as the direction from the dockpoints to the first point in the path, which is often wrong, but this must be corrected after the fact.&lt;br /&gt;
&lt;br /&gt;
====Special Subsystems====&lt;br /&gt;
To create the standard subsystems used in FS2, create a dummy object at the location and with the size of the special point you want to create.  This point should have a name starting with &#039;$&#039; and should be named what you want the point to display as otherwise.&lt;br /&gt;
&lt;br /&gt;
====Engine Glows====&lt;br /&gt;
Engine glows are created from dummy helpers attached to an engine subsystem.  Place the dummies centered where the engine glows should be and set their size to the size of the glow.  Glows associated with an engine subsystem should be linked to that subsystem as children.&lt;br /&gt;
&lt;br /&gt;
====Glowpoints====&lt;br /&gt;
Glowpoints are very similar to gun/missile banks in setup, except that instead of point helpers for each point, they use dummys.  The size of each individual dummy will determine the size of the glowpoint it creates.  Glow banks are specified with a container dummy helper (which has multiple dummy helpers attached to it as children) with the name glow-X where X is the number of the glow bank (start with 0 and don&#039;t skip numbers).  The string &amp;quot;$glow_texture=texturename&amp;quot; should be placed into the user properties tab for the parent helper.&lt;br /&gt;
&lt;br /&gt;
====Insignia====&lt;br /&gt;
Insignia&#039;s don&#039;t work properly, so this tutorial will not address them.&lt;br /&gt;
&lt;br /&gt;
===Converting===&lt;br /&gt;
Converting is a relatively simple process in comparison to actually setting everything up.  It is, however, not foolproof and actually quite failure prone.  It should be as simple as doing a file-&amp;gt;export, choosing Freespace 2 POF as your export filetype, and selecting only the components that you actually have in your scene.  The only exception is the glows box, which must always be checked or a crash will result.&lt;br /&gt;
&lt;br /&gt;
====What can go wrong====&lt;br /&gt;
The simple answer is a lot.  The converter will crash if you skipped a number in any sequence that requires a -X at the end.  Debris is the most common place for this to occur now, though there are other places that it may also come up.  The converter will crash if it encounters polygons on any mesh other than the shield that have no texture.  The converter will also always crash if the glow box is unchecked, though there isn&#039;t any good reason for this.  Finally, the converter will occasionally crash for no reason whatsoever, so always save before you convert and load it up and try again if it fails once.  Failing twice in a row is usually indicative of a real problem.&lt;br /&gt;
&lt;br /&gt;
===Things that still need improvement===&lt;br /&gt;
There are still some things that the POF converter cannot do properly.  For one thing, it makes a mess out of the header; the mass values are about two orders of magnitude higher than they would be for an equivalent stock model.  For another, the Moment of Inertia is a complete mess and doesn&#039;t output anything useful.  Both of these values should be changed before the model is used in game.  Unfortunately, if glowpoints were used, there is not a good mainstream way to correct the MoI data without losing the glow chunk, and PCS won&#039;t import glows, so you&#039;re sort of stuck unless you are willing to copy it by hand.  There is a third issue that most people rarely notice; the converter miscalculates the raduis of the model by approximately a factor of 2, which creates some strange behavior during subspace warps and when viewing externally from the model.  Again, there is not a good way to correct this, so it may just be something you have to live with.  If the radius problem becomes an issue, please contact the user StratComm through the HLP PM system for assistance.&lt;/div&gt;</summary>
		<author><name>152.3.76.154</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=708</id>
		<title>Styxx&#039;s POF Conversion plugin for 3D Studio Max</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Styxx%27s_POF_Conversion_plugin_for_3D_Studio_Max&amp;diff=708"/>
		<updated>2005-11-13T08:09:23Z</updated>

		<summary type="html">&lt;p&gt;152.3.76.154: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Still a Work In progress, Styxx has created a plugin for 3d Studio Max versions 4 through 6. Available here: [[http://www.hard-light.net/forums/index.php/topic,26260.0.html]]&lt;br /&gt;
&lt;br /&gt;
Despite being available for well over a year, not many people actually know how to make this plugin work correctly.  To that end, the following is intended to be a complete walkthrough of using the plugin to create a simple ship that makes use of all of the plugin&#039;s features.&lt;br /&gt;
&lt;br /&gt;
==Converting a fighter: A Comprehensive 3dsMax-&amp;gt;POF conversion tutorial==&lt;br /&gt;
Please note that this is not a tutorial for actually creating models.  There are plenty of Max tutorials out there that have far better information in them than what can be provided here.  It is, however, a guide to getting a model out of 3ds Max and into the Freespace 2 object format, POF, with minimal complications.&lt;br /&gt;
&lt;br /&gt;
This tutorial is for the current exporter version as of November 13, 2003.&lt;br /&gt;
&lt;br /&gt;
To start off, load all of the components of your model into a single Max scene file, and make sure that everything is unlinked so that you have no heiararchy to start off with.  If you have already set up a heirarchy, go back and unlink it, as having things grouped too early may cause trouble later.  From here, preparing the geometry for conversion involves a specific sequence of actions.&lt;br /&gt;
&lt;br /&gt;
===Geometry Preperation===&lt;br /&gt;
# Orient everything so that the front of the ship points towards the top of the screen in &amp;quot;top&amp;quot; view mode.&lt;br /&gt;
# One by one, select each subobject and assign it a conversion name.  Certain subobjects require specific naming conventions.  Level of detail (LOD) objects are named detail-0, detail-1, etc, where detail-0 is the parent geometry for LOD0, detail-1 is the parent for LOD1, and so on.  Do not skip levels.  Debris chunks are similarly named debris-0, debris-1, ... debris-n, where n is one less than the total number of debris chunks.  Again, do not skip numbering, as the converter parses these in order and will break if a number is missed.  For all other subsystems, any name is valid as long as Freespace can parse it from the POF chunk (so no Cylinder,3) but remember that what you name the subobject will be what it is called in the POF itself.  The shield mesh should be named &amp;quot;shield&amp;quot; (and similarly, any and all geometry not supposed to be a sheild should not be named &amp;quot;shield&amp;quot;).  Models should only have one shield.&amp;lt;br&amp;gt;As you pass through your list of objects assigning them names, also change them to editable poly mode, as the converter seems to work best with poly models.&amp;lt;br&amp;gt;The following is a personal convention for naming other objects:&lt;br /&gt;
#* Turrets are named turretXX, where XX is a number between 01 and 99 that corresponds to the turret number that this model represents.&lt;br /&gt;
#* Live debris, the ugly chunks of stuff left over when a turret is destroyed, are specified by naming the subobject for the destroyed component the same as the healthy version but with an added &amp;quot;-destroyed&amp;quot; on the end.&lt;br /&gt;
#* Geometry that&#039;s acting as a &amp;quot;standard&amp;quot; Freespace subsystem should be named according to the final subsystem name.  A physical Comm system would be &amp;quot;communications&amp;quot;, a physical hanger would be &amp;quot;fighterbay&amp;quot;, and so on.&lt;br /&gt;
#* Geometry representing non-standard displaying subsystems should be given the name you want them to appear with.&lt;br /&gt;
#* Hidden subobjects should be given a name that&#039;s meaningful to their function, such as hangerdoor for a hanger door.&lt;br /&gt;
#* No subobject should ever be converted with it&#039;s max-generated default name.&lt;br /&gt;
# Assign properties to physical subobjects.  Turrets are the most common case, but rotating subobjects like radar dishes and geometry representing a game subsystem like engines also need some extra data.  To assign text properties to an object, open the object properties dialogue (right-click on the object, and select properties) and go to the &amp;quot;User Defined&amp;quot; tab.  All objects that will be subsystems will need &amp;quot;$special=subsystem&amp;quot; added to their user-defined properties tabs.  Turrets (turret bases) should have &amp;quot;$fov=XXX&amp;quot; where XXX is the field of view for the turret (0-180) and &amp;quot;$name=gunturret&amp;quot; added at the end.  Other subsystems also need the $name=somename&amp;quot; field, but only turrets require &amp;quot;gunturret&amp;quot;.  Rotating objects need &amp;quot;$rotate=X&amp;quot; where X is rotation time in seconds.  Negative values indicate reverse rotation.&lt;br /&gt;
# Position the primary model where it is supposed to be in the converted file so that its pivot point is at the origin.  If you were converting the colossus, you would put the model in such a location that the middle of its rear engines, the point about which it rotates in-game, at (0,0,0).  When the ship is in the exact place you want it, select the Heirarchy tab, click &amp;quot;Affect Pivot Only&amp;quot; and make sure that the pivot is at location 0,0,0.  The location of the pivot on the root geometry for a level of detail MUST be at the origin, and this is important, so do not skip this step.&lt;br /&gt;
# Position all turrets and other subobjects where you want them in relation to the detail-X object that they will be attached to (this will almost always be detail-0), making sure to follow Freespace conventions in terms of turret orientation.  Topside multipart turrets should face forward with their barrels pointing straight up, multipart turrets on the bottom of the ship should face towards the ship&#039;s rear and their barrels should point straight down.  Default resting positions can be assigned in tables, so don&#039;t try to do anything fancy with these in the model.  Barrels (and any other object consisting of more than one connected element) should be one object, not several, so attach multiple barrels together with the attach tool.&lt;br /&gt;
# Glass, transparency-blended nameplates, and other transparent textures should come last in the model.  An easy way to accomplish this is to select all faces that use the material of your glass texture and detach them from the model, select the original model and re-attach them with the attach tool, select the faces near the edge (all faces in the model may be appropriate) and perform a vertex weld with a threshold of 0.01.  This will move the transparent faces to the end of the model&#039;s face list and will ensure proper rendering in-game.  If you have a single map that is partially transparent, do this on the specific faces that will end up transparent.  All transparent textures should be part of the root geometry (detail-0), without exception.  Faces behind transparent textures, such as a pilot, are more likely to work correctly when it is a subobject.&lt;br /&gt;
# All faces on all geometry &#039;&#039;&#039;except the sheild&#039;&#039;&#039; must have a texture assigned to them.  Missing this on as little as a single face will cause the plugin to crash.&lt;br /&gt;
&lt;br /&gt;
===Paths===&lt;br /&gt;
Create your paths using the create line tool and modify the editable splines to suit each path you want in the model.  Typically, the paths needed for a &amp;quot;complete&amp;quot; model are paths for each subsystem (main subsystems and turret subobjects) so it&#039;s usually a good idea to know in advance where things like the weapons subsystem will be defined.  All editable splines will become paths on conversion, but name them according to the Freespace convention anyway.  Subsystem paths should be named $pathXX (XX is a number) and fighterbay paths should be named $bayXX.  The only exception is the dock paths, which must have &amp;quot;dock&amp;quot; in the name, so $dockXX is preferable.  Paths are ALWAYS defined toward the ship, so the first point (where you first click when you start an editable spline with the create line tool) should be the most distant from the ship, and the last the closest.  Turret and subsystem paths are fine with just two points, fighterbay and dock paths typically have more (docks should have at least 4).  Dock paths should have $name=somename, where somename is the display name of the dock in FRED, added to their user-defined properties tab.&lt;br /&gt;
&lt;br /&gt;
===Reset X-Form===&lt;br /&gt;
This is the step that has given people the most trouble.  Now would be a good time to make a backup of the scene, so that you can restore to the un-rigged state if something goes wrong.&lt;br /&gt;
&lt;br /&gt;
Select all objects in the scene and open the Utilities tab.  Select the &amp;quot;Reset X-Form&amp;quot; tool in the rollout that appears.  Click the button of the same name to reset the transforms on all objects in the scene.  If something in the scene moves in a strange way when you perform this action, there was still heirarchy set up in the scene so load up the backup and unlink the object(s) that moved from whatever they are attached to with the schematic editor.  Then update the backup and try Reset X-form again, repeating as necessary.&lt;br /&gt;
&lt;br /&gt;
===Turrets===&lt;br /&gt;
Most turret issues have already been covered, but there is one additional step that must be done for each turret.  To define a turret&#039;s firing points, place point helper objects in the scene at the desired location for these points.  It&#039;s a good idea to name these points something meaningful (if it&#039;s a firepoint for turret03, perhaps call it &amp;quot;turret03fp&amp;quot;) so that you can figure out what goes where when rigging.  For now, just create the points, we&#039;ll put the turrets together shortly.&lt;br /&gt;
&lt;br /&gt;
===Rigging the Scene===&lt;br /&gt;
Now that all geometry and paths are set up properly, it&#039;s time to start putting things together.  Setting up the heirarchy is done through the Schematic view, so go ahead and open that up.  If you can&#039;t make out anything, try zooming in; Max does a particularly poor job of initially displaying a large number of objects in this view.&lt;br /&gt;
&lt;br /&gt;
Objects are connected in a heirarchy with the link tool.  To link one object to another, select the link tool, click on the to-be child object and drag to the intended parent.&lt;br /&gt;
&lt;br /&gt;
====Turrets, again====&lt;br /&gt;
It&#039;s usually a good idea to set up turret groups before linking the turret itself to its parent.&lt;br /&gt;
*The standard button turrets consist of the turret geometry, with the turret path and the firepoint(s) attached as children.&lt;br /&gt;
*Multipart turrets are assembled with the turret base as the parent and with the firepoint(s), path, and barrels all attached as children.&lt;br /&gt;
&lt;br /&gt;
====Heirarchy Matters====&lt;br /&gt;
The connection heirarchy is essential to making the game display your model correctly.  Child objects cannot be rendered if their parent is not rendered, so keep this in mind when setting up your heirarchy groupings.  Child objects also rotate with their parents, so if you are setting up an animated model you must keep this in mind.  In general, all subobjects that the game can access as a submodel get assigned as direct children of detail-0, unless it&#039;s some strange case involving rotation.  Turret barrels, however, are &#039;&#039;&#039;always&#039;&#039;&#039; children of their base, even if you don&#039;t intend to use autogeneration to set the turret up for you.&lt;br /&gt;
&lt;br /&gt;
====Putting it All Together====&lt;br /&gt;
#Using the link tool in heirarchy view, one by one attach each turret base, physical subsystem, and extra subobjects intended to be direct subobjects of detail-0 to their parent LOD.&lt;br /&gt;
#Additional LODs should be set up the same way, though in most cases all lower LODs will have no child objects.  LODs should themselves be at the top level of the scene, not attached to any other piece of geometry or helper.&lt;br /&gt;
#Debris pieces be at the scene root as well, not attached to any parent object.&lt;br /&gt;
#The shield mesh (if one is being used) should also be at the top level of the scene.&lt;br /&gt;
#All paths not assigned to a turret or subobject (subsystem paths for non-geometry subsystems, fighterbay paths, and dock paths) should be at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you attempt an export with only &amp;quot;detail levels&amp;quot;, &amp;quot;debris objects&amp;quot;, and &amp;quot;glows&amp;quot; checked.  &amp;quot;glows&amp;quot; will obviously not do anything yet, but for some reason the exporter seems to crash when it is not selected.  If If it converts and everything is in the right place afterwards, then the geometry is sound and you can be sure that later errors were not caused by geometry issues.  See the converting section for details and debugging info.&lt;br /&gt;
&lt;br /&gt;
===Of Points and Dummies===&lt;br /&gt;
If you prefer editing all subsystem, turret, gun/missile point, dockpoint, engine glow, and glowpoint data in PCS, you can safely skip this section.  However, as this is perhaps the greatest strength of the MAX converter, it is strongly recommended that you actually use these features.&lt;br /&gt;
&lt;br /&gt;
All of the resulting structures should be left at the root level of the scene.&lt;br /&gt;
&lt;br /&gt;
====Weapon Banks====&lt;br /&gt;
Two components are necessary for each gun and missile bank that you want to add.  One is the points themselves; these are defined as point helper objects places where each specific firepoint should be.  The other is a container dummy object.  The location of the container dummy does not matter, so it can be dropped down anywhere.  However, to prevent serious oddities in conversion, it is strongly recommended to define &#039;&#039;&#039;all&#039;&#039;&#039; dummy objects in either a top-down or perspective view.  That rule applies to more than just weapon banks as well.  To create a weapon bank, place all of the firepoints where they belong (naming them something representative of their bank is helpful if you do multiple banks at a time) and add a dummy helper to the scene.  The dummy must take the name gunbank-X, if it is to be a gun bank, or missilebank-X if it is to be a missile bank.  X in both of these is the number of the bank, so start with zero and work your way up for both.  The count of gunbanks is not related to the count of missilebanks, so start both at 0 and don&#039;t skip numbers.&lt;br /&gt;
&lt;br /&gt;
In the Schematic view, attach all firepoints for a particular bank to the container dummy helper as children.&lt;br /&gt;
&lt;br /&gt;
====Dock Points====&lt;br /&gt;
Dockpoints are specified using a editable spline object and two point helpers.  Place one point helper where you want the dockpoint, and place a second point helper a short distance away towards the &amp;quot;top&amp;quot; of the dock.  If you want an argo to dock in a certain alignment, the second point should be above the first from the orientation of the argo.  The spline should have been set up already and named $dockXX, and its final point should come very close to the first dockpoint.  In the schematic view, attach the two dockpoints, in their creation order, to the dock path as children.  The dock point normals will be set as the direction from the dockpoints to the first point in the path, which is often wrong, but this must be corrected after the fact.&lt;br /&gt;
&lt;br /&gt;
====Special Subsystems====&lt;br /&gt;
To create the standard subsystems used in FS2, create a dummy object at the location and with the size of the special point you want to create.  This point should have a name starting with &#039;$&#039; and should be named what you want the point to display as otherwise.&lt;br /&gt;
&lt;br /&gt;
====Engine Glows====&lt;br /&gt;
Engine glows are created from dummy helpers attached to an engine subsystem.  Place the dummies centered where the engine glows should be and set their size to the size of the glow.  Glows associated with an engine subsystem should be linked to that subsystem as children.&lt;br /&gt;
&lt;br /&gt;
====Glowpoints====&lt;br /&gt;
Glowpoints are very similar to gun/missile banks in setup, except that instead of point helpers for each point, they use dummys.  The size of each individual dummy will determine the size of the glowpoint it creates.  Glow banks are specified with a container dummy helper (which has multiple dummy helpers attached to it as children) with the name glow-X where X is the number of the glow bank (start with 0 and don&#039;t skip numbers).  The string &amp;quot;$glow_texture=texturename&amp;quot; should be placed into the user properties tab for the parent helper.&lt;br /&gt;
&lt;br /&gt;
====Insignia====&lt;br /&gt;
Insignia&#039;s don&#039;t work properly, so this tutorial will not address them.&lt;br /&gt;
&lt;br /&gt;
===Converting===&lt;br /&gt;
Converting is a relatively simple process in comparison to actually setting everything up.  It is, however, not foolproof and actually quite failure prone.  It should be as simple as doing a file-&amp;gt;export, choosing Freespace 2 POF as your export filetype, and selecting only the components that you actually have in your scene.  The only exception is the glows box, which must always be checked or a crash will result.&lt;br /&gt;
&lt;br /&gt;
====What can go wrong====&lt;br /&gt;
The simple answer is a lot.  The converter will crash if you skipped a number in any sequence that requires a -X at the end.  Debris is the most common place for this to occur now, though there are other places that it may also come up.  The converter will crash if it encounters polygons on any mesh other than the shield that have no texture.  The converter will also always crash if the glow box is unchecked, though there isn&#039;t any good reason for this.  Finally, the converter will occasionally crash for no reason whatsoever, so always save before you convert and load it up and try again if it fails once.  Failing twice in a row is usually indicative of a real problem.&lt;br /&gt;
&lt;br /&gt;
===Things that still need improvement===&lt;br /&gt;
There are still some things that the POF converter cannot do properly.  For one thing, it makes a mess out of the header; the mass values are about two orders of magnitude higher than they would be for an equivalent stock model.  For another, the Moment of Inertia is a complete mess and doesn&#039;t output anything useful.  Both of these values should be changed before the model is used in game.  Unfortunately, if glowpoints were used, there is not a good mainstream way to correct the MoI data without losing the glow chunk, and PCS won&#039;t import glows, so you&#039;re sort of stuck unless you are willing to copy it by hand.  There is a third issue that most people rarely notice; the converter miscalculates the raduis of the model by approximately a factor of 2, which creates some strange behavior during subspace warps and when viewing externally from the model.  Again, there is not a good way to correct this, so it may just be something you have to live with.  If the radius problem becomes an issue, please contact the user StratComm through the HLP PM system for assistance.&lt;/div&gt;</summary>
		<author><name>152.3.76.154</name></author>
	</entry>
</feed>