All Exclusive SystemsSemua Sistem Eksklusif

👗 Costume Shop · SQL Catalogue · Admin PanelToko Costume · Katalog SQL · Admin Panel

Costume Exchanger Costume Exchanger

Every costume shop script sold today keeps its item list inside the script. Adding one costume means editing a file and running @reloadscript on a server full of people — so owners batch it up, put it off, and the shop goes stale.
This one keeps the catalogue in SQL. A GM adds a costume, changes a price or hides an item from inside the game, while players are online, and the menu reads the change the moment it opens.
Hampir semua script toko costume yang beredar menyimpan daftar itemnya di dalam script. Menambah satu costume berarti mengedit file lalu menjalankan @reloadscript di server yang lagi ramai — jadi pemilik server menunda-nunda, dan tokonya jadi basi.
Yang ini menyimpan katalognya di SQL. GM menambah costume, mengubah harga, atau menyembunyikan item dari dalam game, sambil pemain online, dan menunya langsung membaca perubahan itu begitu dibuka.

  • ✔ Script only — one NPC file. No C++ patch, no client edit.✔ Script saja — satu file NPC. Tanpa patch C++, tanpa edit client.
  • ✔ Manage it live — no @reloadscript to add, reprice or hide a costume✔ Kelola sambil jalan — tanpa @reloadscript untuk menambah, mengubah harga, atau menyembunyikan costume
  • ✔ Fills from your item_db — a bulk tool reads your own database, so nothing arrives mis-priced✔ Diisi dari item_db milikmu — ada tool massal yang membaca database sendiri, jadi tidak ada yang salah harga
Costume Exchanger — browsingCostume Exchanger — sedang menelusuri
What Makes It DifferentYang Membuatnya Beda

A Shop That Grows Without a Text EditorToko yang Bisa Tumbuh Tanpa Text Editor

The costume list is the part that keeps changing — and in an ordinary script it is the part that is hardest to change. Moving it into SQL turns a risky file edit into a menu click, and everything else here is built around that one decision. Daftar costume adalah bagian yang paling sering berubah — dan di script biasa justru bagian itu yang paling repot diubah. Memindahkannya ke SQL mengubah edit file yang berisiko menjadi sekali klik menu, dan semua fitur lain di sini dibangun di atas keputusan itu.

🗃

The Catalogue Lives in SQLKatalognya Hidup di SQL

Every item sits in a costume_shop table, not in a setarray line. The menu re-queries it each time it opens, so a change made thirty seconds ago is already live for the next player who talks to the NPC.Setiap item tersimpan di tabel costume_shop, bukan di baris setarray. Menunya membaca ulang tiap kali dibuka, jadi perubahan tiga puluh detik lalu sudah berlaku untuk pemain berikutnya yang bicara ke NPC.

👀

Try It On Before PayingCoba Dulu Sebelum Bayar

Preview puts the costume on the character's actual body, and the real look is restored automatically — including when a player closes the window with the X instead of choosing anything. Nobody gets stuck wearing a preview.Pratinjau memasang costume di badan karakter sungguhan, dan penampilan aslinya dikembalikan otomatis — termasuk saat pemain menutup jendela dengan tombol X tanpa memilih apa pun. Tidak ada yang tersangkut memakai pratinjau.

🔍

Search by NameCari Berdasarkan Nama

Type two letters and the shop finds it. Once a catalogue passes a few hundred items, paging is not a way to find anything — and a costume nobody can find is a costume nobody buys.Ketik dua huruf dan tokonya menemukannya. Begitu katalog lewat beberapa ratus item, membuka halaman satu per satu bukan lagi cara mencari — dan costume yang tak bisa ditemukan adalah costume yang tak terbeli.

📑

Pagination That Holds UpHalaman yang Tetap Rapi

Items per page is a setting (5–20) and there is a jump-to-page, so the same NPC is comfortable with twenty costumes or three thousand.Jumlah item per halaman bisa diatur (5–20) dan ada lompat-ke-halaman, jadi NPC yang sama nyaman dipakai untuk dua puluh costume maupun tiga ribu.

