Jump to content

Industrial Park (level editor): Difference between revisions

no edit summary
Battlepedia>Igorseabra4
No edit summary
Battlepedia>Igorseabra4
No edit summary
Line 1:
'''Industrial Park''' is a tool made by community member [[User:igorseabra4|igorseabra4]] in C# using SharpDX. It is an editor capable of opening a number of [[HIP|HIP/HOP files]] and display the level, with models and textures for level and objects, as well as edit some of the [[asset]] types. in Battle For Bikini Bottom, The programSpongeBob isSquarePants stillMovie, underScooby-Doo: developmentNight of 100 Frights, soThe Incredibles and The Incredibles: Rise of the Underminer for all platforms (except the point-and-click PC versions featuresof arethe stillSpongeBob plannedgames).
 
This tool is based off from, and shares a lot of its source code with another one of the creator's tools: [https://info.sonicretro.org/Heroes_Power_Plant Heroes Power Plant], a tool to edit levels in [https://info.sonicretro.org/Sonic%20Heroes Sonic Heroes]. Being also based on the RenderWare engine, both games share their model format. It also gave Industrial Park the convention of being named after a level in the game. Industrial Park uses [https://www.gtagarage.com/mods/show.php?id=26916 TxdGen] for converting textures and [https://github.com/losnoco/vgmstream vgmstream] for previewing sounds.
 
The program is still under development, so features are still planned, and it is possible that functions of the tool don't work as expected.
 
[[File:Industrial Park Screenshot1.png|450px]] [[File:Industrial Park Screenshot2.png|450px]]
 
==Game/Platform Compatibility==
{| class="wikitable"
|+
!
! GameCube
! Xbox
! PS2
! PC
|-
! Scooby-Doo: Night of 100 Frights
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| -
|-
! Spongebob Squarepants: Battle for Bikini Bottom
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| -
|-
! The Incredibles
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| <span style="color:#FF7F00">Minimal support</span>
|-
! The Spongebob Squarepants Movie
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#007F00">Supported</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| -
|-
! The Incredibles: Rise of the Underminer
|| <span style="color:#FF7F00">Minimal support</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| <span style="color:#FF7F00">Minimal support</span>
|| <span style="color:#FF7F00">Minimal support</span>
|}
 
==Usage==
To learn to use Industrial Park, please follow the Essential Series of modding tutorials, starting with the [[Introduction To Modding]] page. Most of the information in the first few pages is related to using the tool, such as [[Industrial Park Basics]] and [[Editing Assets]].
===Commands===
Keyboard controls:
 
