---
name: "ipack"
section: "1"
platform: "linux"
package: "exult-studio"
version: "1.10.1-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/ipack"
---

# ipack(1)

Manipulate Flex files containing Shapes

## NAME

ipack - Manipulate Flex files containing Shapes

## SYNOPSIS

**ipack -c** *SCRIPT*

**ipack -x** *SCRIPT*

**ipack -u** *SCRIPT*

## DESCRIPTION

Flex files containing Shapes are used for the storage visual elements by the games *Exult* supports. While [**expack**(1)](/expack/1.md) can operate on such files, using **ipack** is more comfortable. It can extract images from the Flex file directly into PNG-format, and create or update Flex files from a list of PNG files.

The first parameter determines the mode of operation:

- **-c** Creation

  New Flex and palette files are created according to the instructions contained in the *SCRIPT* file.

- **-u** Update

  Works like Creation, but updates an existing Flex file.

- **-x** Extraction

  The contents of the Flex file described in the *SCRIPT* file are extracted as PNG is dissected into its contents, as described in this script file.

### Script File Format

Empty lines, and lines starting with a pound sign (**#**) are ignored.

The names of the associated Flex archive and palette files are given in lines containing optional whitespace, one of the tokens **archive** or **palette**, whitespace, and the filename.

Other lines define one shape each, and must begin with an image slot number, followed by a slash (**/**), the number of frames, a colon (**:**), and finally the PNG file specification. The numbers may be given either in decimal, in octal prefixed with **0**; or in hexadecimal prefixed with **0x**. The file specification consists of the filename *PREFIX*, optionally followed by a number and direction in brackets, optionally followed by whitespace and the word **flat**.

Per default, each shape corresponds to a number of PNG files (one for each frame) named *PREFIXnn***.png** with *nn* replaced by the frame number. If the optional bracket expression is used in the specification the Shape corresponds to a single PNG file instead. This file contains all frames, each of which is 8 by 8 pixels in size, arranged next to each other in a rectangular grid. The number in the bracket expression gives the size of this grid in the direction indicated. The direction can be either **down** or **across**.

## EXAMPLES

- **ipack -c island.scr**

  Creates a Flex file and a palette file as specified by **island.scr**.

- **ipack -x island.scr**

  Extracts all components described in **island.scr** from the Flex file given therein.

### Example script

\# script file for island.flx\
 archive island.flx\
 \# put the palette into this file\
 palette island.pal\
 \# the zeroth image has 32 frames in the files\
 \# zero00.png to zero31.png\
 0/32:zero\
 \# image 5 consists of 22 frames stored in file\
 \# five.png in a grid 5 frames across (which means\
 \# 5 rows of which the last holds only 2 frames)\
 5/22:five(5 across) flat\
 \# image 4 consists of 12 frames stored in file\
 \# four.png in a 3 by 4 grid\
 4/12:four(4 down) flat\
 \# images 1 to 3 are unspecified

## BUGS

Tiled Shapes are currently extracted into multiple PNG files, not a single file as expected during Create/Update.

## AUTHOR

This manpage was written by Robert Bihlmeyer. It may be freely redistributed and modified under the terms of the GNU General Public License version 2 or higher.

## SEE ALSO

[**expack**(1)](/expack/1.md), [**exult**(6)](/exult/6.md)
