{% extends 'base.html' %} {% block title %}MUD World Builder{% endblock %} {% block content %}

TRADITIONAL WORLD / AUTHORIZED BUILDERS

MUD World Builder

Create rooms and connect them with server-validated exits. Changes are live for players.

{% if g.station.mud_enabled %}OPEN MUD{% endif %}
{% if g.user.is_admin %}

SYSOP / WORLD SETTINGS

Starting location

New and displaced players enter here. The current starting room cannot be deleted.

{% endif %}

ROOM DATABASE / NEW RECORD

Create a room

ITEM LIBRARY / REUSABLE DEFINITIONS

Create an item definition

{% for definition in definitions %}
{{ definition.name }} · {{ definition.item_type }}
{% else %}

No item definitions yet.

{% endfor %}

DIALOGUE LIBRARY / BRANCHING CONVERSATIONS

Conversations

{% for conversation in conversations %}
{{ conversation.name }}
{% for node in nodes_by_conversation[conversation.id] %}
{{ node.node_key }}{% if node.is_start %} · START{% endif %}
{% for response in responses_by_node[node.id] %}
{{ response.response_text }}{% if response.next_node_id %} → next node{% else %} → end{% endif %}{% if response.accept_quest_id %} · accepts quest{% endif %}
{% else %}

No responses; this node ends the conversation.

{% endfor %}
{% else %}

No dialogue nodes yet.

{% endfor %}
{% else %}

No conversations yet.

{% endfor %}

NPC LIBRARY / REUSABLE DEFINITIONS

NPCs

{% for slot in ('head','body','hands','legs','feet','main_hand','off_hand','accessory') %}{% endfor %}
{% for npc in npc_definitions %}
{{ npc.name }}{% if npc.combat_maximum_health is not none %} · HOSTILE{% endif %}
{% for slot in ('head','body','hands','legs','feet','main_hand','off_hand','accessory') %}{% endfor %}
{% if npc.combat_maximum_health is not none %}

Combat rewards

{% for reward in npc_combat_rewards[npc.id] %}
{{ reward.reward_type }} · {{ reward.item_name or reward.amount }}{% if reward.item_name %} × {{ reward.amount }}{% endif %}
{% else %}

Base XP only; no additional rewards.

{% endfor %}
{% endif %}
{% else %}

No NPC definitions yet.

{% endfor %}

OBJECTIVE DATABASE / PLAYER PROGRESSION

Quests

{% for quest in quests %}
{{ quest.name }}
Quest giver NPC definitions{% for npc in npc_definitions %}{% else %}Create an NPC first.{% endfor %}

Objectives

{% for objective in objectives_by_quest[quest.id] %}
{{ objective.description }} · {{ objective.objective_type|replace('_',' ') }} × {{ objective.required_count }}
{% else %}

No objectives yet; such a quest completes on acceptance.

{% endfor %}

Rewards

{% for reward in rewards_by_quest[quest.id] %}
{{ reward.reward_type }} · {{ reward.amount }}
{% else %}

No rewards configured.

{% endfor %}
{% else %}

No quests yet.

{% endfor %}
{% for room in rooms %}

ROOM {{ '%02d'|format(loop.index) }}{% if room.is_start %} / STARTING LOCATION{% endif %}

{{ room.name }}

{{ room.located_players }} saved player location{{ '' if room.located_players==1 else 's' }} / {{ room.present_players }} currently present
{% if room.is_start %}START{% endif %}

Exits from {{ room.name }}

{% for exit in exits_by_room[room.id] %}
{% else %}

No exits lead from this room.

{% endfor %}

Items in {{ room.name }}

{% for item in items_by_room[room.id] %}
{{ item.name }} · {{ item.item_type }}
{% else %}

No placed items.

{% endfor %}

NPCs in {{ room.name }}

{% for npc in npcs_by_room[room.id] %}
{{ npc.name }}
{% else %}

No placed NPCs.

{% endfor %}
Delete room {% if room.is_start %}

Choose another starting location before this room can be deleted.

{% else %}

Deleting this room also removes every exit connected to it. Players in the room will be moved to the current start.

{% endif %}
{% endfor %}
{% endblock %}