==Asset Types==
* W, A, S, D: move view forward, left, backward, right
* Shift + (W, S): move view up, down
* Ctrl + (W, A, S, D): rotate view up, left, down, right
* Q, E: decrease interval, increase interval (view move speed)
* 1, 3: decrease rotation interval, increase rotation interval (view rotation speed)
* C: toggles backface culling
* F: toggles wireframe mode
* G: open [[#Asset Data Editor|Asset Data Editor]] for selected assets
* R: reset view
* T: snap [[#Gizmos|gizmos]] to grid
* U: toggle [[#UI Mode|UI Mode]]
* V: cycle between [[#Gizmos|gizmos]]
* Z: toggle mouse mode
* F1: displays the View Config box
 
Mouse controls:
 
* Left click on an asset to select it
** Ctrl + Left click to select multiple
* Middle click and drag to rotate view
* Mouse wheel to move forward/backward
* Right click on screen to choose a [[#Asset Templates|template]]
** Shift + Right click to place a [[#Asset Templates|template]]
* Ctrl + Right click and drag to pan (move view up, left, down, right)
 
Mouse mode (Z): similar to a first person camera. The view rotates automatically as you move the mouse. Use the keyboard to move around.
 
===Options===
In the Options tab, you can choose a few settings.
 
* '''View Config''' (F1): displays the View Config box.
* '''Add Texture Folder'''...: allows you to load textures from an external folder for display instead of using the RWTX assets.
* '''Refresh Textures and Models''': use this if models and textures don't show up properly after importing a HIP, textures or models, or after closing an archive.
* '''Clear Textures''': clear textures being displayed from folders.
 
* '''Colors''':
** '''Reset''': resets all colors to default.
** '''Background''': allows you to choose a new background color for the view.
** '''Widget''': allows you to choose a new color for unselected box widgets.
** '''MVPT''': allows you to choose a new color for unselected MVPT widgets.
** '''TRIG''': allows you to choose a new color for unselected TRIG widgets.
** '''SFX''': allows you to choose a new color for unselected SFX widgets.
** '''Selection''': allows you to choose a new color for selected widgets and objects.
* '''No culling''' (C): toggles backface culling
* '''Wireframe''' (F): toggles wireframe mode
* '''Use LODT for Rendering''': when active, models will only be rendered when their distance from the view is under the setting in the [[LODT]] asset, or a default value of 100 if unspecified there.
* '''Use PIPT for Rendering''': when active, models will be rendered according to rendering modes set in [[PIPT]] assets. This function is still experimental and the preview is not accurate to the game.
* '''Hide Invisible Meshes''': when active, meshes which are set to be invisible in MODL and JSP assets will be hidden
* '''Update References on Copy/Paste''': when active, when copying and pasting multiple assets, if they have references such as events to each other, the reference will be updated to point to the copy
* '''Movement Preview''': when active, the progarm will attempt to preview the movement pattern of placeable assets (most notably, [[PLAT]]s, [[VIL]]s with [[MVPT]] and assets which use the [[Events#Drivenby|Drivenby]] event). This function is still experimental and the preview is not accurate to the game.
 
* '''Use Legacy Asset ID Format''': this will disable using asset names in Asset ID fields and force you to use hex numbers only. This is useful if, for some reason, you're working with multiple assets that have the same name but different asset IDs.
* '''Hide Help in Asset Data Editors''': checking this will hide the help boxes in the Asset Data Editor windows.
 
===Tools===
A few of Industrial Park's functions can be found in the Tools tab:
 
* '''Save All Open HIPs (F4)''': saves changes in all open archives.
* '''Run Game (F5)''': this method is only for GameCube/Dolphin. It will attempt to close the running instance of Dolphin and launch a new one with the DOL of the game. You need a filesystem association for DOLs with Dolphin for this to work, and it only works on the newest releases of Dolphin (dev, not 5.0). The boot level in the INI file will be set to the level of the currently opened HIP/HOPs (if multiple are open, the first one will be used). The process will be canceled after 10 seconds of unsuccessful tries!
* '''Stop Sound''': stops the sound that is playing.
 
* '''Manage User Templates''': open the [[#User Templates|User Template Manager]]
* '''Templates: Persistent Shinies''': toggles whether shiny object and manliness point templates will be set as persistent or not (see [[Asset#Object Asset|Object Asset]]).
* '''Templates: Chain Point MVPTs''': when checked, each time you place a Point MVPT template (starting from the second one in the session) the previous one's "NextMVPTs" will be updated to point to it.
 
* '''Download IndustrialPark-EditorFiles...''': downloads the contents of the [https://github.com/igorseabra4/IndustrialPark-EditorFiles IndustrialPark-EditorFiles] repository to your Resources folder. It contains the HIP archives for enemies and other objects which you need for [[Asset porting|asset porting]]. This might take a bit depending on your connection as the repository is currently around 17 MB and it might increase as we add new files to it. The reason why this feature exists is because the repository is often updated with more files and newer versions.
* '''Download vgmstream...''': downloads a vgmstream release from [https://github.com/losnoco/vgmstream/ its page] repository to your Resources folder. This tool is used to preview sounds inside Industrial Park.
* '''Check For Updates on EditorFiles...''': checks for updates on IndustrialPark-EditorFiles and asks you to download the repository again if one is found.
* '''Check For Updates on Startup''': if this is checked, Industrial Park will automatically check for updates and ask you to update if it finds one on program startup.
* '''Check For Updates Now...''': checks for updates and asks you to update if one is found.
* '''Associate HIP/HOP files...''': creates an association for HIP and HOP files on your registry so they'll open directly with Industrial Park.
* '''About...''': display About box.
 
In the Display tab, you can choose which asset types are currently being displayed. You can also toggle [[#UI Mode|UI Mode]] (U).
 
===View Config===
The view config allows you to view and set Industrial Park's 3D view's current position, rotation, movement speed (separate for position and rotation), maximum draw distance and field of view and grid size for [[#Gizmos|gizmos]].
 
[[File:Industrial Park Screenshot5.png|600px|thumb|center|View Config window]]
 
===Projects===
Industrial Park projects are a resource to help users with level editing. A project file is a text (JSON) which saves an open instance of the program, meaning it contains:
* Opened HIP/HOPs and texture folders
* View position, rotation, FOV, draw distance, speed
* Settings sucha as wireframe, culling and custom colors
* Which assets are currently visible
 
All of those are restored from the file, meaning you can quickly restore Industrial Park to a previous state.
 
* '''New''': closes the current project instance and resets Industrial Park to default.
* '''Open''': choose a project JSON to open.
* '''Save''': saves the current instance as a project JSON, overwriting the previous one. '''Does not save edits on HIP/HOP files on the Archive Editors'''.
* '''Save As''': saves the current instance as a new project JSON. '''Does not save edits on HIP/HOP files on the Archive Editors'''.
 
* '''Auto-Save On Closing''': automatically saves the currently open project JSON when closing Industrial Park.
* '''Auto-Load On Startup''': automatically loads the previously open project JSON when opening Industrial Park.
 
If Auto-Save On Closing is enabled and no project JSON is specified, a file called ''default_project.json'' in the same directory as Industrial Park will be created and used. Project files can be opened and edited in a text editor, where you can manually edit them if you want to, although I don't recommend doing this.
 
===Archive Editor===
The archive editor is the main way to edit HIP/HOP archives in Industrial Park. You can open any amount of Archive Editors you want to, and each can have one HIP and/or HOP file open. If you wish to edit multiple HIP/HOP files for a level, for example, you can open two Archive Editors each with one of the files. Also, opening a third one with boot.HIP will allow you to view the objects whose models are contained there (such as spatula, underwear and shiny objects). You can drag a HIP/HOP file into the program window to open it in a new Archive Editor. The Archive Editor has many functions and operations it can perform on a HIP/HOP archive, all of which are listed below:
 
[[File:Industrial Park Screenshot3.png|626px|thumb|center|Archive Editor window]]
 
* '''File''' menu:
** '''New''': create a new empty HIP/HOP file in this Archive Editor. You'll be able to choose game and platform versions for the file, as well as choose the date which will be set in the headers (you can even type in your own text instead of the date!)
** '''Open''': choose a HIP/HOP file to open in this Archive Editor. If the file is from Scooby-Doo: Night of 100 Frights, a dialog will ask you to choose which platform that file corresponds to (GameCube, PS2, XBOX) as it's not possible to determine that from the file in that game.
** '''Save''': saves the currently open file and overwrites it.
** '''Save As''': allows you to pick a new destination to save the file.
** '''Close''': closes this Archive Editor and unloads the HIP/HOP file. This doesn't save the file.
Closing the Archive Editor through the X button will not close it, only hide it.
 
* '''Edit''' menu:
** '''Convert Archive''': This allows you to edit the PACK section of the HIP archive, which contains the information for the archive's platform, game and date. This means you can edit an existing archive's game and platform; Industrial Park will also convert the format of all assets to the new game/platform's format. The assets which will be converted are limited to the ones supported by the "Cross-Version Copy" function (which you can check in the table below). For the ones it cannot (such as sounds and MINF), it will ask you to choose a directory to replace the assets from; all HIP/HOPs in this directory and subdirectories will be scanned for the assets. Any assets which were not found will not be converted and the list will be shown at the end. Texture assets are not converted. This function is still experimental.
** '''Collapse Layers''': This will merge all of the archive's layers in a way that there is only one layer of each type, keeping all assets. Layers will be ordered by type in the same order the game originally does.
** '''Merge Similar Assets''': Checks if the archive has multiple assets of the types [[COLL]], [[JAW]], [[LODT]], [[PIPT]], [[SHDW]] and [[SNDI]], and merges their content into one single asset of each. This is also done upon Import HIP (detailed below).
** '''Apply Scale''': Allows you to apply a X, Y, Z scaling on all assets in the archive. All assets with a X, Y, Z position in the world will have this position multiplied by the factors you specify, and the same for all assets with a X, Y, Z scale. This function will not work well on any of the original game's levels since it does not scale the JSP models.
** '''Verify Archive''': Will create and display a report that searches the archive for any potential errors, such as invalid data, fields left blank and references to non existing assets. It's meant as an aid for custom level development, to find possible errors and help correct them. Note that this function's output is not perfect; not everything in the report is necessarily an error, and not all errors which might be present in the archive will necessarily be reported.
** '''Export Assets + INI''': Exports the currently open archive into a folder structure and INI file, the same output perfomed by [[HipHopTool]].
** '''Import HIP Archive''': Choose a HIP, HOP or Settings.ini file (from HipHopTool-style exported archive) to import. All layers and assets from the selected file will be added to the current one. Layers will be ordered by the Collapse Layers function. If an asset with the same ID is already present, you will be prompted whether to overwrite it or not, except for [[COLL]], [[JAW]], [[LODT]], [[PIPT]], [[SHDW]] and [[SNDI]], all of which will be merged into one single asset. This is useful for [[Asset porting]].
** '''Import Multiple Assets''': Choose any amount of files to use as external data for assets and import them. This is useful for assets which are commonly from external editors, such as textures, models and sounds. Imported sounds will automatically be sent to the [[SNDI]].
** '''Import Models''': This function allows you to select model files to import as new [[MODL]] assets. Industrial Park uses Assimp for model importing, so DFFs will be imported as they are, while other formats will be converted to DFF - using either OBJ or FBX is recommended. This does not work with rigged models and any rigging present in the files will be discarded during the conversion. The "Create PIPT" checkbox will enable vertex color display on the model.
** '''Import Textures''': This function allows you to select image files to import as new [[RWTX]] assets. You can choose a few settings for the textures and also if existing textures with the same names should be overwritten or not. Supported formats: BMP, GIF, EXIF, JPG, PNG, TIFF and RWTEX (exported from Magic.TXD).
** '''TXD Archive''':
*** '''Export (RW3)''': Export all of the archive's [[RWTX]] assets which contain .RW3 in their names into a single TXD file. This only works on GameCube HOPs.
*** '''Import (RW3)''': Choose a TXD file to import; rather than importing the entire archive, the tool will batch create one asset from each texture of the archive and import it as a RWTX asset. The .RW3 suffix will be appended to the texture names. Existing ones with matching names/IDs will be replaced. This only works with GameCube TXDs. Use it on custom TXDs or TXD previously exported with the previous function.
*** '''Export (No RW3)''': Export all of the archive's [[RWTX]] assets which don't contain .RW3 in their names into a single TXD file. This only works on GameCube HOPs.
*** '''Import (No RW3)''': Choose a TXD file to import; rather than importing the entire archive, the tool will batch create one asset from each texture of the archive and import it as a RWTX asset Existing ones with matching names/IDs will be replaced. This only works with GameCube TXDs.
 
* '''Layer''': assets in HIP/HOP archives are organized into layers. Each layer has a list of assets and if you're adding new assets you should add them to the appropriate layer (for example, models should go in a MODEL layer).
** '''Layer Box''': this will allow you to pick a layer and view its assets.
** '''Layer Type''': this will allow you to see and edit a layer's type.
** '''Add''': this will add a new layer to the archive.
** '''Remove''': this will delete the selected layer from the archive along with all its assets.
** '''Move Layer Up''': this will move the selected layer up in the list. This is useful as if you have Texture layers they must come before all others.
** '''Move Layer Down''': this will move the selected layer down in the list.
 
* '''Assets''': each asset is an individual in-game object with a type and function. You can click on an asset in the list to select it, or Ctrl + click to select multiple. Use the checkboxes next to the asset names to hide the asset from the view. The asset list box displays each asset's name, ID, type and size (in bytes) and you can sort the list ascending or descending by each column.
** '''Show by type''': this will allow you to see in the list only assets of a specific type, or all of them.
** '''Find Asset''': type an asset ID (preceded by 0x) or name here. If an asset with this ID or name is present, it'll be selected.
** '''Template Focus''': click on this to activate [[#Asset Templates|template]] placement focus for this Archive Editor.
** '''Import''' (Ctrl + I): displays the [[#Asset Header Editor|Asset Header Editor]], allowing you to create a new asset from an external file.
** '''Duplicate''' (Ctrl + D): duplicates the selected asset(s). The new assets will be a copy with a new name and asset ID.
** '''Copy''' (Ctrl + C)''': puts the selected assets on clipboard. You can paste them to a text file and save it, or paste in a different Archive Editor, for example.
** '''Paste''' (Ctrl + V): pastes the assets from clipboard. You must have previously copied assets. If the asset already exists, it'll be given a new name and asset ID. If the asset was originally from a different game or platform, Industrial Park will try to convert it to the new format if needed.
** '''Remove''' (Delete): deletes the selected assets from the archive.
** '''View''': will move the view to the selected asset's position. For most assets, it will show the asset from a short distance, but for the [[CAM]] asset, it will place the view in the exact position it assumes ingame for that camera.
** '''Export Raw''': allows you to export an asset's raw data to a file. If multiple assets are selected, you'll be able to export them to a folder.
** '''Edit Header''' (Ctrl + H): displays the [[#Asset Header Editor|Asset Header Editor]], allowing you to edit the selected asset's header.
** '''Edit Data''' (Ctrl + G): displays the [[#Asset Data Editor|Asset Data Editor]], allowing you to edit the selected asset's internal data. This editor is only available for [[#Asset Types|some of the assets]]; for the others, you must export the raw data and edit it externally in a hex editor. Pressing Ctrl + G on the Archive Editor or just G on the main form is a shortcut to this button.
 
Notes:
* Right-click on the asset list box to show the context menu, which has the same functions as the buttons.
* You can click on an asset in the view to select it in the Archive Editor, or Ctrl + click to select multiple.
 
====Asset Header Editor====
The Asset Header dialog will be shown when adding or editing an asset.
 
[[File:Industrial Park Screenshot4.png|600px|thumb|center|Asset Header Dialog]]
 
It allows you to edit the information of the asset's [[HIP#AHDR|AHDR]] entry. Header data is the same for all asset types.
 
* '''Asset Type''': the type of the asset. If you change this, be sure to import new asset data.
* '''Asset ID''': the [[Asset ID]] of the asset. It'll be calculated automatically from the asset name using the BDKR hash algorithm, which is the same one used originally by the developers, but you can edit it afterwards (don't do this for [[RWTX]] assets!)
* '''Flags''': these are dependant on asset type. It's best if you do not change them.
* '''Asset Name''': the name of the asset. The name and asset ID are important for identifying your asset in the archive and referencing it from other assets.
* '''Asset Filename''': the path to the asset's data for external data. This was used only during development and is ignored, so there's no need to bother with this.
* '''Checksum''': this was used only during development and is ignored, so there's no need to bother with this.
* '''Import Raw Data''': imports the asset's raw data from a file.
 
====Asset Data Editor====
The Asset Data editor will be shown when editing an asset's internal data.
 
[[File:Industrial Park Screenshot6.png|600px|thumb|center|Asset Data Editor for [[SIMP]]s]]
[[File:Industrial Park Screenshot7.png|600px|thumb|center|Asset Data Editor for [[TEXT]]s]]
 
This window has different properties for each asset, and sometimes looks completely different as it's adapted for each individual asset types's needs (such as [[CAM]], [[SND]], [[SNDS]] and [[TEXT]]). Not all of the assets' attributes are known, meaning you'll find a lot of fields labeled as unknown. This editor is not available for all asset types, and you can find the list for which it does work below.
 
The internal editor supports conversion between asset IDs and asset names. This means that, in any place you're supposed to type an asset ID, you can also type the name and the ID will be generated automatically from it; asset IDs will also be automatically replaced by names whenever possible. Type hexadecimal numbers starting with 0x to force use of an asset ID and not a name. There's also support for using the asset ID from a pasted asset; if you have an asset in your clipboard, pasting it in an asset ID field will collect the asset ID from it. This function can be turned off completely in the options: "Use Legacy Asset ID Format".
 
The button labeled "Find Who Targets Me" performs a backwards search of assets, finding which assets have a field or a link that targets "me" (for example, if you perform this on a MODL, you'll find which MINFs, SIMPs or PLATs use it).
 
====Link List Editor====
[[File:Industrial Park Screenshot11.png|600px|thumb|center|Link List Editor]]
 
The Link List Editor is the window that shows up when you click on the <nowiki>[...]</nowiki> box next to one of the Links field in the Asset Data Editor for [[Object Asset]]s. It allows you to add, remove, copy, paste, reorder and edit [[links]].
 
*'''Source Event''': the [[event]] which triggers this link when sent to this asset.
*'''Target Event''': the [[event]] sent by this link upon being triggered.
*'''Target Asset''': the [[object asset]] to which the event is sent.
*'''Argument Asset''': the asset ID which is sent as a parameter, formerly the fifth parameter of the link.
*'''Source Check''': the link will only be triggered if the asset which sent the source event matches this one. If null (most cases), any asset which sends the source event will trigger this link. Formerly, this was the sixth parameter.
*'''Arguments''': the 4 float parameters of the event. Some events read this as asset IDs so the hex checkbox allows that. Previous versions of Industrial Park had 6 parameters, but 5 and 6 were moved to Argument Asset and Source Check (above).
 
Target Asset shortcuts: Self (inserts sender asset as target asset) and +1 (increments number at the end of asset name by 1).
 
====Asset Types====
The following table shows the current status of each asset type for Industrial Park. Some are editable, some can be used only for display, and some must be edited externally. The table also shows if copying and pasting the asset to a different platform/game it was originally from is supported or not.
 
Line 268 ⟶ 33:
|| <span style="color:#007F00">Edit</span>
||
|| <span style="color:#007F00FF0000">YesNo</span>
|-
| align=center | [[BOUL]]
Line 597 ⟶ 362:
|}
 
* Cross-typeversion copy/paste of all other asset types is not supported.
* Assets which [[links]] (but not other fields) can be edited: [[CCRV]], [[DTRK]], [[DUPC]], [[GRSM]], [[LOBM]], [[NGMS]], [[PGRS]], [[RANM]], [[SLID]], [[SPLN]], [[SSET]], [[SUBT]], [[TPIK]], [[TRWT]], [[UIM]], [[ZLIN]].
* Assets which editing internally is not supported: [[ATKT]], [[BINK]], [[CSSS]], [[CTOC]], [[DEST]], [[MPHT]], [[NPCS]], [[ONEL]], [[RAW]], [[SPLP]], [[TEXS]].
* Many of the assets (such as FOG) have values which are RGBA colors. In those asset editors, click the <nowiki>[...]</nowiki> button next to the color value to show a color picker.
* Note: this table applies only for Battle For Bikini Bottom; some asset types have different formats through the games and are not supported.
 
====Gizmos====
Some asset types have a 3D transformation (position, rotation, scale) to place them in the world. It's possible to transform those assets with a gizmo instead of typing the coordinates in the asset data editor. The gizmos will affect the selected objects; there are 4 modes and you can press V to cycle between them, or right click and choose one in the context menu:
 
{| class="wikitable sortable"
|+
! Gizmo Type
! Description
! Works On
|-
| align=center | Position
|| Affects the position of the object in the world. Red, green and blue pyramids correspond to X, Y and Z axes. You can also move multiple assets at once.
|| All [[Placeable Asset|Placeable asset]]s, [[CAM]], [[LITE]], [[MRKR]], [[MVPT]], [[SFX]], [[DYNA]] types (Effect:Lightning, Pointer, Ring, Teleport, Vent and all Enemy:SB subtypes).
|-
| align=center | Rotation
|| Affects the yaw, pitch and roll of the object in the world. Red, green and blue tori (toruses) correspond to yaw, pitch and roll rotation axes. You can rotate multiple assets at once, but each rotation is performed locally.
|| All [[Placeable Asset|Placeable asset]]s, [[DYNA]] types (Pointer, Ring, Vent and all Enemy:SB subtypes).
|-
| align=center | Scale
|| Affects the scale of the object in the world. Red, green and blue boxes correspond to X, Y and Z axes, and the white box in the center will scale all 3 axes at once. You can scale multiple assets at once, but each scale is performed locally.
|| Affects scale on [[Placeable Asset|Placeable asset]]s except [[TRIG]], [[DYNA]] types (Ring and all Enemy:SB subtypes); for [[TRIG]], [[MVPT]] and [[SFX]] this gizmo will affect the radius property instead of the scale
|-
| align=center | Position (Local)
|| Transforms the object's position locally, meaning the axes are not the world's X, Y and Z but the object's local (rotated) axes. Red, green and blue pyramids correspond to X, Y and Z axes. You can only move one object at once with this gizmo. This is available for assets which have both position and rotation values.
|| Assets for which both Position and Rotation gizmos work; on others, will act like the normal Position gizmo.
|-
| align=center | Position (Box Triggers)
|| Affects the maximum and minimum boundaries of box triggers, and the position of the trigger's pivot point. Red, green and blue pyramids correspond to minimum X, Y and Z axes, cyan, magenta and yellow pyramids correspond to maximum X, Y and Z axes, and another set of red, green and blue pyramids will appear for the pivot. This gizmo will appear when you have exactly one box trigger selected.
|| Box [[TRIG]]s.
|-
|}
 
While moving an object with a gizmo, hold the T key to snap the movement to a 3D grid. The size of the grid (which defaults to (1, 1, 1)) can be set in the [[#View Config|View Config]] box. If the Y scale of the grid is set to 4, for example, the Y coordinate of the moved objects will always be rounded to the nearest multiple of 4.
 
[[File:Industrial Park Screenshot10.png|460px|thumb|center|Industrial Park's 4 gizmos]]
 
===Asset Templates===
Using templates is the fastest way to place new assets in the scene. You can either place new asset templates by right clicking the asset list in the Archive Editor and choosing the template you want to place, or you can right click on the view, choose one of the templates and use Shift + Right click to place the template in the scene (you must first activate template focus by clicking on "Template Focus OFF" in an Archive Editor, also make sure the correct layer for that asset type is selected). You can also make your own [[#User Templates|User Templates]]. Many default templates are composed of multiple assets (the Bus Stop template will place 7 different assets at once), but user templates can only have one.
 
Note: '''placing a template is not enough for the asset to function''' if an asset of the same class was not present in the level before (for example, placing a Fodder template in Bikini Bottom will crash the game unless you [[Asset Porting|port the Fodder assets]] to Bikini Bottom's HOP file first).
 
The following template categories are currently available:
* Stage Controllers: assets such as [[CNTR]], [[COND]] and [[PORT]], which you cannot see or touch and control the stage's functions.
* Placeable: a few other assets with a position in the world (such as [[CAM]] and [[TRIG]]) and also empty/generic versions of [[Placeable Asset]]s which you must set up yourself after placing.
* Battle For Bikini Bottom Templates
** Pickups and Tikis: Shiny objects, underwear, spatula, tikis. All assets are [[PKUP]] or [[VIL]].
** Enemies: all robots and jellyfish. All assets are [[VIL]] with [[MVPT]] and some have [[TRIG]]. Note: there are versions of Chuck, Monsoon and Slick with and without a trigger. If you add the versions without triggers, you must add the [[events]] which control them yourself, otherwise they will always be attacking the player.
** Stage Items: buttons, teleport box, bus stop, throw fruits. The assets are of varying types.
* Movie Game Templates
** Pickups and Crates: Manliness points, krabby patty, token, all crates. All assets are [[PKUP]] or [[DYNA]].
** Enemies: all stage variations of all enemies. All assets are [[DYNA]] with [[MVPT]].
** Stage Items: teleport box, port-o-head, throw fruits, ring. The assets are of varying types.
* Others: mostly HOP assets, such as [[PIPT]], [[LODT]], [[SNDI]].
 
There is a Templates: Persistent Shinies toggle in the Tools tab which sets whether the shiny object and manliness point templates will be set as Persistent or not (persistent assets have keep their state saved to the save file, so persistent pickups remain collected forever and never reappear).
 
====User Templates====
Aside from the included templates, you can also create your own templates to place.
 
[[File:Industrial Park Screenshot9.png|600px|thumb|center|User Template Manager]]
 
The User Template Manager is accessed through the Tools tab and the Copy and Paste buttons function the same as those in the Archive Editor: you can copy assets from the HIP/HOP and paste them here, and they'll be instantly available as templates. Double-click a template to rename it and press Delete to delete the template.
 
The template is identical to the asset that was copied (including all fields and links), and the only change made to it is that a new position will be assigned (only for assets with a position value; others will be simple copies).
 
User Templates are global and will be saved to Resources\UserTemplates and can be edited manually if you want to.
 
===UI Mode===
Line 674 ⟶ 373:
[[File:Industrial Park Screenshot8.png|600px|thumb|center|Industrial Park in UI Mode]]
 
===Research/Advanced===
This is a tab in Industrial Park with tools that don't fit elsewhere in the program. It's recommended to only use these tools without any Archive Editor window open.
 
====Asset ID Generator====
On this window, each line typed into the top text box will be run through the BKRD hash algorithm and an asset ID will be generated from it in the bottom text box.
 
====Event Search====
Use Choose Root Directory to pick a folder; all HIP/HOP files in the folder and any subfolders will be included in the event search. Click Perform Search and all events which match the set filters found in any of the files will be logged. You can filter the asset types of the sender and reciever assets (Null allows for any) and the events which are recieved and sent in each link (Unknown allows for any). For example: if you leave sender asset as TRIG, target asset as Null, recieve event as Unknown and target event as Enable, you will be returned all links which are sent from TRIGs to any assets which have Enable as the event being sent in any HIP/HOPs in the folder you choose.
 
==External Links==
* [https://github.com/igorseabra4/IndustrialPark/releases Get Industrial Park]
* [https://github.com/igorseabra4/IndustrialPark Source code on GitHub]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.