Running a Hunt (التحدي): building it, putting the boxes out, watching it, and the things that go wrong. Arabic follows the English.
Every name in this manual appears in both languages the first time it is used. This is the list:
| English | بالعربية |
|---|---|
| Hunt | التحدي |
| Stage | المرحلة |
| Clue | الدليل |
| Box | الصندوق |
| Team | الفريق |
| Gamemaster | القيم ماستر |
| Question | السؤال |
| Focus guard | حارس الشاشة |
A Hunt is a تحدي, not a صيد. The word "hunt" survives in the website's name only. Everywhere a person reads, it is التحدي.
A Hunt holds ordered Stages (المراحل). Each Stage has Questions (الأسئلة), a Clue (الدليل) telling players where to find it, and usually a Box (الصندوق).
Teams walk the Stages in order. Stage 1 opens on the clock; every later Stage opens for a Team (الفريق) the moment they clear the one before it.
The race model, in one sentence: the first Team to solve a Stage wins its Box, but every other Team still has to solve that Stage themselves to move on. Losing a Box costs a Team the Box, not their progress.
More than one Hunt can be live at once — a class on one while you test another is fine. The landing page asks players which.
⬆ Import hunt (Hunts tab) takes a .zip holding a hunt.json and an images folder. ⬆ Upload a stage (Stages tab) adds a single stage to the hunt you have selected.
This is how you build a Hunt with an AI: give it the Integration API document from the Docs tab, answer its questions, and it hands you the ZIP.
Choosing a file does not import it. You get a report first — stages, Questions, types, which Stages have a Clue, and anything wrong with it — and the Import button only wakes up if the bundle is sound. An imported Hunt arrives as a draft, like any other.
| Setting | What it does |
|---|---|
| Start | When Stage 1 opens. Before it, players can join and wait but not play. |
| Duration | How long the whole Hunt runs from the gun. 0 = until you stop it. |
| Stage timer | Per attempt, not per Team. |
Going live re-stamps the start, which is also how you re-run a Hunt that has already expired.
The dashboard warns you before going live if the Hunt would open immediately, or would already be over.
A Box shows a QR and pops its latch. You do not need one to play.
The code on each card is a secret. Stage 1's link is public by design — share it anywhere. Every later Stage carries a token that exists only on its own card or Box, so a player cannot reach Stage 3 by editing a URL.
Live monitor shows every Team: where they are, which Question they are on, their best score as a count, how long they have been idle, and the clock time of their last move.
The 👁 switch on a Hunt card. With it on, a player who switches to another app gets one warning; the second time, their current Stage restarts at Question 1.
It is off by default because it can clear a player's work.
What it closes is the cheap route — screenshot, ask an AI, come back. It cannot see a screenshot, and it cannot see a second phone pointed at the screen. Nothing in a browser can. Treat it as a cost imposed on the lazy route, not a guarantee.
Three things keep it off honest players: the screen is held awake, trips under 3 seconds are ignored, and the first one only warns.
| What you see | What it means |
|---|---|
| Box screen says PARKED | No Stage assigned. Boxes tab. |
| Box says WiFi NOT FOUND | The ESP32 is 2.4 GHz only. Set the hotspot band to 2.4 GHz. |
| A Team is stuck on "scan the box" | They are at the wrong Stage's Box, or the code did not read. Give them the printed code to type. |
| A Box never pops | Live monitor → pending → mark it opened by hand. |
| A Team must be moved on | Advance them from the monitor. |
Reset all teams & progress wipes every Team and clears every winner, so the same Hunt can be run with a fresh group. It cannot be undone.
📄 Paper exam exports a Hunt's Questions as a Word document — multiple choice, true/false, and match-to-labels as a word bank with blanks. The answer key is the last page: keep that page.
Picture and dial Questions are marked as interactive rather than dropped, so you can see what is missing.
Docs tab → 🗄 Storage. Every picture ever uploaded stays on the server, including ones belonging to Hunts you deleted.
Check storage counts them and sorts them into four groups. Clean up removes only the orphaned ones — never a picture a Question still uses, and never one uploaded in the last 24 hours, because a picture is often uploaded minutes before the Question that names it is saved.
If it reports pictures that are *referenced but missing*, a live Question has a broken image. That one needs fixing by hand; clean-up will not cause it and cannot repair it.
كل اسم في هذا الدليل يُذكر باللغتين أول مرة يُستعمل فيها، وهذه القائمة:
| بالعربية | English |
|---|---|
| التحدي | Hunt |
| المرحلة | Stage |
| الدليل | Clue |
| الصندوق | Box |
| الفريق | Team |
| القيم ماستر | Gamemaster |
| السؤال | Question |
| حارس الشاشة | Focus guard |
الـHunt اسمها «التحدي» لا «الصيد». كلمة hunt باقية في اسم الموقع فقط، وفي كل ما يقرأه إنسان هي التحدي.
التحدي (Hunt) يحوي مراحل (Stages) مرتّبة. كل مرحلة فيها أسئلة (Questions)، ودليل (Clue) يقول للاعبين أين يجدونها، وغالباً صندوق (Box).
الفرق تمشي المراحل بالترتيب. المرحلة الأولى تفتح على الساعة، وكل مرحلة بعدها تفتح للفريق (Team) لحظة اجتيازه التي قبلها.
نموذج السباق في جملة: أول فريق يحلّ مرحلة يفوز بصندوقها، لكن كل فريق آخر لا يزال عليه حلّ تلك المرحلة بنفسه ليتقدّم. خسارة الصندوق تكلّف الفريق الصندوق، لا تقدّمه.
ويمكن أن يكون أكثر من تحدٍّ حيّاً في وقت واحد — صفٌّ على واحد وأنت تجرّب آخر. وصفحة الدخول تسأل اللاعبين أيّهما.
زر ⬆ Import hunt في تبويب Hunts يستقبل ملف .zip فيه hunt.json ومجلّد images. وزر ⬆ Upload a stage في تبويب Stages يضيف مرحلة واحدة للتحدي المختار أعلى الصفحة.
وهذه طريقة بناء تحدٍّ بالذكاء الاصطناعي: أعطِه مستند Integration API من تبويب Docs، وأجب عن أسئلته، فيعطيك الملف المضغوط.
واختيار الملف لا يستورده. يأتيك تقرير أولاً — عدد المراحل والأسئلة وأنواعها، وأي المراحل لها دليل، وكل خطأ في الملف — وزر الاستيراد لا يعمل إلا إذا كان الملف سليماً. والتحدي المستورد يصل كمسودّة كأي تحدٍّ آخر.
| الإعداد | ماذا يفعل |
|---|---|
| Start | متى تفتح المرحلة الأولى. قبلها يستطيع اللاعبون التسجيل والانتظار لا اللعب. |
| Duration | كم يستمر التحدي كله من لحظة الانطلاق. و٠ تعني حتى توقفه أنت. |
| Stage timer | لكل محاولة، لا لكل فريق. |
والذهاب للبثّ المباشر يعيد ختم وقت البدء، وهذه أيضاً طريقة إعادة تشغيل تحدٍّ انتهت مدته.
واللوحة تحذّرك قبل البثّ إن كان التحدي سيفتح فوراً، أو كان منتهياً أصلاً.
الصندوق يعرض رمز QR ويفتح القفل. ولست مضطراً لواحد كي تلعب.
والرمز على كل بطاقة سرّ. رابط المرحلة الأولى عامّ بالتصميم — انشره حيث شئت. أما كل مرحلة بعدها فتحمل رمزاً لا يوجد إلا على بطاقتها أو صندوقها، فلا يستطيع لاعب الوصول للمرحلة الثالثة بتعديل رابط.
Live monitor يعرض كل فريق: أين هو، وأي سؤال يحلّ، وأفضل نتيجة كعدد، وكم مضى عليه خاملاً، وساعة آخر حركة له.
مفتاح 👁 على بطاقة التحدي. حين يُشغَّل، اللاعب الذي ينتقل لتطبيق آخر يأخذ تحذيراً واحداً، وفي الثانية تبدأ مرحلته الحالية من السؤال الأول.
وهو مطفأ افتراضياً لأنه قد يمسح عمل لاعب.
ما يُغلقه هو الطريق السهل: لقطة شاشة، سؤال ذكاء اصطناعي، ثم العودة. لكنه لا يرى لقطة الشاشة، ولا يرى هاتفاً ثانياً موجّهاً نحو الشاشة. لا شيء في المتصفح يرى ذلك. فاعتبره كلفةً تُفرض على الطريق الكسول، لا ضماناً.
وثلاثة أشياء تحميه من الأبرياء: الشاشة تبقى مستيقظة، والخروج أقل من ٣ ثوانٍ يُتجاهل، والمرة الأولى تحذير فقط.
| ما تراه | ماذا يعني |
|---|---|
| الصندوق يقول PARKED | لا مرحلة مُسنَدة. تبويب Boxes. |
| الصندوق يقول WiFi NOT FOUND | الـESP32 يعمل على ٢.٤ جيجا فقط. حوّل نقطة الاتصال إلى 2.4 GHz. |
| فريق عالق على «امسح الصندوق» | هو عند صندوق مرحلة أخرى، أو الرمز لم يُقرأ. أعطه الرمز المطبوع ليكتبه. |
| صندوق لا يُفتح أبداً | Live monitor ← pending ← علّمه مفتوحاً يدوياً. |
| فريق يجب تمريره | Advance من اللوحة. |
وReset all teams & progress يمسح كل الفرق ويلغي كل الفائزين، ليُعاد تشغيل التحدي مع مجموعة جديدة. ولا يمكن التراجع عنه.
📄 Paper exam يصدّر أسئلة التحدي كمستند Word — اختيار من متعدد، وصح/خطأ، والمطابقة كبنك كلمات بفراغات. ومفتاح الإجابات آخر صفحة: احتفظ بها.
وأسئلة الصور والقرص تُعلَّم بأنها تفاعلية بدل أن تُحذف، فترى ما ينقص.
تبويب Docs ← 🗄 Storage. كل صورة رُفعت تبقى على السيرفر، حتى صور التحديات التي حذفتها.
زر Check storage يعدّها ويصنّفها في أربع مجموعات، وزر Clean up يحذف اليتيمة فقط — لا يمسّ أبداً صورةً يستعملها سؤال، ولا صورةً رُفعت خلال ٢٤ ساعة، لأن الصورة كثيراً ما تُرفع قبل دقائق من حفظ السؤال الذي يسمّيها.
وإن أبلغك عن صور مُشار إليها لكنها مفقودة، فهذا يعني سؤالاً حيّاً بصورة مكسورة. ذاك يُصلَح يدوياً؛ التنظيف لا يسبّبه ولا يُصلحه.