Boys' Dorm
House location with a dedicated commentary system. Navigation link appears in House Hall (footer-clan hook), visible to everyone regardless of House Membership context or gender. Access is not gated by gender — every player who clicks through gets into the dorm; the module just tells a different joke depending on sex. Male characters get a one-line entry description. Non-male characters get a longer "caught sneaking into the boys' dorm" bit, complete with a public news post shaming them, on every visit. Where the Boys' Dorm turns out to have no bouncer at all — the "No Girls Allowed" energy is purely decorative.
Accessing the Boys' Dorm
Navigation:
- House Hall page (footer-clan hook)
- Link: "Boys' Dorm, [Location Name]"
Access Requirements: none, really.
- Gender: No restriction. Everyone who clicks the link gets in.
- Daily Limit: None. You can visit as many times as you like; nothing blocks re-entry.
- Location: The
boysdormloc/boysdormallsettings exist, but the code that would use them to gate access or hide the navigation link (thevillagehook) is commented out inboysdorm.phpand never registered. In practice the dorm link shows regardless of where you are.
What actually happens for non-male characters: instead of a denial message, the game posts a public news item — "The always sweet and innocent teacher's pet, [name], was caught flirting around in the Boys' Dorm after hours!" — and then lets you in anyway. There is no blocked-access branch anywhere in the module.
The Dorm Room
Entrance Description (male characters):
- "You walk up to a door covered with skulls, and toxic waste symbols. You push it open." — simple entry, no gate, no counter.
Entrance Description (non-male characters):
- First visit of the day: a longer bit about a sign reading "All pretty ladies welcome!", loud screaming and heavy metal music, and a comedic beat about "a room full of testosterone prone adolescent guys" — followed by the public shaming news post.
- Every subsequent visit that day: "You return to the boys' dorm again. What a flirt you are, you have already flirted in the boys' dorm [N] times today and here you are again!" The counter keeps incrementing with no cap and never blocks entry — it is flavor text only.
Commentary System:
- Dedicated commentary section: "boysdorm" (moderate hook)
- Open to any player who visits, regardless of gender or visit count
- Standard commentary features: post, view, color codes
The visitedtoday Preference — Flavor Only
visitedtoday Preference:
- User pref:
visitedtoday(int, default 0) - Incremented on every visit by non-male characters (not reset to a fixed "visited" flag — it counts up)
- Never checked or incremented for male characters at all
- Resets to 0 at newday (newday hook)
What it does NOT do: it does not gate entry, does not lock the room after one visit, and does not affect commentary access. Its only job is to pick which flavor-text branch a non-male character sees ("first time tonight" vs. "here you are again").
Location Configuration — Dead Code
The module defines two location settings, but the hook that would act on them is disabled:
boysdormloc / boysdormall
- boysdormloc: Intended single-city location for the dorm
- boysdormall: Intended toggle for "dorm exists everywhere"
- Reality:
boysdorm_install()comments outmodule_addhook("village"), which is the only hook that would have read these settings to gate the nav link by location. With that hook never registered, the settings have no effect on players — the dorm link appears viafooter-clanregardless of city.
Change Setting Hook: The changesetting hook still fires and keeps boysdormloc in sync if the admin renames a village, but since nothing reads that setting for gating purposes, it's bookkeeping without a visible effect.
Admin Configuration
Settings:
- boysdormall: Dorm exists in all cities? (bool, default 0) — defined but unused, since the
villagehook that would read it is commented out. - boysdormloc: Location of Boys' Dorm (location field, default: villagename) — same caveat.
User Preferences:
- visitedtoday: Visit counter used only for non-male flavor text (int, default 0, resets at newday). Does not gate anything.
Hooks Used:
- changesetting: Keeps
boysdormlocin sync with village renames - moderate: Adds the "boysdorm" commentary section
- newday: Resets
visitedtodayto 0 - footer-clan: Adds the navigation link in House Hall
- village (commented out, never registered): would have handled location gating if enabled
Companion: Girls' Dorm
The companion module (girlsdorm.php) is even simpler — it has no visitedtoday preference and no newday hook at all, so there's no visit tracking or daily-limit logic whatsoever, not even the flavor-only kind the Boys' Dorm has.
- Male characters entering trigger a public shaming news post ("Mr. Pervert, [name], was seen running away from the Girls' Dorm covered in vomit...") followed by that same flavor text every time — no counter, no escalation.
- Non-male characters get a straightforward entry description and access to the "girlsdorm" commentary section.
- Location settings:
girlsdormall,girlsdormloc— defined in the settings array but, as with the Boys' Dorm, there's no activevillagehook reading them, so they don't gate anything either.
Technical Details
Actual Access Logic (from boysdorm_run()):
if ($session['user']['sex'] == 0) {
// Male: simple entry, no gate, no counter
output("You walk up to a door covered with skulls, and toxic waste symbols. You push it open.");
} else {
// Non-male: comedic path, still lets them in
$visited = get_module_pref("visitedtoday");
if ($visited == 0) {
addnews("... was caught flirting around in the Boys' Dorm after hours!", $name);
output("... you open the door and enter the BOYS DORM!");
} else {
output("You return to the boys' dorm again. ... flirted $visited times today ...");
}
set_module_pref("visitedtoday", $visited + 1);
}
// Commentary is shown either way — no branch blocks entry.
Location Gating (as written, never active):
// boysdorm_install():
//module_addhook("village"); // <-- commented out; village hook never registered
module_addhook("changesetting");
module_addhook("moderate");
module_addhook("newday");
module_addhook("footer-clan");
Common Questions
Q: Can I be blocked from entering the Boys' Dorm?
A: No. There is no denial branch in the code. Everyone who clicks the link gets in; non-male characters just get different (and more embarrassing) flavor text plus a public news post.
Q: Is there a daily visit limit?
A: No. You can enter as many times as you want. The visitedtoday counter only changes which flavor text non-male characters see — it never blocks re-entry.
Q: Do the boysdormloc/boysdormall settings actually restrict where the dorm shows up?
A: No, not currently. The hook that would enforce them (village) is commented out in the install function, so the dorm link appears via House Hall regardless of city or setting.
Q: Is there a Girls' Dorm?
A: Yes, girlsdorm.php. It's even less restrictive — it has no visit-tracking preference or newday hook at all.
Q: What happens if a non-male character visits repeatedly in one day?
A: The "flirted N times today" flavor text keeps incrementing, and nothing stops it. It resets at newday.
Limitations
- No Real Gating: Neither gender nor location nor visit count actually restricts entry, despite the settings and preferences implying otherwise.
- Dead Location Settings:
boysdormloc/boysdormallare defined but unused because the enforcing hook is commented out. - Public Shaming, No Consent: Non-male visits trigger an addnews() post visible House-wide (or server-wide, depending on addnews scope) every day the visitedtoday counter resets to 0.
- Minimal Features: Just navigation + commentary + flavor text. No special dorm activities/minigames.
Boys' Dorm: where the door reads like a warning label — skulls, toxic waste symbols, a sign about pretty ladies being welcome — and yet nothing behind it actually stops anyone from walking in. The gender check exists only to decide which joke you get: male characters get a shrug and a doorknob, non-male characters get a public news bulletin announcing their scandalous flirting habit and a counter that racks up "times flirted today" with the enthusiasm of a Ministry auditor. The location settings look official enough to fool an admin into thinking they do something, right up until you notice the one hook that would enforce them is sitting there, commented out, quietly doing nothing for however many versions this module has shipped.