🎮

A Ten-Menu Admin PanelAdmin Panel Sepuluh Menu

Add, reprice, move, hide, delete, price a whole slot at once, clean out invalid entries, change the display settings, and flag Special — all from the same NPC, gated behind a GM level you choose.Tambah, ubah harga, pindah, sembunyikan, hapus, samakan harga satu slot sekaligus, bersihkan entri tak valid, ubah pengaturan tampilan, dan tandai Special — semua dari NPC yang sama, dikunci di level GM pilihanmu.

A "Special" Showcase for Your Own PacksEtalase "Special" untuk Paket Buatanmu

A fifth category that is not a slot — it is a separate flag, so an item you feature there still appears in its real Upper / Middle / Lower / Garment list too. Nothing disappears from the normal browse.Kategori kelima yang bukan slot — ini penanda terpisah, jadi item yang kamu tampilkan di sana tetap muncul di daftar Upper / Middle / Lower / Garment aslinya. Tidak ada yang hilang dari penelusuran biasa.

🎯

The Slot Detects ItselfSlotnya Terdeteksi Sendiri

You type an Item ID; the NPC reads that item's own Locations out of item_db and files it under Upper, Middle, Lower or Garment by itself. Mis-filing a costume by hand is one of those mistakes you only notice from a player's complaint.Kamu cukup mengetik Item ID; NPC membaca sendiri Locations item itu dari item_db lalu menaruhnya di Upper, Middle, Lower, atau Garment. Salah menaruh slot secara manual itu tipe kesalahan yang baru ketahuan dari keluhan pemain.

🛡

The Price Is Re-Checked at the ClickHarga Diperiksa Ulang Saat Diklik

A player browsing when you drop a price cannot hold the old screen open and buy at the stale number — the price is read again the instant Buy is pressed.Pemain yang sedang membuka daftar saat kamu menurunkan harga tidak bisa menahan layar lama lalu membeli di angka basi — harganya dibaca ulang tepat saat tombol Beli ditekan.

🧹

Broken Rows Are Blocked, Not SoldBaris Rusak Diblokir, Bukan Dijual

Delete an item from item_db and its shop row becomes harmless: it shows as unavailable and cannot be bought. An admin menu then sweeps the whole catalogue and tells you how many there are before removing them.Hapus item dari item_db dan barisnya di toko jadi tidak berbahaya: tampil sebagai tidak tersedia dan tidak bisa dibeli. Lalu ada menu admin yang menyapu seluruh katalog dan memberi tahu jumlahnya sebelum menghapus.

📝

Every Admin Action Is LoggedSetiap Tindakan Admin Tercatat

Each change is written to the map-server log with the GM's name, the item, and the old value next to the new one. With more than one GM, that is the difference between knowing and guessing.Tiap perubahan ditulis ke log map-server lengkap dengan nama GM, itemnya, dan nilai lama di samping nilai baru. Kalau GM-nya lebih dari satu, itu beda antara tahu dan menduga-duga.

The One Decision That MattersSatu Keputusan yang Menentukan

Same Job, Two Very Different DaysPekerjaan Sama, Dua Hari yang Sangat Berbeda

This is the whole pitch in one table. Not a feature war — just what actually happens when you want to sell one more costume tonight. Inilah seluruh isi tawarannya dalam satu tabel. Bukan adu fitur — cuma apa yang benar-benar terjadi saat kamu ingin menjual satu costume lagi malam ini.

