VintageUTX · MCP server
Your AI now makes textures for Lineage II.
You describe what you want and attach the artwork. The AI calls the server, which hands back the .utx ready for the patch — with the highlight sweeping across the lettering and, if you ask, looping.
What it actually looks like
From request to file, without leaving the chat
The sequence below is what really happens, with measured timings.
Give the THRIVE logo a highlight sweeping across the lettering, looping.
You type
in your AI's window, the way you'd write to a person
Attach the art
PNG, JPG or WebP — whatever you already have
The MCP works
effect, DXT compression and packing
The .utx arrives
single-use link, ready for the patch
How long it takes
Measured end to end: effect, compression and packing of the .utx. Not an estimate.
| What was built | Time | .utx size |
|---|---|---|
| Still texture, RGBA8 | 0.02 s | 342 kB |
| Still texture, DXT5 | 0.08 s | 86 kB |
| Animated, 12 frames, DXT5 | 0.74 s | 1.0 MB |
| Animated, 28 frames, DXT5 | 1.62 s | 2.4 MB |
The queue runs two builds at a time, one per subscriber — nobody in a loop blocks your request.
Real examples
This is not a mock-up
The three below came out of VintageUTX, over artwork that is already on a live server. They are 24 frames on a loop, each at its real size — what you see is the file, not a demo video. The canvases differ on purpose: the client requires power-of-two sides, it does not require 4:1, and forcing everything onto one canvas would squash the art.

THRIVE
The request
A gold frame with the light running around it, fast, and a highlight sweeping across the lettering. Looping.
512×256 · 24 frames · 2 laps of the frame · “bright” mask on the lettering

L2DRAKE
The request
The same gold frame spinning, over the dark green background, without washing it out.
512×256 · 24 frames · 2 laps of the frame · the light doesn't wash the background

SIÓN
The request
An animated gold frame and a highlight on the metal of the typeface.
512×128 · 24 frames · 2 laps of the frame · lights only what was already bright
The frame is drawn INSIDE the artwork — the sides stay powers of two, as the client requires — and the light TRAVELS the perimeter instead of crossing the image in a straight line. That is two whole laps inside the loop (0.6s each), and whole on purpose: half a lap would make the loop jump on every pass. On the lettering the “bright” mask takes over, lighting only what was already bright and leaving the dark background untouched.
What it delivers
With the numbers from what was built in the examples above.
A highlight that lights only the lettering
Three masks: “bright” lights what was already bright (lettering, metal, trim); “alpha” only where the art is opaque; “all” the whole image. Angle, position and width you ask for in words — above, 25° and strength 0.75.
A loop that doesn't jump
The sweep starts and ends OFF the artwork, so the wrap is invisible. 24 frames at 20 fps was used above; 24 to 36 reads smooth. Every frame goes inside the same .utx, with the fps written into the package.
A frame that moves
Four styles: simple, double, L-corners only, and bevelled for a metal read — and the light can run AROUND it, as in the three examples above. Drawn INSIDE, because Lineage requires power-of-two sides: the dimensions never change. You pick the colour, the speed and how many laps fit in the loop.
Real alpha, end to end
Your artwork's alpha channel survives the whole path without being flattened: PNG or TGA in, effect, compression and .utx. Partial transparency — shadow, glow, feathered edge — stays partial inside the game instead of turning into a hard cut-out.
TGA quality, lossless
In RGBA8 the pixel that comes out is the pixel that went in: the same fidelity as a 32-bit TGA, which is how Lineage artwork is usually born. Use it when the art has fine gradients or soft alpha — DXT compresses well, but it is lossy.
DXT1, DXT3, DXT5 and RGBA8
Real compression through Compressonator, with mipmaps. The same still comes out at 342 kB in RGBA8 and 86 kB in DXT5 — four times less in the patch every player downloads. DXT1 without alpha, DXT3 with hard alpha, DXT5 with soft alpha.
It warns you when the client would refuse
A side that isn't a power of two works in RGBA8 and BREAKS in DXT. The server says so in the reply, before you find out from a black texture inside the game.
Encrypted file, single download
It comes out exactly as the client expects, with the package and texture name you asked for. The link works once and the server deletes the file — your artwork isn't kept.
Two plans, no catch
Cancel any time. Access runs to the end of the period you paid for.
15 textures
one-off payment
- 15 textures, no subscription
- They don't expire: use them when you need
- Still or animated
- 1 authorised AI at a time
Unlimited
- As many textures as you need
- Builds the client's splash screen
- Queue of 2 simultaneous builds
- Priority support
Before you ask
- Which AI does it work with?
- Claude Code, Codex, GPT and others — any model that speaks MCP. It's a remote address you paste into your AI, not a program to install.
- Do I need a server or a VPS?
- No. The work happens on my server; your machine only sends the request and receives the file.
- Does the 15-pack expire?
- No. It's a one-off payment and the 15 sit in your account until you use them — it's there to try without subscribing to anything.
- What is the splash screen, and why only on unlimited?
- It's the image the player sees while the client loads. Its format is fussier than a plain texture — premultiplied alpha in one version, a 255-colour palette with a chroma key in the other, and the client looks for several numbered ones. It's work of a different order, which is why it sits on the monthly plan.
- How many textures does an animation count as?
- A short animation counts as one. Very long ones, over eight frames, count proportionally — it's real work on the server, and your AI tells you the cost before building.
- Can I share the subscription with a friend?
- Each plan authorises one AI at a time. Authorising on a second machine disconnects the first — so sharing annoys both of you constantly, by design.
- What if a build fails?
- It doesn't count. The hold is placed before building and any error releases it — you don't lose a texture to a failure on my side.
- Does my artwork stay on your server?
- No. The file is deleted after delivery, and the download link works only once.
Stop converting DDS by hand.
Subscribe, paste the address into your AI, and ask for the next texture in plain words.