windowcat, home

Modding

Cats, furniture and rooms for windowcat, made by players.

Download the Mod Kit

windowcat-modkit.zip, 0.9 MB

Cats

Cats are made in the game's Cat Creator and shared with its Share button. Subscribe to one and it appears in every cat picker under From the Workshop. Edit it and the game saves a copy of your own.

Furniture and Decorations

Items are furniture and decorations: a model in its own colors, and what the cats do with it (scratch it, eat from it, sit in it). Subscribed items are on the Catalog's Workshop shelf, ready to put in the room or on the desktop.

Rooms

Rooms are a room's look and, if the maker included them, the furniture and decorations in it. To share your own room, open Redecorate in the game and choose Share This Room.

Making Mods for windowcat

A mod for windowcat is a pack: a folder with a piece of furniture or a decoration, a look for the room, or a cat. You can use your own packs straight away and share them on the Steam Workshop. This guide starts with a piece of furniture made in Blender with the windowcat Modding Kit, then covers the rest.

Your First Mod

About ten minutes. You need windowcat and Blender 4.2 or newer (free from blender.org).

1. Get the Kit

Download windowcat-modkit.zip and unzip it anywhere. It holds:

  • windowcat_kit.py, the Blender add-on;
  • starter.blend, a file ready to work in;
  • templates/, packs to copy if you aren't using Blender;
  • README.md, the short version of this page.

2. Install the Add-on

In Blender: Edit > Preferences > Add-ons. Click the arrow at the top right of the list, choose Install from Disk, pick windowcat_kit.py, and tick Windowcat Modding Kit. You do this once.

3. Open the Starter File

Open starter.blend.

The starter file: the example Toadstool Lamp beside the game's cat, wire boxes the size of the game's bowl, cushion and scratching post, the floor grid and the Front marker

What is in it:

  • Your Piece: the example, a Toadstool Lamp built from a few cylinders and spheres with plain colored materials. Its cap glows. It is already selected.
  • Reference (Not Exported): the game's cat at its usual size, standing (about 12 long with its tail and 10 tall to the top of its head); wire boxes the size of the game's own bowl, cushion and scratching post; the floor's largest footprint (30 by 30) as a grid; and the Front marker. Front is the side the room's camera sees, toward you in Blender's Front view (Numpad 1). None of this can be selected or exported.
  • Reference Wall (for Wall Pieces): a wall, hidden. Click its eye in the Outliner to show it.
  • Room Camera: Numpad 0 shows your piece from the room's angle.

Press N to open the sidebar and pick its Windowcat tab.

4. Make It Yours

Change the example, or delete it and build your own in the Your Piece collection. Some first changes:

  • Select the cap, open the Material tab and change its Base Color and Emission Color.
  • Select every part (A) and scale them together (S).
  • Add a part: Shift+A > Mesh, then give it a material with a color.

Model in Blender's units: one Blender unit is one unit in the game, and the reference cat shows how big that is. Leave the colors to the materials: the kit paints each face with its material's color when it exports, so there is no vertex painting to do.

5. Fill In the Pack

The Windowcat tab has three panels.

