thedivergentai/godot-mechanic-secrets
Implement cheat codes, hidden interactions, and unlockable meta-content via time-windowed input sequence buffers, spam thresholds, look-at (dot-product) detectors, progress-% unlocks, and meta persistence in user://secrets.cfg. Use when adding Konami-style codes, curiosity spam eggs, glimmer cues, lockout anti-brute-force, or gallery flags that must survive slot deletes. Keywords: Konami, sequence buffer, meta secrets.cfg, visibility detector, lockout, glimmer, spam threshold, progress unlock.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-mechanic-secrets
| Player action / design goal | Choose | MANDATORY script |
|----------------------------|--------|------------------|
| Exact button combo / Konami | Time-windowed input sequence | secret_sequence_combo_matcher.gd (+ secret_konami_legacy_code.gd for classic mapping) |
| Mash / click N times on a prop | Spam threshold | secret_interaction_spam_tracker.gd |
| Face a wall / look at a spot | Dot-product look-at (not ray spam) | secret_visibility_detector.gd |
| Clear X% of content / true ending | Progress % unlock | secret_progress_threshold_unlocker.gd |
| Rare vendor / ghost encounter | Weighted random encounter | secret_random_encounter_spawner.gd |
| Persist unlock across save slots | Meta secrets.cfg | secret_meta_persistence.gd |
| Stop macro brute-force | Lockout guard | secret_lockout_cheat_guard.gd |
| Secret grants stats/items in P2P | Server/peer validation | godot-adapt-single-to-multiplayer — validate unlock before applying combat/economy advantages |
Do NOT invent a fourth custom detector until the table above fails.
Expert logic for saving global unlocks and discovery flags across all save profiles.
View-dependent hidden wall detection using optimized Dot Product calculations.
MANDATORY for combos — Time-sensitive input buffer with suffix/window match (not full-buffer equality).
Logic for tracking repetitive player actions to trigger curiosity-based Easter Eggs.
Spatial logic for dynamically adjusting AudioBus effects in sealed or hidden areas.
Percentage-based unlocker for meta-content and 'True Ending' triggers.
Weighted random system for rarest-tier entities and secret vendor encounters.
Anti-brute-force lockout manager to protect secret integrity.
Subtle procedural visual cues for hinting at hidden interactables.
Specialized implementation of the iconic Konami code using the buffer matcher.
DEPRECATED — legacy helpers superseded by secret_* scripts. Do not wire new scenes here; migrate to secret_sequence_combo_matcher.gd, secret_interaction_spam_tracker.gd, and secret_meta_persistence.gd.
# Attach SecretSequenceComboMatcher (class_name) as a child of GameManager / Player
@onready var combo: SecretSequenceComboMatcher = $SecretSequenceComboMatcher
func _ready() -> void:
# Default sequences Dictionary already includes "Konami"; override or add:
combo.sequences = {
"GodMode": ["ui_up", "ui_up", "ui_down", "ui_down", "ui_left", "ui_right", "ui_left", "ui_right"]
}
combo.combo_achieved.connect(_on_cheat_unlocked)
func _on_cheat_unlocked(combo_name: String) -> void:
print("Unlocked: ", combo_name)
# Meta flag — NOT the per-slot SaveManager payload
SecretMetaPersistence.unlock_secret("god_mode") # via secret_meta_persistence.gd API
_process — Frame-dependent polling is unreliable for fast combos. Always use an event-based buffer like secret_sequence_combo_matcher.gd.secret_visibility_detector.gd for overhead efficiency.secret_meta_persistence.gd.PlayerPrefs (Godot's equivalent of Settings) for secrets — Use a dedicated user://secrets.cfg.secret_lockout_cheat_guard.gd to add a penalty for excessive failures.secret_audio_environment_occluder.gd to change the atmosphere._process.> MANDATORY when building achievement galleries, lore journals, or ghosted-secret visibility: read secrets-meta-patterns.md. Do NOT Load for basic combo/spam/look-at triggers — use the decision tree scripts above.
> Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.
_input / _unhandled_input), is_action_pressed, and echo filtering for cheat buffers._process polling.get_actions / event.is_action_pressed).user://secrets.cfg / user://meta_secrets.cfg placement across platforms.SecretData Resource patterns, emit_changed, and achievement bridges.sequence_matched / secret_spam_triggered buses so UI, audio, and achievements react without hard-wiring detectors.user://meta_secrets.cfg while run progress stays in versioned save slots.SecretData / lore Resources with emit_changed for achievement and journal bridges.Take thedivergentai/godot-mechanic-secrets from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.