What you want to doYang ingin kamu lakukan Ordinary costume shop scriptScript toko costume biasa Costume ExchangerCostume Exchanger
Add one costumeMenambah satu costume Edit the file, then @reloadscriptEdit file, lalu @reloadscript Admin Panel → type the Item IDAdmin Panel → ketik Item ID
Change a priceMengubah harga Edit the file, then reloadEdit file, lalu reload One menu — or a whole slot at onceSatu menu — atau satu slot sekaligus
Hide an item temporarilyMenyembunyikan item sementara Comment it out, then reloadJadikan komentar, lalu reload Toggle it off — the price is rememberedMatikan saja — harganya tetap tersimpan
Do it with players onlineMelakukannya saat pemain online A reload interrupts every running NPCReload memutus semua NPC yang sedang berjalan Nothing is reloaded at allTidak ada yang di-reload sama sekali
Load a pack of 300 costumesMemasukkan paket 300 costume Hand-write 300 linesMenulis tangan 300 baris A tool reads your item_db and fills themTool membaca item_db-mu lalu mengisinya
Who did whatSiapa mengubah apa Whatever your file history saysSebatas riwayat file kalau ada Logged per change, with the GM's nameTercatat per perubahan, dengan nama GM-nya

Nothing here needs a database schema you maintain — the NPC creates its own table the first time it loads.Tidak ada yang perlu skema database yang harus kamu urus — NPC membuat tabelnya sendiri saat pertama kali dimuat.

The Admin PanelAdmin Panel

Ten Menus, All of Them LiveSepuluh Menu, Semuanya Langsung Berlaku

It appears as the last entry of the NPC menu when your GM level clears the threshold, and it opens with a summary line: total items, active, hidden, and how many are flagged Special. Muncul sebagai menu terakhir di NPC kalau level GM-mu memenuhi syarat, dan terbuka dengan baris ringkasan: total item, aktif, tersembunyi, dan berapa yang ditandai Special.

Add a costumeTambah costumeType the Item ID. The NPC checks it exists, reads its slot from item_db, and refuses duplicates. Enter 0 for the slot's default price.Ketik Item ID. NPC memeriksa itemnya ada, membaca slotnya dari item_db, dan menolak duplikat. Isi 0 untuk memakai harga bawaan slot itu.
Change one priceUbah harga 1 itemPick the item by ID or browse the list, then set the new price.Pilih item lewat ID atau telusuri daftar, lalu tentukan harga barunya.
Move an item's slotPindah slot 1 itemFor the rare case where you deliberately want an item listed under a different category than its real one.Untuk kasus jarang di mana kamu memang sengaja ingin item tampil di kategori berbeda dari slot aslinya.
Show / hide an itemAktif / nonaktifkan itemTakes it out of the player's list without deleting it — the price and settings are kept. This is the one to use, not Delete.Mengeluarkannya dari daftar pemain tanpa menghapus — harga dan pengaturannya tetap. Ini yang sebaiknya dipakai, bukan Hapus.
Delete a costumeHapus costumeRemoves the row entirely. For a temporary pull, hide it instead.Menghapus barisnya sama sekali. Untuk penarikan sementara, sembunyikan saja.
Reprice a whole slotUbah harga seluruh slotSets every item in one category to the same price, and the slot's default moves with it so later additions follow the new number.Menyamakan harga seluruh item dalam satu kategori, dan harga bawaan slot itu ikut berubah sehingga item yang ditambahkan setelahnya mengikuti angka baru.
Find & clean invalid itemsPeriksa & bersihkan item tak validSweeps for rows whose item no longer exists in item_db, shows the count, and only then removes them.Menyapu baris yang itemnya sudah tidak ada di item_db, menampilkan jumlahnya, baru menghapusnya.
Display settingsPengaturan tampilanItems per page, the GM level that unlocks this panel, and whether purchases are announced.Item per halaman, level GM yang membuka panel ini, dan apakah pembelian diumumkan.
Flag one item as SpecialTandai Special (1 item)Puts a single costume in the Special showcase — or takes it out. It keeps its normal category either way.Memasukkan satu costume ke etalase Special — atau mengeluarkannya. Kategori normalnya tetap, apa pun pilihannya.
Flag a whole Item ID rangeTandai Special per rentang IDEnter the first and last ID; it reports how many rows are affected before you confirm. A new pack of your own costumes becomes one action, not fifty clicks.Masukkan ID awal dan akhir; NPC melaporkan berapa baris yang kena sebelum kamu setujui. Satu paket costume buatanmu jadi satu tindakan, bukan lima puluh klik.
The Special ShelfRak Special