Pack

  • Name: what the Catalog calls it, in Title Case. At most 40 characters.
  • Id: the pack's id, made from the Name as you type it (lowercase, with hyphens). You may change it; the arrows button makes it from the Name again.
  • Kind: Furniture or Decoration (stands on the floor; the cats walk round it), Wall Piece (hangs on the room's back wall) or Floor Mat (lies flat; the cats walk over it).
  • What Cats Do: Nothing, Scratch It, Eat from It, Sniff and Bat It (Plant), Sit in It (Box) or Sleep on It (Cushion). Only for furniture and decorations.
  • Cats Can Jump on Top: for a piece the cats do nothing else with, whether they may jump up and sit on its top.
  • Also on the Desktop: whether it may go out on the Windows desktop as well as in the room.
  • Occasion: the Catalog's heading for a decoration or a mat: Everyday, Valentine's Day, Halloween, Christmas and the rest.
  • Darken Toward the Floor: shades the parts near the floor a little darker, as the game's own pieces are. On by default.

Sizes and Touch Points (closed at first): what the kit measured from the model, and Set by Hand to use your own numbers instead.

Export: the folder packs go to (empty is windowcat's mods folder), Check, Export Pack and Open Folder. What Check and Export Pack found is listed underneath, one line each.

For the example: Name Toadstool Lamp, Kind Decoration, What Cats Do Nothing, Occasion Everyday.

6. Check and Export

Press Check. It looks at the selected objects (with nothing selected, the Your Piece collection) and lists what it found: the piece's size, its triangles and vertices against the game's limits, which parts glow, what the cats will do with it, and anything it will change. It writes nothing.

Press Export Pack. On a copy of your objects (your scene is never changed) the kit applies their modifiers and transforms, joins them, paints the colors in, stands the piece on the floor centered on its origin, and writes three files to %APPDATA%\studio.rokuro.windowcat\mods\toadstool-lamp\:

  • model.glb, the model, exported with the settings the game reads;
  • item.json, the pack's manifest;
  • preview.png, its picture for the Catalog and the Workshop, drawn in the game's style:
The Toadstool Lamp's preview.png as the kit draws it: a red-orange glowing cap with cream dots on a pale stem and a green base, outlined, on a transparent background

The last lines say how big the files came out and where they went.

7. Put It in Your Room

In windowcat, open the Catalog on the side table by the window, pick the Workshop shelf and press Reload. Your piece is listed with its picture: press Room to put it in your room, or Desktop to put it beside the bed on the taskbar. Drag it where you like.

The room with four pieces made with the kit: a calico loafing on a footstool, an orange tabby sitting in a wicker basket, a tuxedo on a striped pouf, a glowing toadstool lamp, and a glowing star on the wall

Each time you export again, press Reload to see the change.

The desktop's taskbar with the pouf, the basket with a cat in it, the toadstool lamp and the footstool beside the cat bed

8. Share It

With Steam running, open the Catalog's Workshop shelf again: under Your Packs, press Share beside your pack. It goes up to the Steam Workshop with preview.png as its picture. The first time, Steam keeps it hidden until you accept the Workshop agreement on its page, which opens for you. Sharing the same pack again updates it.

Making Something Cats Use

Set What Cats Do and the kit measures what the cats need from the model:

What Cats DoWhat the cats doWhat the kit measures
Scratch ItScratch it standing beside it, and climb to its top.The post's radius halfway up, its top, and its top platform's width.
Eat from ItEat from it, then lick their lips.The rim's radius.
Sniff and Bat It (Plant)Sniff it and bat at its leaves; it sways.The leaves' radius.
Sit in It (Box)Jump in and loaf on its floor.The floor inside, the walls' height and the inside's width.
Sleep on It (Cushion)Knead it and nap on it.Its top.

A box must be open at the top: the kit finds its floor by looking straight down into the middle. A cushion's top is where it is at its middle.

How wide a top has to be:

  • In the room, the cats get onto a top only when the piece is more than 5 wide (a box or a cushion of any size).
  • On the desktop, a box's inside has to be more than 7.8 across, a cushion or another top more than 7.1 wide, a scratching post's platform more than 6.7 across. A smaller one works in the room but not out on the desktop.

Check says so when a piece is narrower than that.

Wall Pieces

Set Kind to Wall Piece. A wall piece hangs from its origin: put the origin at the top middle, where it would hang from a nail, with the piece below it and in front of the wall. Show the Reference Wall collection to see the wall: it is the plane at the origin, and the front is toward you in the Front view.

A wall piece, a glowing star on a cord, in front of the starter's wall with its origin marked at the top of its hook: the hanging point

The kit centers a wall piece across its origin and moves it back until it touches the wall. A wall piece may reach up to 10 above its hanging point; if all of it is above the origin, the kit moves it down so its top is at the origin. Wall pieces don't go on the desktop, and the cats leave them alone.

Glow

A part glows when its material's Emission Strength is above 0: it is drawn in its own light, unlit by the room, and flickers a little, like the game's candles and lanterns. At 0.9 and above it glows fully; under that, partly. Its color is the material's Emission Color, or its Base Color if the Emission Color is left white. Glowing parts have no outline.

Colors Without Painting

Each face takes its material's color:

  • the Principled BSDF's Base Color, or an Emission or Diffuse shader's Color;
  • if the Base Color is left at Blender's default grey, the material's Viewport Display color (what Solid view shows);
  • if the color comes from an image texture or other nodes, the Viewport Display color, with a note. Textures aren't used: the game draws every piece in its own cartoon style.

A part with a color attribute of its own (painted in Vertex Paint) keeps it: the kit uses it as it is. A part with no material is a warm tan.

Flat colors, a few to a piece, read best at the game's size. The game adds its own shading, outline and grain.

Size and Place

  • One Blender unit is one unit in the game. The reference cat is about 12 long and 10 tall to the top of its head; the game's bowl is 3.9 across, its cushion 8.8, its scratching post 15 tall.
  • A piece is at most 30 units any way.
  • The front is Blender's Front view (Numpad 1): that side faces the room.
  • You don't need to place the origin exactly: the kit centers a floor piece on its origin and stands its lowest point on the floor, in the export only. The game measures the footprint the cats walk round from the origin out, so a centered piece has the tightest one.
  • Modifiers, transforms, linked duplicates and mirrored objects are all fine: the kit applies them on its copy.

Rooms

A room pack is a look for the room (a color for each surface, a wallpaper and a rug pattern, on one of the three room styles), and may bring furniture. Make one in the game, with no kit: decorate your room, click a wall to open Redecorate, and under Share This Room give it a name and press Save as Pack, or Share on the Workshop to save it and share it at once. templates/room/house.json is a room pack to copy and edit by hand.

Cats

A cat pack is a cat exactly as the cat creator exports it. Make your cat in the creator and press Share to put it on the Workshop, or Export for its file. templates/cat/cat.json is one to copy.

Without Blender

Any program that exports a binary glTF (.glb) can make a piece. Start from templates/item/: replace model.glb with yours, and edit item.json. The model needs a color attribute (vertex colors), no textures, its origin at the middle of its footprint on the floor and its front facing the room. templates/README.md lists every field.

Limits

At most
Size30 units any way
Triangles60,000
Vertices, as exported40,000
model.glb4 MB; 4 meshes, 8 parts with different materials, 64 objects (the kit writes one of each)
preview.png512 KB and 1024 by 1024 px
item.json64 KB
Name40 characters
Id48 lowercase letters, digits and hyphens, not starting with a hyphen
A wall piece10 above its hanging point

A piece with no textures and a few thousand triangles is plenty: the game's own are under 15,000.

Troubleshooting

The kit's messages (in the Export panel):

MessageWhat to do
Nothing is selectedSelect your piece's parts in the viewport, or put them in a collection named Your Piece.
It is 34 wide, … 30 units is the most any wayScale the piece down.
It has … triangles / It would export about … verticesAdd a Decimate modifier, or use Shade Smooth where faces don't need hard edges (each hard edge doubles the vertices along it).
… gets its color from an image textureSet the material's Viewport Display color to the color you want.
Cats get up onto a top only when the piece is more than 5 wideMake the piece wider, or turn off Cats Can Jump on Top.
On the desktop, cats … only when …Make it wider, or let it be: it works in the room.
Cats sit in a box on its floor, … near its topOpen the box at the top: the kit looks straight down into its middle for the floor.
Moved … so it stands on the floorNothing to do: the kit placed its copy.
The picture couldn't be madeThe pack works without preview.png; Blender couldn't render here.

The game's notes (on the Catalog's Workshop shelf, under the tools, as "Pack Name: note"):

NoteWhat it means
the model has images (or textures)The model.glb has textures. Export with the kit, or with materials off.
the model requires extensions windowcat doesn't loadIt was exported compressed (Draco or meshopt). Turn compression off.
the model refers to another fileIt is a .gltf with a separate .bin. Export glTF Binary (.glb).
the model has more than 60,000 triangles (or 40,000 vertices)Lighten the model.
the model is bigger than 30 unitsScale it down.
the model reaches below the floor (y 0)Its lowest point is under its origin: move it up, or export with the kit.
the model reaches behind the wall (z below 0)A wall piece is behind its origin: move it forward, or export with the kit.
it has no model.glbThe folder has item.json but no model.
another pack has the id …Two packs share an id: change one. A pack in your mods folder wins over a Workshop one.
the pack's id should be lowercase letters, digits and hyphensFix id in item.json.
its preview should be a PNG at most 1024 px a side (or is over 512 KB)Make the picture smaller, or leave it out.
the cats don't know how to use …uses is misspelled: scratchPost, bowl, plant, box or cushion.

A pack that can't be used is left out and never stops the others loading.