Expanding World of Goo

The pages below describe how to add new levels and addins to your game. If you're a developer interested in creating your own addins, check out the developers section.

GooTool

GooTool is a utility to extend your World of Goo experience, enabling you to install new levels and mods to provide further gameplay, and to view and share your World of Goo accomplishments.

Features

  • Profiles - View your profiles, view your tower image and stats, backup and restore your profile, move it between machines, and upload to your tower on this website.
  • Addins - Install and uninstall mods and new levels within the game.
  • Options - Configure certain aspects of the game that you can't easily do otherwise - for example changing resolution or removing the loading screen video.
  • Translation - An advanced mode for those interested in translating the game into their own language.

How does it work?

Options are manipulated in your config.txt directory. Addins are merged by decrypting World of Goo files and merging them with addins in the addin file format.

What now?

Building GooTool

GooTool is written in pure Java. You can get the source code from the GooTool download page.

Requirements

You will need:

  • Java 1.5+ (1.5.x recommended for building)
  • ANT
  • launch4j if you wish to build the Windows EXE
  • NSIS if you wish to build the Windows installer

The GUI forms were created using IntelliJ IDEA. You will need IDEA in order to modify them easily; a trial version can be downloaded from JetBrains. However you do not need IDEA simply to compile GooTool, as I have included javac2.jar in lib/build/: this is the IDEA Java compiler, which injects code for the GUI forms.

All other required libraries for building are in lib/build. Run-time libraries are in dist_src/common/lib.

Building

Create a file ant.properties in the top-level directory setting the following variables to appropriate values. Only jdk.home is required for simple builds, the rest are for building distributions or tagging releases.

Example for Windows:

jdk.home=c:/Program Files/java/jdk1.5.0_17
launch4j.dir=C:/Program Files/Launch4j
nsis.dir=C:/Program Files/NSIS

Example for Linux:

jdk.home=/usr/lib/j2sdk1.5-sun
launch4j.dir=/home/david/src/launch4j
nsis.dir=/home/david/src/nsis/nsis-2.42
svn.base=file:///svn/gootool

For building, I use the 1.5 JDK to maintain Mac compatibility.

Run ant with one of the following targets:

recompile (default)
Cleans everything and compiles it again (runs clean then compile)
dist
Builds all platform distributions (runs dist-linux, dist-macosx and dist-win32).
tag-release
Tags a release in Subversion(for me only) - only works under Linux

There are other targets but they're generally just called by the above.

Development

The master bug/feature tracker is at /issues (you can also use /mantis to see it better without the goofans theme).

There are a lot of TODOs in the code. The whole thing is rather messy due to it being a long evolution of a bunch of prototype code, rather than a result of actual design. In particular, Controller is horrendously monolithic, and a major refactor is needed soon to support retargeting the build to something other than the local machine (e.g. iPhone).

Please feel free to submit patches by e-mail, preferably against the latest version.

IntelliJ IDEA

The kind folk at JetBrains have provided a full Ultimate edition license for bona fide GooTool developers. Contact davidc for the license key.

Installing goomods

What is a goomod file?

A "goomod" file is a complete packaged addin for World of Goo. Most goomods contain new levels or new ball types for you to play with.

To install a goomod, you need to use GooTool, which can be downloaded freely from this site.

How do I install GooTool?

Follow the installation instructions for your computer on the download page. You may need to install Java too.

The first time you run GooTool, you will be prompted to choose a location for your custom World of Goo. GooTool does not modify any original game files, so instead you must choose where to make a copy. GooTool then installs your addin into this copy.

How do I install a goomod file?

Once GooTool is installed, simply click on "Install Now with GooTool" from any addin page on this website. When prompted, choose to "open" the file with GooTool rather than save.

GooTool will ask you to confirm you wish to install the addin. Then simply click "Save and Launch", and it will launch your custom game, complete with the new addin. The first time you save may take a few minutes while the game is copied.

How do I use the installed addin?

If you installed a new level, it will appear in the top left of Chapter 1.

If you installed another type of addin, check the information page for that addin. For example, ball graphic addins generally change the appearance of your balls in the World of Goo Corporation.

Technical details

For the technically curious, and for those interested in developing their own World of Goo addins, there is a description of the goomod file format.