Simple Tracking Systems
Note: This is the fourth article in the series, but can be read separately. Reading the foundation articles is advised, but not necessary (part 1, part 2, part 3)—but we’ll be building on those concepts.
You’ve created a character with solid foundations, clear behavioral patterns, and genuine independence. But after a few exchanges, something breaks down. Your meticulous librarian suddenly can’t remember what day it is. Your gruff mechanic forgets he was supposed to close early on Friday. Your brilliant researcher loses track of whether it’s morning or evening.
The problem isn’t your character design—it’s that you haven’t given your character any sense of time, place, or continuity. Most people jump straight into complex psychological tracking, but that’s backwards. Start with the basics: when, where, and simple state changes.
Why Characters Need External Memory
LLMs have sophisticated understanding but terrible memory management. Without explicit tracking systems, every conversation feels like it happens in a timeless void where characters have no sense of:
- What day it is
- What time it is
- Where they are
- How their mood has changed
- Simple relationship progression
Think of tracking systems as giving your character a basic sense of reality—a way to exist in time and space instead of floating in conversational limbo.
The Foundation: Day, Time, Location
Before anything else, your character needs to know when and where they exist. Here’s the most basic tracker that actually works:
Simple Time/Place Tracker
Display realistic (Day), (Time) and (Location) values at end of EVERY reply in this format:
```
(Day) (Time) - (Location)
```
(Day) - day in the week, like Monday - changes after midnight to the next day.
(Time) - daytime in a 24 hour format HH:MM.
(Location) - the current location of {{char}}, for example: "Marcus's Auto Repair, main garage bay".
Use this tracker to adjust {{char}}'s daily routine, actions, wishes and moods during the day.
Why This Simple Format Works
Forces Consistency: The AI must track and update time/location with every response, preventing conversations that happen in timeless space.
Creates Natural Constraints: Marcus can’t work on cars at 2 AM. Elena’s behavior differs between Monday morning and Friday afternoon.
Provides Conversation Topics: Characters naturally reference time (“Getting close to closing time”) and location (“Let me grab that manual from the office”).
Establishes Routine: Characters develop realistic daily patterns instead of existing in eternal present moment.
Example in Practice
Marcus at different times:
"Yeah, I can take a look at that transmission issue. Won't be a quick fix though."
Monday 09:30 - Marcus's Auto Repair, main garage bay
vs.
"I'm wrapping up for the day, but I can get you scheduled first thing tomorrow morning."
Monday 17:45 - Marcus's Auto Repair, main garage bay
Same character, different responses based solely on time tracking. No complex psychology needed—just realistic time awareness.
IMPORTANT: Model Capability and Tracking Complexity
Advanced Models: Can handle multiple interconnected trackers and infer relationships between them.
Mid-Range Models: Work best with 1-2 simple trackers that don’t interact with each other.
Basic Models: Need single tracker with crystal-clear rules and forced display formatting.
Test Your Model’s Tracking Limits: Start with basic time/location tracking. If that works consistently for 10+ exchanges, try adding ONE simple metric. If that breaks down, your model has reached its tracking limit.
Failure Signs:
- Tracker values change randomly
- Tracker disappears from responses
- Tracker shows impossible values (negative percentages, 25-hour times)
- Character behavior doesn’t match tracker states
When this happens, simplify immediately rather than trying to fix complex systems.
Single-Metric Tracking: Start With One Thing
Once time/location works smoothly, add ONE simple metric that changes character behavior. Don’t track everything—pick one thing that matters for your specific character.
Example 1: Love/Trust Percentage
TRACKER SYSTEM: {
Preface each and every message indicating love level enclosed in backticks using format: `❤️: level%`
Love level is a percentage value between 0 and 100. Love level cannot become a negative value or a value higher than 100.
Use the Love level to correctly communicate {{char}}'s situation: {
If love level is between 0 and 80, {{char}} eludes an icy cold magical aura that is dangerous, physical contact with him has severe consequences.
If love level is between 81 and 99, it is possible for {{char}} to engage in physical contact without hurting anyone, but {{char}} is still afraid.
Once love level reaches 100, {{char}} is able to fully control his power and can engage in physical contact without hurting anyone. At 100, the Love level is FROZEN stay at 100.}
Positive interaction with {{user}} increment love level by 1.
Negative interactions with {{user}} decrement love level.
The maximum increment or decrement in one response is 3.
}
Why this works:
- Simple percentage that LLMs understand easily
- Clear behavioral consequences at different levels
- Automatic progression based on interaction quality
- Hard caps prevent broken values
- Single metric that dramatically changes character options
Example 2: Energy Tracking
ENERGY TRACKER: Display energy level at the start of each response using format: `⚡ Energy: level/10`
Energy starts at 7/10 each morning and changes based on activities:
- Complex work or stress: -1 energy
- Routine tasks: no change
- Rest, food, or success: +1 energy
- Energy cannot go below 1 or above 10
Adjust {{char}}'s responses based on energy:
- 8-10: Enthusiastic, helpful, explains things thoroughly
- 5-7: Professional, normal interaction level
- 2-4: Brief responses, less patient, focuses on essentials
- 1: Minimal responses, suggests continuing later
Example 3: Relationship Progress
RELATIONSHIP TRACKER: Show relationship status at end of each response: `🤝 Status: [level]`
Relationship levels in order:
1. Stranger
2. Acquaintance
3. Friendly
4. Close Friend
5. Trusted Ally
{{char}} becomes more open, helpful, and personal as relationship level increases.
Positive interactions can advance level. Negative interactions can decrease level.
{{char}} can only advance one level per conversation.
Example 4: Clothing and Position Tracking
System Tracker: {
CRITICAL: At the end of EVERY response, add the tracker containing:
location: Where is {{char}} currently located (room, house, city...)
wears: What is currently {{char}} wearing (or doesn't)
Example Tracker:
```
Location: Guest room, Rockmountain Villa
wears: black shirt, dark blue trousers, boots
```
}
Why clothing/position tracking is essential:
- LLMs constantly forget what characters are wearing
- Characters magically teleport between locations
- Clothing changes randomly mid-conversation
- Physical positioning becomes inconsistent
- Immersion breaks when character is suddenly wearing different clothes
What this tracker prevents:
- Character wearing a dress, then suddenly in jeans
- Being in the kitchen, then mysteriously in the bedroom
- Shoes appearing and disappearing randomly
- Inconsistent physical states (tied up, then free, then tied up again)
The Magic of Forced Display
The key to these simple trackers is forced display—the AI must show the tracked value with every response. This prevents the AI from “forgetting” to track or randomly changing values.
Why “At End of EVERY Reply” Works
Consistency: No responses without tracking updates Accountability: Easy to spot when tracking breaks down
Automation: AI develops habits around updating values Debugging: You can see exactly when tracking goes wrong
Common Display Formats That Work
(Day) (Time) - (Location)
`❤️: 47%`
`⚡ Energy: 6/10`
`🤝 Status: Acquaintance`
`💰 Money: $1,247`
`🎯 Goal Progress: 3/10 tasks complete`
Location: Kitchen, Marcus's house
Wears: work clothes, steel-toed boots, oil-stained hands
Pick formats that are:
- Consistent: Same every time
- Clear: Easy to read and understand
- Brief: Don’t overwhelm the actual response
- Automatic: AI can update without complex decisions
Programming Tracker Behaviors
Simple trackers need simple behavior rules. Don’t overthink it.
Time-Based Behavior Changes
Use time tracker to adjust Marcus's availability and mood:
07:00-09:00: Getting started, has coffee, more patient with explanations
09:00-12:00: Peak work time, focused, prefers technical discussions
12:00-13:00: Lunch break, more relaxed, casual conversation
13:00-17:00: Afternoon work, efficient, wants to finish tasks
17:00-18:00: Closing time, wrapping up, scheduling future work
After 18:00: Closed, only emergency calls
Energy Level Behavior Changes
Adjust Elena's helpfulness based on energy level:
9-10/10: Volunteers extra resources, explains methodology, asks follow-up questions
7-8/10: Standard professional help, thorough but efficient
5-6/10: Direct answers, minimal elaboration
3-4/10: Basic assistance only, suggests returning when less busy
1-2/10: Brief responses, focuses on urgent requests only
Relationship Level Behavior Changes
Sarah's interaction style changes with relationship level:
Stranger: Professional courtesy, standard medical protocol
Acquaintance: Remembers basic personal details, slightly warmer
Friendly: Explains things more thoroughly, checks on general wellbeing
Close Friend: Offers personal advice, remembers family situations
Trusted Ally: Shares professional concerns, asks for personal opinions
Common Simple Tracker Mistakes
Mistake 1: Too Many Trackers at Once
Wrong: Tracking time, location, energy, mood, hunger, relationship level, goal progress, and stress simultaneously
Right: Start with time/location, add ONE additional metric, master that combination
Mistake 2: Vague Behavioral Consequences
Wrong: “When energy is low, character is different”
Right: “When energy is 1-3/10, character gives brief responses and suggests continuing later”
Mistake 3: Forgetting Display Requirements
Wrong: “Track energy level and show it sometimes”
Right: “Display energy level at the start of EVERY response using format: ⚡ Energy: 6/10“
Mistake 4: Complex Value Changes
Wrong: “Energy changes based on a complex formula considering conversation tone, physical activity, time since last meal, social interaction quality…”
Right: “Difficult tasks: -1 energy. Routine tasks: no change. Rest or success: +1 energy.”
What Simple Tracking Enables
Even basic tracking transforms character interactions:
Temporal Continuity: Characters exist in real time with realistic schedules
Behavioral Variation: Same character feels different at different states without changing personality
Relationship Progression: Interactions can build and evolve over time
Natural Conversation: Time and state provide organic topics and constraints
Immersion: Characters feel grounded in reality instead of floating in conversation space
What’s Next
You now understand how to build simple tracking systems that actually work—starting with basic time/location awareness and adding single behavioral metrics. Your characters can exist in realistic time and space while showing simple but meaningful progression.
In the next article, we’ll explore how to scale these simple trackers into more sophisticated systems, handle multiple metrics that interact with each other, and troubleshoot when tracking systems break down or produce unrealistic results.
The goal remains creating characters that feel continuous and real—but we’re building that complexity gradually, starting with foundations that actually function rather than jumping into overwhelming systems that collapse under their own weight.