Feature Feedback Survey - bh679/dungeon-train-mc GitHub Wiki
Since: v0.309.0 (PR #411) β powered by Discord Presence 0.19.0
When you die, a Give Feedback button appears on the death screen. It opens a short survey that walks you through one question at a time β a 0β10 rating plus an optional comment each β and posts every answer to the community Discord. Dungeon Train ships one question ("How would you rate the difficulty progression?"); Discord Presence contributes a built-in NPS question ("How likely are you to recommend this game to a friend?") that is always asked first.
The survey system is owned by Discord Presence, not Dungeon Train β DT only contributes its question as a data file, so any mod or datapack can add questions the same way (see Adding questions).
You Died! (run recap)
[ New World ][ Title Screen ]
[ Give Feedback ] β while you have unanswered questions
click ββΆ Question 1 of 2
How likely are you to recommend this game to a friend?
[0][1][2][3][4][5][6][7][8][9][10] β pick a rating (selected one is outlined)
[ What's the main reason for your score? (optional) ]
[ Submit & next ] [ Skip ]
submit ββΆ Question 2 of 2
How would you rate the difficulty progression?
[0]β¦[10] [ commentβ¦ ] [ Submit ] [ Skip ] β last one reads "Submit"
submit ββΆ closes back to the death screen; both answers are now in Discord
- The button sits at the bottom of the death screen, clear of the recap and the New World / Title Screen row.
- One question per screen. Submit & next posts that answer to Discord and advances; the last question's button reads Submit. Skip advances without recording (you'll be offered it again next death).
- Answers are tracked per player. The survey re-opens on every death and via
/feedback, so you can give feedback as often as you like β and you can turn off any question you've already answered (see Skipping questions below).
The whole survey lives in Discord Presence (so it's reusable by any mod); Dungeon Train contributes only data:
- On death, the server sends the player their unanswered questions in ask-order; the client shows the Give Feedback button only while that list is non-empty (re-evaluated each frame, so a question that arrives just after the screen opens still surfaces the button).
- The survey screen walks the list locally β each Submit sends the answer to the server, which validates + records it (per player, persisted) and posts it to Discord, then the client advances to the next question.
- Each answer posts into the player's own Discord thread (the same thread as their join / death / advancement messages) as a small embed: the question as the description, plus a Rating (
8 / 10) and an optional Comment field. - The built-in NPS question is always first; data-driven questions follow, ordered by an optional
orderfield. - Each answer carries a small tag β the embed footer in the player's thread, and the header line of the copy in the survey-results channel (see below).
π DT 0.1093.0 Β· Russian Β· Mods: 87 Β· Games 12 Β· (3) β <link to the threaded original>
| Part | Meaning |
|---|---|
| Dot | How current the player's build was when the answer was sent (it does not change afterwards): π’ the newest public release, or newer Β· π΅ not the newest, built under 2 days ago Β· π‘ within the last week Β· π within the last month Β· π΄ older Β· βͺ could not tell |
DT 0.1093.0 |
The Dungeon Train version the answer came from |
Russian |
The player's game language, by its English name. Left out when unknown |
Mods: 87 |
How many mods are loaded (on a dedicated server, the server's count) |
Games 12 |
How many times the player has died, Free Play runs included β counted since v0.1111.0; earlier Free Play deaths were never recorded |
(3) |
How many times this player has answered this question, counting the one just posted β since v0.1146.0 (PR #1811). Answers before that update count as one, so a long-time player's next answer reads (1). Only survey answers carry it |
The newest release is read from the relay at most every 30 minutes; when it cannot be reached the dot falls back to the build's age alone and is never green. Built by SurveyTag and VersionFreshness, handed to Discord Presence (β₯ 0.65.0) through its surveyEmbedFooter(playerId, clientLanguage, timesAnswered) seam; Discord Presence keeps the per-question answer counts in its discordpresence-surveys.json. Mod recommendations and hack reports from the death screen carry the same tag.
Responses go out through the same relay/webhook the rest of the Discord Presence integration uses, so on a default Dungeon Train install they land in the community feed. The survey only runs when Discord is configured (and, in singleplayer, after the one-time network-consent prompt).
Since: PR #1253
The survey is offered fresh on every death, so a question you have answered comes back around. From the second time you are shown a question you already answered, it carries a "Don't ask me this again" tick box under the rating row. Tick it and that question stops appearing in the death screen's normal page walk for good.
Skipping is not the same as losing it. An envelope button sits on the death screen's last page,
beside the $ support chip. Press it and the screen walks you through every feedback question in
turn β the skipped ones included β then hands you back where you started. A skipped question draws
its tick box already ticked, so that walk is also where you put a question back into the normal
flow.
The start page's Submit Bug shortcut reaches the bug question the same way, whether or not it has
been skipped, and /feedback and /bug ignore skipping entirely β those are asked for, not offered.
Skips are stored per player in dungeontrain-client.toml under [deathScreen] (answeredForms and
mutedForms), so they follow you across worlds and servers. The Video Tools profile reset's
one-time prompts item clears them.
You don't have to die to give feedback:
-
/feedbackopens the full survey at any time, in any game mode β the same question walk shown on the death screen. -
/bug(since v0.415.0, PR #687) jumps straight to the bug-report question ("Did you face any bugs in this run?"), skipping the rating questions β a fast path when you just want to report a problem.
Both commands are not op-gated (anyone can run them) and are whitelisted in the cheat classifier, so using them never marks your run as cheated. /feedback is contributed by Discord Presence; /bug is a Dungeon Train command that opens DP's survey filtered to the bug question.
When you answer the bug-report question with anything other than No β from the death screen or from /bug / /feedback β Dungeon Train collects your recent client logs and ships them to the server, which archives them under logs/<version>/<user>/ and posts them (with the chosen option) to the community feedback feed. For a Lag answer it also folds in a short system-spec summary (allocated game memory, CPU/GPU, OS, launcher) so lag reports carry the hardware context needed to diagnose them. Choosing No sends nothing. This is best-effort and only runs when Discord is configured and network use is allowed (see the consent note above).
Questions are data files β drop a JSON at data/<namespace>/dp_surveys/<name>.json in any mod or datapack and Discord Presence loads it (reloadable with /reload). The file's resource id (<namespace>:<name>) becomes the question's stable id.
{
"prompt": "How would you rate the difficulty progression?",
"scale_min": 0,
"scale_max": 10,
"allow_comment": true,
"order": 100
}| Field | Default | Meaning |
|---|---|---|
prompt |
(required) | Question text shown to the player and used as the Discord embed description. |
scale_min / scale_max
|
0 / 10
|
Rating range β one button per value in the row. |
allow_comment |
true |
Whether an optional free-text comment box is shown. |
order |
1000 |
Sort key among data-driven questions (lower = earlier). The built-in NPS question is always first. |
Dungeon Train's own question lives at data/dungeontrain/dp_surveys/difficulty_progression.json β add more DT questions by dropping more files there, no code required.
-
Persistence / reset: answers are stored per player UUID in
config/discordpresence-surveys.json. Delete that file to re-offer every question (handy for testing). -
Config: Discord Presence's
surveyEnabled(default on) gates the whole feature;surveyEmbedColorsets the embed colour. -
Version trail: Discord Presence 0.17.0 introduced the survey + death-screen button + the built-in NPS question; 0.18.0 made questions data-driven (the
dp_surveysdata files); 0.19.0 added the one-sitting multi-question walk. Dungeon Train 0.309.0 wires it up and ships the difficulty question.
- Death screen β run recap & buttons β the survey button shares this screen.
- Compatibility βΊ Discord Presence β the bundled mod that owns the survey and posts to Discord.