Your Own Costumes Shouldn't DrownCostume Buatanmu Jangan Sampai Tenggelam

A shelf, not a folderRak, bukan folder

Once the catalogue holds every costume your client can display, the twenty-eight you commissioned yourself are twenty-eight rows among thousands — and the players you made them for will never scroll past them by accident.Begitu katalognya berisi semua costume yang bisa ditampilkan client-mu, dua puluh delapan costume yang kamu pesan khusus cuma jadi dua puluh delapan baris di antara ribuan — dan pemain yang kamu tuju tidak akan pernah kebetulan menemukannya.

Special fixes that without hiding anything. It is a separate flag rather than a slot, so a featured costume sits on the Special shelf and stays in its own Upper / Middle / Lower / Garment list. Give a new pack a consecutive block of Item IDs and one range command puts the whole pack on the shelf.Special mengatasinya tanpa menyembunyikan apa pun. Ini penanda terpisah, bukan slot, jadi costume unggulan ada di rak Special sekaligus tetap di daftar Upper / Middle / Lower / Garment miliknya. Beri paket baru blok Item ID yang berurutan, lalu satu perintah rentang menaruh seluruh paket di rak itu.

Bonus ToolTool Bonus

"I Bought It and Nothing Appeared""Saya Beli, Tapi Tidak Muncul Apa-apa"

That complaint is expensive, because the item behaves perfectly — it equips, it throws no error, and the player is still right. The costume simply has nothing to draw. The package includes a tool that answers the question before the costume goes on sale, and it checks three separate things that are easy to confuse. Keluhan itu mahal, karena itemnya berperilaku normal — bisa dipakai, tidak memunculkan error, dan pemainnya tetap benar. Costume itu memang tidak punya apa pun untuk digambar. Paket ini menyertakan tool yang menjawabnya sebelum costume itu dijual, dan ia memeriksa tiga hal berbeda yang sering tertukar.

1. The worn sprite1. Sprite yang dipakai

Is the item's View ID actually in the client's tables, and does the sprite file behind it exist? A View that no table knows draws nothing at all.Apakah View ID item itu benar-benar ada di tabel client, dan file sprite di baliknya ada? View yang tidak dikenal tabel mana pun tidak menggambar apa-apa.

2. The hat effect2. Hat effect

Effect-only costumes have no View at all — their whole visual is an effect. That is a different check, against a different table, and it catches auras that look installed but render nothing.Costume berbasis efek sama sekali tidak punya View — seluruh tampilannya adalah efek. Itu pemeriksaan berbeda, ke tabel berbeda, dan menangkap aura yang kelihatan terpasang tapi tidak menggambar apa pun.

3. The itemInfo entry3. Entri itemInfo

Name and icon in the bag. A costume can wear perfectly and still sit in the inventory as a blank square with no name — which reads as "broken" to a paying player.Nama dan ikon di dalam tas. Sebuah costume bisa terpakai sempurna tapi tetap tampil di inventori sebagai kotak kosong tanpa nama — dan bagi pemain yang sudah bayar, itu terbaca "rusak".

An item can pass one check and fail another, which is exactly why they are three. The tool reads several item_db files at once (costumes are usually spread across your base db and your import db) and still works on clients whose GRF is encrypted.Sebuah item bisa lolos satu pemeriksaan dan gagal di yang lain — justru karena itu jumlahnya tiga. Tool-nya membaca beberapa berkas item_db sekaligus (costume biasanya tersebar di db utama dan db import) dan tetap jalan pada client yang GRF-nya terenkripsi.

CompatibilityKompatibilitas

Script Only — Nothing to Compile, Nothing to PatchScript Saja — Tak Ada yang Perlu Di-compile atau Di-patch

rAthenapre-renewal or renewalpre-renewal maupun renewal 🗃 MySQL / MariaDB 📜 query_sqlstock rAthena, nothing to enablebawaan rAthena, tak perlu diaktifkan 🔧 No C++ recompileTanpa recompile C++ 🖥 No client patchTanpa patch client 💰 Currency is yours — Cash Point by default, Zeny or any variableMata uang bebas — bawaan Cash Point, bisa Zeny atau variabel lain
What You ReceiveYang Kamu Terima

