> For the complete documentation index, see [llms.txt](https://hetcreep.gitbook.io/hetcreep-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hetcreep.gitbook.io/hetcreep-docs/gacharatedesigndatum/gacha.md).

# วิธีตั้งเรต gacha โดยไม่ต้อง "เดาเลข"

`v1.1.0` · เอกสารนี้จัดเป็นหลายหน้าตามโครง Reference / Explanation / Guides / Governance — ดูที่เมนูซ้ายเพื่อไต่ทั้งหมด

**เอกสารนี้ตอบคำถามเดียว: เรต pity ราคา ควรเป็นเท่าไหร่ และคุณรู้ได้ยังไงว่าไม่ได้มั่ว**

คำตอบไม่ใช่ตัวเลข แต่เป็น **กฎ** ที่ทำให้ตัวเลขตกลงมาเอง — และเป็น **งานวัดจากเกมจริง 9 เกม** ที่เผยแพร่เรตของตัวเองไว้ ไม่ใช่ "best practice" ลอย ๆ

> เขียนจากการทำ design lock ของเกมมือถือตัวหนึ่งที่พัฒนาในไทย ทุกค่าถูก ratify ทีละข้อกับ เจ้าของโปรเจกต์ พร้อมให้ดูที่มา ไม่ใช่แค่หัวข่าว ผ่าน adversarial review 3 มุมที่ทั้ง 3 ตัดสินว่า "พัง" แล้วพับ finding กลับเข้ากฎ

***

### ปัญหาที่เอกสารนี้แก้

เกือบทุกโปรเจกต์ตั้งเรตกาชาแบบนี้: มีคนเลือกเลขนึง (5%) ใส่ลง config แล้วเลขนั้นอยู่ตรงนั้นไปตลอด ไม่มีใครรู้ว่าใครเลือก ไม่มีใครรู้ว่าทำไม และตอนโรสเตอร์โต ไม่มีใครรู้ว่าเลขควรขยับไหม

อาการที่ตามมาแบบคลาสสิก:

* **เลขที่โชว์ผู้เล่น กับเลขที่ server สุ่มจริง เป็นคนละแถว** — พิมพ์ซ้ำใน UI ครั้งนึง ใน docs ครั้งนึง แล้ววันหนึ่งอันใดอันหนึ่งเปลี่ยน อีกอันไม่เปลี่ยน
* **โรสเตอร์โตแล้วเรตต่อตัวเจือจางเงียบ ๆ** — band ยัง 5% เหมือนเดิม แต่ตัวละครหนึ่งตัวจาก 5% เป็น 0.3% โดยไม่มีใครตัดสินใจอะไรเลย
* **ผลรวมไม่เท่ากับ 100%** เพราะปัดเศษ แล้วแก้ด้วยการเขียน "ภายใน tolerance" ซึ่งพังตอน pool ใหญ่ขึ้น
* **ราคาถูกตั้งจากความรู้สึก** แล้วเทียบไม่ได้กับใครเลย

***

### แผนที่เอกสาร

* **Reference** — กฎ สูตร และ invariant ทั้งหมด (normative spec)
* **Explanation** — ที่มาจาก exemplar 9 เกม และจุดที่กฎนี้ตั้งใจต่างจาก exemplar
* **Guides** — วิธีคำนวณราคา/ตัวอย่างจริง และวิธีเช็คว่ากฎถูกใช้จริง
* **Governance** — ใครตัดสินใจเปลี่ยนค่าได้ และเปลี่ยนอย่างไร
* **Contributing** — เสนอแก้ไขเอกสารนี้ยังไง
* **License** — เงื่อนไขการใช้งาน

***

### สรุปสั้น

* **อย่าเลือกเลข เลือกกฎ** แล้วให้เลขตกลงมา
* **band rate ห้ามเป็นฟังก์ชันของขนาด pool** — 5 เกมใหญ่ยืนยันด้วยการไม่ขยับเลยตลอดหลายปี
* **ผลรวมต้องเท่ากับ 1 พอดีโดยโครงสร้าง** ไม่ใช่ "ภายใน tolerance"
* **เลขที่โชว์ต้องเป็นแถวเดียวกับที่ server สุ่ม** — 4 ใน 5 เกมใหญ่เคยพลาดเรื่องนี้
* **ประกาศ delivered rate ไม่ใช่แค่ base** เพราะ pity ทำให้สองอย่างนี้ไม่เท่ากัน
* **ราคาเทียบด้วยค่าแรงเฉลี่ยของประเทศตัวเอง ไม่ผ่าน FX** และค่าแรงขั้นต่ำใช้เป็นตัวหารข้ามประเทศไม่ได้
* **"derive ได้" ไม่ได้แปลว่า "ควร derive"** — ผูกสองระบบที่เป็นคนละการตัดสินใจเข้าหากันคือหนี้
* **บอกด้วยว่าตรงไหนไม่มีใครทำแบบเรา** นั่นคือสิ่งที่แยกงานวิจัยออกจากการอ้างอิงแบบเลือกข้าง

***

### changelog

* **v1.1.0** (2026-08-13) — เพิ่ม I19 (draw record retention), compliance checklist ต่อ jurisdiction, CI-gate rule ชัดเจน, revalidate cadence สำหรับค่าแรง, หมายเหตุ I16, เลขเวอร์ชัน/changelog นี้, จัดโครงสร้างใหม่เป็นหลายหน้า (Reference/Explanation/Guides/Governance/Contributing/License)
* **v1.0.0** — ฉบับสาธารณะแรก (ถอดข้อมูลเฉพาะโปรเจกต์ออก)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hetcreep.gitbook.io/hetcreep-docs/gacharatedesigndatum/gacha.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
