This page is part of the Essential Series modding tutorials. It will cover the basics of editing Assets with Industrial Park. If you want to see the more technical aspects of assets, check the Asset page.
Using the 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. Also, opening a third one with the boot.HIP file will allow you to view the objects whose models are contained there (such as spatula, underwear and shiny objects). You also can drag a HIP/HOP file into Industrial Park's 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 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! This is not actually used for anything in the game)
- 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.
HIP archives are composed of multiple layers, and each layer can contain many assets. Assets can be of various types, and each type should be in a layer of appropriate type (for example, texture assets should be in a TEXTURE type layer). They are the main thing that we'll be messing with when modding the game (you could say modding BFBB is basically editing assets). The assets contained in HOPs are usually textures, models, sounds and animations, which are the "resources" used to form levels, while the assets in HIPs are usually the data that composes the actual level. Nothing stops you from putting any kind of asset in either the HIP or the HOP, but I advise you to stick to the division the original game uses (the only thing you really cannot do is have sounds in both the HIP and the HOP, as that will glitch the game).
The Layer box allows you to choose a layer from the archive to display assets from. You can also edit the layer type, add or remove layers (removing a layer will delete all assets in it!) and reorder the list of layers by using the arrows.
Note: although you can add new layers and use the arrows to order them in any way you want, the game expects them in a specific order and might not be able to find the assets if that's different. Using the Collapse Layers function (explained at the bottom of this page) will automatically order the layers.
Each asset is an individual in-game object with a type and function. Each asset is uniquely identified by an Asset ID, which is usually generated from the asset's name using a hash function. Industrial Park will usually handle generating Asset IDs for you, so you can worry simply about their names, which should be unique. 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 (note that not all assets actually appear in the view; in this case, the checkbox does nothing). 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.
- Type: this box allows you to see in the list only assets of a specific type, or all of them.
- Find: 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 template placement focus for this Archive Editor.
- Import (Ctrl + I): displays the 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 all of them to a folder. (this does not convert assets such as sounds, textures and models to formats useable elsewhere)
- Edit Header (Ctrl + H): displays the Asset Header Editor, allowing you to edit the selected asset's header.
- Edit Data (Ctrl + G): displays the Asset Data Editor, allowing you to edit the selected asset's internal data. This editor is only available for 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.
- 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.
- The Update References on Copy/Paste option, available from the Options tool strip menu in the main form, enables references between assets to be automatically updated on Duplicate and Paste. This means that, if you copy assets A and B together and A has a reference such as a link or a field with B's asset ID, the pasted assets C and D will have these references updated to match each other.
Asset Header Editor
The header is the data that is present on all asset types. Thus, the asset header editor for all assets is the same. You will probably not be using this form often, except for editing asset names.
It allows you to edit the information of the asset's AHDR entry.
- 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. When creating new assets, give them identifiable names!
- 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 is probably the view you'll be seeing the most when using IP (other than the main window), as it is where all interesting data for assets is located. You can open it for selected assets from the Archive Editor or by pressing G on the main form.
This window has different properties for each asset, and sometimes looks completely different as it's adapted for each individual asset types's needs. We will talk about the editor for different types of assets further in the series. 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 here.
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" (with this checked, all asset IDs will be displayed and edited as hex numbers only).
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).
If you check the Hide Help in Asset Data Editors option, available from the Options tool strip menu, the help box in this window will be hidden. This box usually has comments about specific fields, so if you're unfamiliar with most asset types you should leave the option off.
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 through them, or right click and choose one in the context menu.
|Gizmo Type||Description||Works On|
|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 assets, CAM, LITE, MRKR, MVPT, SFX, DYNA types (Effect:Lightning, Pointer, Ring, Teleport, Vent and all Enemy:SB subtypes).|
|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 assets, DYNA types (Pointer, Ring, Vent and all Enemy:SB subtypes).|
|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 assets 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|
|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.|
|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 TRIGs.|
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 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.
Now, you know the basics of editing assets. This page might seem like it has a lot of information, but you don't have to remember everything right now, and you can always come back to it to review or find a function you need. Continue to the Asset Templates page for the best way to place new assets.
Other Archive Editor Functions
These are available from the Edit tool strip 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: see Custom Models.
- Import Textures: see Custom Textures.