One NPC, Two Tools, Four GuidesSatu NPC, Dua Tool, Empat Panduan

📦 CostumeExchanger-v1.0.zip
server/npc/
  costume_shop.txt          the NPC (one file)
sql/
  costume_shop.sql          table (optional - it self-creates)
tools/
  seed_from_itemdb.py       bulk-fill from your item_db
  audit_costume_display.py  what can your client show?
  grf300.py                 GRF reader (used by the audit)
docs/
  01-INSTALL.md
  02-ADMIN-PANEL.md         all ten menus
  03-ISI-KATALOG-MASSAL.md  filling thousands at once
  04-TROUBLESHOOTING.md
README.md
CHANGELOG.md
CREDITS.md
LICENSE.txt
  1. Drop in the NPCPasang NPC-nyaone file into npc/custom/.satu file ke npc/custom/.
  2. Register itDaftarkanone line in your custom script config.satu baris di config script custom-mu.
  3. Reload onceReload sekalithe SQL table is created for you on that first load.tabel SQL-nya dibuatkan otomatis saat pemuatan pertama itu.
  4. Fill the catalogueIsi katalognyaby hand through the Admin Panel, or in bulk with the seeding tool that reads your own item_db.manual lewat Admin Panel, atau massal dengan tool seeding yang membaca item_db milikmu.
No C++ recompileTanpa recompile C++ No client editTanpa edit client Bulk seeding toolTool pengisi massal Client display auditorPemeriksa tampilan client Docs in Bahasa IndonesiaDokumentasi Bahasa Indonesia Catalogue ships empty on purposeKatalog sengaja dikirim kosong

An Item ID means a different item on every server, so a bundled catalogue would have you selling the wrong things on day one. Filling it from your own database takes minutes — and it is the step where installation and setup can be done for you.Item ID berarti item yang berbeda di tiap server, jadi katalog bawaan justru akan membuatmu menjual barang yang salah sejak hari pertama. Mengisinya dari database sendiri cuma hitungan menit — dan di langkah inilah pemasangan serta penyetelan bisa kami kerjakan untukmu.

FAQ

Questions Owners Actually AskPertanyaan yang Benar-benar Ditanyakan Pemilik Server

Why does it arrive with an empty catalogue?Kenapa datangnya dengan katalog kosong?

Because Item ID 20501 is not the same costume on your server as it is on ours. A bundled list would look generous and quietly put the wrong items on your shelves. Instead you get a tool that reads your item_db and fills the catalogue from it — per-slot pricing, an ID-range filter, and an option to load everything switched off so you can vet it before anything goes on sale.Karena Item ID 20501 di servermu bukan costume yang sama dengan di server kami. Daftar bawaan akan terlihat murah hati sambil diam-diam menaruh barang yang salah di rakmu. Sebagai gantinya kamu dapat tool yang membaca item_db milikmu lalu mengisi katalognya — harga per slot, filter rentang ID, dan opsi memasukkan semuanya dalam keadaan mati supaya bisa kamu periksa dulu sebelum dijual.

Do I really never need @reloadscript?Benarkah tidak pernah perlu @reloadscript?

Only once, to install the NPC itself. After that the catalogue is data, not code: the menu queries the table every time it opens, so an item added while a player is standing in front of the NPC is there on their next screen.Cuma sekali, untuk memasang NPC-nya. Setelah itu katalognya adalah data, bukan kode: menunya membaca tabel setiap kali dibuka, jadi item yang ditambahkan saat pemain sedang berdiri di depan NPC sudah ada di layar berikutnya.

What happens if a player closes the preview window with the X?Bagaimana kalau pemain menutup jendela pratinjau pakai tombol X?

