Customizing Black & White

Gonna be some changes ’round here

While poking around the game Black & White’s directories, I discovered that the most of the objects in the different lands are initialized in plain text files. Being the curious type, I had to explore them. Here’s a few lines from Land1.txt:

CREATE_TOWN(0, "1865.61,2641.24", "PLAYER_ONE", 7, "NORSE")
SET_TOWN_BELIEF(0, "PLAYER_ONE", 9.238012)
CREATE_PLANNED_ABODE(0, "1922.48,2717.17", "NORSE_ABODE_WONDER", 916, 250, 0, 0)
CREATE_ABODE(0, "1755.09,2692.52", "NORSE_ABODE_C", 4710, 990, 0, 0)
CREATE_VILLAGER_POS("1762.85,2692.48", "1755.09,2692.52", "NORSE_FORESTER", 21)
CREATE_VILLAGER_POS("1762.85,2692.48", "1755.09,2692.52", "NORSE_HOUSEWIFE", 24)

While most of the commands are self-explanatory (albeit with cryptic parameters—why would a villager need not one but two positions? Is one where he or she lives?), a few had me scratching my head. What do CREATE_MOBILE_STATIC and CREATE_MOBILEOBJECT do? How does a MOBILEOBJECT differ from a MOBILE_STATIC? Time for research!

After modifying the files and restarting the game several dozen times, I’ve got a pretty good idea of what CREATE_MOBILEOBJECT and CREATE_MOBILE_STATIC do. Both create things you commonly run across, like fence segments and rocks, along with a few that are rare, like teddy bears. The following sections summarize what I’ve discovered about these commands.

y is height, x is east-west, z is north-south

A note on coördinates

Black & White’s 3D coördinate system uses (x,z) pairs for map coördinates, and y for elevation above sea level. The game begins at Land One’s southwestern tip. x increases eastward; z increases northward.


CREATE_MOBILEOBJECT

This commands looks like this:

CREATE_MOBILEOBJECT("x,z", type, ?, size)

Parameters to this command:

parameter purpose
x The object’s east-west position
z The object’s north-south position
type Which object to create (see MOBILEOBJECT types below); allowed values 0-19
? (I haven’t figured this one out—capacity? Y-rotation?)
size

This command accepts twenty different values (0-19) for object type. However, some of them duplicate others in appearance, although their Help description (found by pressing F1 while hovering over the object) can be completely different from what is displayed. (Most intriguing is the “kid cube”: a cube whose faces are black & white photos of a child. Is it the son of the game’s creator?) If the Help description differs from the appearance, I put the Help description in parentheses.

MOBILEOBJECT types

type appearance
0 barrel
1 Egyptian cart
2 pot
3 pot
4 kid cube (Food)
5 lump of poop
6 kid cube (Water jug)
7 arrow
8 kid cube (Ball)
9 cart
10 pot (Food)
11 pot ("Yes, wood")
12 pot (Food)
13 pot (Wood)
14 pile of Wood ("A pile of Wood, cast by Miracle")
15 crops
16 kid cube (various random humorous descriptions, e.g. "Maybe this is something we’ll put in the sequel")
17 white mushroom
18 blue mushroom
19 toadstool, red with white spots

CREATE_MOBILE_STATIC

The other obscure command is CREATE_MOBILE_STATIC, which has this syntax:

CREATE_MOBILE_STATIC("x,z", type, elevation, x-rotation, y-rotation, z-rotation, size)

Parameters to this command:

parameter purpose
x The object’s east-west position
z The object’s north-south position
type Which object to create (see MOBILE_STATIC types below); allowed values 0-60
elevation Height above landscape (not sea level)—objects set too high will float in air
x-rotation Rotation about the game’s east-west axis
y-rotation Rotation about the game’s up-down axis
z-rotation Rotation about the game’s north-south axis
size

MOBILE_STATIC types

This command creates objects of many different types: 61, to be precise. However, most of them are different varieties of rocks.

type appearance notes
0 short fence The description calls this type of fence “Celtic”
1 tall fence
2 gray boulder See Throwing Stones challenge in land 1; automatically replenishing?
3 kid cube Help: “Dead tree”
4 physical shield don’t know whether it’s active
5 Singing Stone vertical stone with rune on it
6 brown spot on ground See Singing Stones challenge in land 1
7 blank
8 bonfire
9 kid cube Help: “Creature cage”
10,11 shark head totem Help: “An idol. And it’s not you.”
12 kid cube Help: “Vortex”
13 kid cube Help: “Teleport site”
14,15 unbreakable rock Help: “This stone is crying”
16-47 stones Eight different shapes, each of which is available in four colors. To get a stone of shape (0-7) in color (0=gray, 1=greenish, 2=orange, 3=black), set type to 16 + shape×4 + color.
48 altar for sacrifice flat black stone
49 Gate Stone (ape) See Gate Stone challenge in land 1
50 Gate Stone (uncarved) See Gate Stone challenge in land 1
51 Gate Stone (cow) See Gate Stone challenge in land 1
52 Gate Stone (tiger) See Gate Stone challenge in land 1
53 beach ball
54 teddy bear See Grabbing challenge in the God’s Playground
55 die
56 bowling pin
57 bowling ball
58 sculpture of woman Help: “Sculpture in progress”
59 brown spot on ground See Singing Stones challenge in land 1
60 semitransparent octahedron Help: “A meteor”, though it appears in the game as Land 3’s Guardian Stones

Using these commands

Step #0: find the Land1.txt, Land2.txt, ... files and back them up! If you screw up, you’ll need to restore them, or else you may have to reinstall the game. The files are in the Scripts subdirectory of your Black & White installation.

Black & White loads each script file only once per game, the first time you visit that land. That’s not per game session, that’s per continuing game. If you’re playing Land 4, the only land you can change is Land 5. Any other modifications will be ignored. (This makes sense, since the files are used to initialize a land on your first visit to it. After you’ve uprooted trees, built new buildings, etc, the state of the land is saved along with your game, and reloaded at the start of the next session.) If you just want to experiment with the land files, make modifications to Land1.txt and start a new game.

Note that entering an invalid parameter (e.g., giving CREATE_MOBILE_STATIC a type of 61) will crash the game.

So: make your changes to a land file, start a new game, check your changes, and repeat until you’ve got it right. It’s a tedious process, but the results can be amusing.

There are plenty of things to modify that I haven’t yet mentioned: villagers and their abodes, the one-shot spells fireflies leave behind, town belief, forests and trees, the weather... there’s lots to play with.

Just be careful about what you change, or things could end badly.


Postscript, 2006-02-26. As you might expect, I wasn't the first person to decode this information.


Last updated 7 April 2007
http://www.rdrop.com/~half/General/GameTips/black.and.white.html
All contents ©2005 Mark L. Irons