Koja Scripts
Cloth Tool

Team Collaboration

The Cloth Tool has Git‑based collaboration built in, so a team can work on the same pack without emailing folders around — and you get a full, restorable history of every change.

Team collaboration

Everyone works on the same pack, and every change is kept as a version anybody can go back to. There is nothing to set up by hand — no repository to create, no token to generate, no folders emailed around.

A shared pack is called a party.

Starting a party

Start a party and you own it. Your Discord sign-in is all it takes: no account to connect, no token to create, nothing to name.

Publishing the pack sends everything you have saved, so every version is kept somewhere safe and anybody you invite can open it.

Inviting people

Two ways, and they behave differently:

  • Discord ID — puts the invite straight into that person's app. They see it waiting when they open the party window.
  • Invite code — one-time, and you can revoke it.

Joining works immediately. There is no waiting for the host to approve anything and no requirement that the host has the app open.

The party window

Four tabs.

Changes

Every file that moved since your last version, grouped by garment, with its size before and after — an optimised texture reads as 8.0 MB → 2.1 MB. Garments are marked A, M or R — added, modified, removed — against your last saved version.

Versions

Save a version records where the pack is now. Sync brings in everyone else's and sends yours; it tells you what it did — brought in 3, sent 1 — rather than finishing silently.

A version row opens up to say what changed: which garments were added, removed, renamed or edited, and how the pack's size moved. Renaming an item keeps it the same item rather than reading as a deletion.

ActionWhat it does
LookOpens a garment as it was in an older version, in its own window, before you decide anything.
Restore one garmentPuts that garment back. Everything else stays where it is, and both versions of the file keep existing.
Undo last versionNothing is deleted, and the undo can itself be undone.

A restore checks it can finish before touching anything, and offers to download whatever it needs first.

People

Everyone who has joined. A filled dot means they are in the app right now; a hollow one means they were.

Leave the party — your copy of the pack stays on this machine.

Storage

What this machine holds, what the pack and its history weigh, how much of your allowance is used, and what has not left this machine yet. Every number says where it came from.

  • Download all — pull the rest of the pack down. When all of it is here you can work and build offline.
  • Clean up — clears the project folder. Never touches the built pack or the version history.
  • Free up — for the host: removes only files no version of the pack has ever used. It tells you how much it found before removing anything, and never touches a file a version still needs.

Working while it downloads

Join a party and the pack opens straight away. Each garment's files arrive when you click it, with the next few fetched ahead of you, and the rest fills in quietly in the background. On a metered connection you can switch that background fill-in off.

A 400 MB upload interrupted by a crash or a dead connection resumes where it stopped. Nothing is published until every file is stored, so a teammate never pulls a half-uploaded pack.

Notifications

Point a party at a Discord channel and it posts when somebody syncs a version or builds the pack. The host sets it, the address is never shown in full, and sending can never slow down or break a sync.

Just you

Keep a private history gives you versions on this machine alone — no party, no upload, no premium licence. Useful for the same reason version history is always useful: you can go back.

The window will remind you that a local-only history exists in one place only. If the machine goes, so does it.

Parties made before KOJA storage

Older parties are hosted on GitHub and keep working exactly as they did for everybody who already has access. They cannot take on new members — start a new party for that.

Those parties also inherit GitHub's own storage limit, which is why a large pack there may report being out of space. New parties keep their assets in KOJA storage and do not hit it.

If a GitHub-hosted party asks you to reconnect your account, that is what it means — the connection needs attention, not your password.

  • Sharing packages — sending one garment or a whole selection as a .kct file, without a party.
  • Building — what a party builds into.
  • 3D Preview — The centre panel renders your garment on an actual mpmfreemode01 / mpffreemode01 ped, with your real .ytd textures applied.
  • Building — When your project is ready, hit Build and choose the FiveM target.
  • Importing — Select an item and click Import .ydd / .ytd (or right‑click an item → import).
  • Interface — The main window is split into three panels.
  • Items and Textures — An item is one garment or prop.
  • Texture Optimization — Hand-made clothing packs are usually bloated and full of textures the game doesn't like — odd sizes, no mipmaps, wrong compression.
  • About the Tool — back to the section overview