Their real appearance comes back. The restore also runs when they open the NPC again, so even an odd disconnect in the middle of a preview cannot leave someone permanently wearing something they did not buy.Penampilan aslinya kembali. Pemulihannya juga dijalankan saat mereka membuka NPC itu lagi, jadi bahkan disconnect aneh di tengah pratinjau pun tidak bisa membuat seseorang selamanya memakai barang yang tidak dibelinya.

Can I sell in Zeny instead of Cash Point?Bisakah menjual pakai Zeny, bukan Cash Point?

Yes. The currency is one setting at the top of the script — Cash Point is only the default because that is what most servers use for cosmetics. Zeny, a custom point variable, or an event currency all work the same way.Bisa. Mata uangnya satu pengaturan di bagian atas script — Cash Point cuma bawaan karena itu yang paling umum dipakai server untuk kosmetik. Zeny, variabel poin custom, atau mata uang event sama saja jalannya.

Do I need to recompile my server or patch my client?Perlu recompile server atau patch client?

Neither. This is one script file. It uses stock rAthena features only, adds no custom item, mob or map, and touches nothing on the client side — which is exactly why it can be installed on a running server in the time it takes to read the install guide.Dua-duanya tidak. Ini satu file script. Semua yang dipakai fitur bawaan rAthena, tidak menambah item, mob, atau map baru, dan tidak menyentuh sisi client sama sekali — justru karena itu bisa dipasang di server yang sedang jalan secepat kamu membaca panduannya.

A costume equips but nothing shows on the character. Is that a bug?Costume bisa dipakai tapi tidak muncul di karakter. Itu bug?

Almost always it is the client, not the shop: that costume's sprite, View or effect is missing from your GRF, so there is nothing to draw. That is what the bundled auditor is for — run it against your client and your item_db first, sell only what came back green, and load the rest switched off until you have the art. The Admin Panel's hide toggle exists for exactly this.Hampir selalu ini soal client, bukan tokonya: sprite, View, atau efek costume itu tidak ada di GRF-mu, jadi memang tidak ada yang bisa digambar. Untuk itulah pemeriksa yang disertakan — jalankan dulu terhadap client dan item_db-mu, jual hanya yang lolos, dan masukkan sisanya dalam keadaan mati sampai art-nya ada. Tombol sembunyikan di Admin Panel memang untuk kasus ini.

How many costumes can it hold before it gets slow?Berapa banyak costume yang sanggup ditampung sebelum melambat?

The menu only ever reads the page you are looking at, so the catalogue size barely matters — it has been run in production with a catalogue in the thousands, browsed and searched, on an ordinary VPS. That is also why search exists: at that size, browsing is for looking around and search is for finding.Menunya hanya membaca halaman yang sedang kamu buka, jadi besarnya katalog nyaris tidak berpengaruh — sudah dipakai di server produksi dengan katalog ribuan item, ditelusuri dan dicari, di VPS biasa. Itu juga alasan fitur pencarian ada: pada ukuran segitu, menelusuri itu untuk melihat-lihat, mencari itu untuk menemukan.

I already have a costume NPC. Can this replace it without losing anything?Saya sudah punya NPC costume. Bisakah ini menggantinya tanpa kehilangan apa pun?

Yes, and the migration is the easy part: your existing list is item IDs and prices, which is precisely what the seeding tool takes. Nothing players own is touched — costumes they already bought stay in their inventory, because this system stores a shop catalogue, not player data.Bisa, dan migrasinya bagian yang gampang: daftar lamamu berisi item ID dan harga, dan persis itulah yang diterima tool seeding. Tidak ada milik pemain yang tersentuh — costume yang sudah mereka beli tetap ada di inventori, karena sistem ini menyimpan katalog toko, bukan data pemain.

Stop Editing Files to Sell a HatBerhenti Mengedit File Cuma untuk Menjual Topi

Installed on your server, your catalogue filled from your own item_db, and every costume checked against your client first — so what goes on the shelf is what your players can actually wear.Dipasang di servermu, katalognya diisi dari item_db milikmu, dan setiap costume diperiksa dulu terhadap client-mu — jadi yang naik ke rak memang yang benar-benar bisa dipakai pemainmu.