← All Exclusive SystemsSemua Sistem Eksklusif
👗 Costume Shop · SQL Catalogue · Admin PanelToko Costume · Katalog SQL · Admin Panel
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.