Welcome to the Vitalia Reborn source code!
From this repository you can build the Vitalia Reborn Mud. Modify them in any way you can imagine, and share your changes with others!
We are trying to revive VitaliaMUD (A Brazilian mud from the earlier 2000 years based in CircleMUD) with a lot of bugfixes from tbaMUD. tbaMUD is continuing the development of CircleMUD.
We have a heap of documentation available on the web. If you're looking for the answer to something, you may want to start here: TBAmud.
If you need more, just ask! A lot of developers hang out on the forums, and we're proud to be part of a well-meaning, friendly and welcoming community.
Our branches is where we do the bugfixes and test new resources. They may pop-up from time to time as we stabilize new releases or hotfixes.
VitaliaMUD(originaly AbbaMUD) was created in 1995, in Universidade de Campinas (UNICAMP), by Vitor de Paula. In 2000, "O Mundo de Vitália" (VitaliaMUD). had some changes in the staff. The Reborn version is trying to bring back from this earlier glory with a lot of bugfixes and new resources as they were in the devs todo notes from before.
Vitalia Reborn supports creating aliases that execute multiple commands in sequence using semicolon (;) separation:
alias chess n;n;n;n;w;w;w;w
alias prep cast 'bless';cast 'armor';cast 'shield'
alias info score;time;who;weather
See md-docs/MULTILINE_ALIASES.md for detailed documentation and examples.
Vitalia Reborn implements a sophisticated genetic trait system that defines the innate behavioral tendencies of NPCs. Each mob has 12 genetic traits (range 0-100) that influence their personality and decision-making:
- Combat Traits:
wimpy_tendency(tendency to flee),brave_prevalence(courage in battle) - Social Traits:
group_tendency(forming groups),follow_tendency(following others) - Economic Traits:
trade_tendency(trading behavior),loot_tendency(taking items) - Exploration Traits:
roam_tendency(wandering),adventurer_tendency(exploration) - Utility Traits:
quest_tendency(accepting quests),use_tendency(using items/skills) - Support Traits:
healing_tendency(healing allies),equip_tendency(equipping items)
Key Features:
- Genetics initialize emotional baselines (e.g., high
brave_prevalence→ high courage emotion) - Traits influence mob behavior probabilities in real-time decision-making
- Quest success/failure can evolve genetic traits over time
- Statistical analysis available via the
gstatscommand for builders
Example Usage:
stat mob_name # View mob's genetic profile
gstats all healing # Analyze healing tendency across all mobs
gstats zone 30 adventurer # Check adventurer distribution in zone 30
For implementation details, see md-docs/GSTAT_GENETICS_UPDATE.md and md-docs/GENETICS_EMOTIONS_REPUTATION_INTERACTIONS.md.
Vitalia Reborn features a comprehensive 20-emotion hybrid system that creates realistic, dynamic NPC behavior through two layers:
Layer 1: MOOD (Global State)
- General emotional baseline stored per mob
- Influenced by environment, time, weather, and experiences
- Decays gradually toward genetic baselines
Layer 2: RELATIONSHIP (Per-Entity State)
- Specific feelings toward individual players/mobs
- Stored in circular memory buffer (10 recent interactions)
- Weighted by recency and importance
20 Emotion Types (0-100 scale):
- Basic: fear, anger, happiness, sadness, pain
- Social: friendship, love, trust, loyalty
- Motivational: curiosity, greed, pride, excitement
- Empathic: compassion, envy, shame
- Complex: disgust, horror, humiliation, courage
Behavioral Effects:
- Combat: Anger increases attack power, pain reduces effectiveness
- Social: Emotions determine social interaction frequency and type
- Trading: Trust affects shop prices and service availability
- Decision-Making: Emotions modify action scores in Shadow Timeline projections
Integration:
- Genetics initialize emotional baselines
- Events (combat, healing, socials) update emotions dynamically
- Emotions influence moral reasoning and reputation changes
- Alignment (good/evil/neutral) modifies emotional tendencies
Example:
// Shopkeeper trusts this specific customer
int trust = get_effective_emotion_toward(keeper, buyer, EMOTION_TYPE_TRUST);
if (trust >= 60) {
price *= 0.90; // 10% discount for trusted customer
}For technical details, see HYBRID_EMOTION_SYSTEM.md and EMOTION_SYSTEM_TODO.md.
The Moral Reasoning System implements Shultz & Daley's rule-based model for qualitative moral judgment, enabling NPCs to evaluate the ethical implications of their actions with full emotion system integration.
Core Concepts:
- Responsibility: Did the entity cause the harm? Was it voluntary and foreseeable?
- Intent: Was harm planned (strong intent) or reckless/negligent?
- Justification: Did the goal outweigh the harm? Were there less harmful alternatives?
- Blameworthiness: Responsible + Unjustified + (Harm > Benefit) = Guilty
10 Moral Action Types:
- Attack, steal, deceive, betray, abandon ally
- Help, heal, defend, trade, self-sacrifice
Integration with Game Systems:
-
Shadow Timeline: Moral costs modify action projection scores
- Guilty actions receive negative scores (discouraging immoral behavior)
- Helpful actions receive positive scores (encouraging altruism)
- Alignment affects moral sensitivity (2x penalty for good-aligned, 0.5x for evil)
-
Emotion System: Bidirectional influence
- Emotions → Morality: Compassion increases harm sensitivity, anger reduces it
- Morality → Emotions: Guilty actions trigger shame/disgust, moral acts increase pride
-
Alignment & Reputation: Actions have consequences
- Guilty actions shift alignment toward evil, damage reputation (for good mobs)
- Moral actions shift toward good, build reputation
- Evil mobs gain "infamy" reputation from guilty acts
Example Scenario:
Good-aligned guard evaluating attack on innocent:
- Base moral cost: -40 (guilty action)
- Good alignment: -40 × 2 = -80 (strong aversion)
- High compassion: -80 - 13 = -93 (even stronger aversion)
Result: Guard will not attack innocent target
Validation: Tested against 202 scenarios from original research (102 guilty, 100 innocent cases).
For complete documentation, see docs/MORAL_REASONING.md and dataset at lib/misc/moral_reasoning_dataset.txt.
The Shadow Timeline (RFC-0003 compliant) is a cognitive future simulation layer that allows autonomous NPCs to internally explore possible outcomes of actions before executing them, creating more intelligent and realistic behavior.
Core Principles:
- Non-authoritative: Proposes possibilities, never asserts facts
- Observational only: Never mutates real world state
- Cognitively bounded: Limited by entity capacity (500-1000 points)
- Subjectivity: Different mobs generate different predictions based on emotions and genetics
- Non-persistent: Predictions are ephemeral, not recorded
How It Works:
-
Projection Generation: Mob simulates multiple possible actions
- Movement, combat, fleeing, social interactions, item use, spells
- Each projection has a cognitive cost (3-20 points depending on complexity)
-
Outcome Scoring: Each action receives a score based on:
- Danger level, reward potential, goal achievement
- Emotional state (fear amplifies danger, courage reduces it)
- Moral implications (integrated with moral reasoning)
- Genetic traits (brave mobs prefer aggressive actions)
-
Action Selection: Best-scoring projection is executed in real world
-
Capacity Regeneration: 50 points per tick, allowing continuous operation
12 Action Types:
MOVE,ATTACK,FLEE,USE_ITEM,CAST_SPELLSOCIAL,TRADE,QUEST,WAIT,FOLLOW,GROUP,GUARD
Enabling Shadow Timeline:
Note: Builders should use the in-game
mediteditor to configure mob flags. The example below shows the conceptual representation, but actual.mobfiles store flags as encoded bitvector values.
Recommended method (using medit online editor):
1. In-game: medit <vnum>
2. Choose: F) Mob Flags
3. Toggle: SHADOWTIMELINE
4. Save: Q) Quit and save
Conceptual representation in .mob files:
#12345
mob_name~
short description~
...
ISNPC SHADOWTIMELINE <-- Conceptual flag representation
Example Use Cases:
- Merchant evaluates whether attacking would harm trade reputation
- Guard predicts if leaving post would endanger patrol area
- Healer foresees benefit of using healing spell vs. attacking
- Thief estimates risk/reward of stealing valuable item
Sentinel Compatibility:
Mobs with both MOB_SENTINEL and MOB_SHADOWTIMELINE intelligently balance:
- Staying at post when no threats present (guard duty)
- Evaluating combat options when attacked (using cognitive simulation)
- Returning to post after handling threats (prioritized movement)
Performance:
- Memory: ~1KB per mob with Shadow Timeline active
- CPU: Lightweight heuristics, no recursive searches
- Bounded by cognitive capacity to prevent runaway computation
For architectural details and RFC-0003 specification, see docs/SHADOW_TIMELINE.md and RFC_0003_DEFINITION.md.
Your private forks of the Vitalia Reborn code are associated with your GitHub account permissions. If you unsubscribe or switch GitHub user names, you'll need to re-fork and upload your changes from a local copy.