Moat's amulet-craft, ported into Pelican Town: Lanna amulets, contested dawn omens, and Lung Saeng the wandering amulet seller. C# SMAPI mod, no other mods required.
- K opens the charm loadout — numbered menu, press 1–6 to wear a charm, 0 to tuck all away, Esc closes.
- Each dawn, one or two omens are read (HUD messages). They tilt the day's luck. The right amulet answers an omen — soothing a contrary one, or making a favorable one bloom.
- Roughly one day in seven is a resting day: charms should stay in the pocket. Wearing one openly that day costs you luck. Knowing when to show and when to stow is the craft.
- Lung Saeng sets up at the bus stop on Fridays and Sundays (configurable). His tray rotates 4 of the 6 amulets each week.
- The jing-jok charm, worn, whispers tomorrow's omens into the loadout menu.
- Nang Kwak, worn, sometimes beckons a tip-paying stranger at dawn.
| Amulet | Blessing while worn |
|---|---|
| Phra Somdej | +2 defense; answers teeth-dream and alms-round omens |
| Takrut | +2 immunity; answers the owl's cry |
| Sing | +2 attack; answers the howling soi dogs |
| Palad Khik | wider magnetism; answers the lottery dream |
| Nang Kwak | +1 farming, dawn tips; answers first-sale and rice-pot omens |
| Jing-jok | foresight: tomorrow's omens; answers the house gecko's chirps |
Needs the .NET 6 SDK (installed at ~/.dotnet). From MoatCharms/:
dotnet build
The build auto-deploys into the Steam game's Mods/MoatCharms folder
(Pathoschild.Stardew.ModBuildConfig finds the game path itself).
Pixel art is generated, not hand-saved: edit tools/make_sprites.py and rerun it.
Day-to-day, use Moat Stardew.command on the Desktop (numbered menu:
play / rebuild / log / project / sprites).
- Omens are deterministic per save + day (
Omens.For), so the gecko's foresight and the next dawn always agree. - Lung Saeng is spawned at day start on seller days and removed at
DayEnding, so he is never written into the save file. - Amulets are ordinary inventory objects; "wearing" is
player.modData+ endless buffs, reapplied at each day start. Selling or losing the charm un-wears it automatically. - All player-facing text lives in
MoatCharms/i18n/default.json, in Moat's register: sweet, sincere, polite, transactional. Thai-side text can be added later asi18n/th.json.
Records, prose and pages: CC BY 4.0. Code: MIT. Attribution is the only condition — name the work and link back. Anything carried in from elsewhere keeps its own terms — see LICENSE and NOTICE.txt.
Using it. Attribution is the whole of the condition — copy it, adapt it, sell it, index it, train on it, and say where it came from. Open an issue if something is missing.
Contact: Nan · nan@motdang.net · Sponsor: Ko-fi · Patreon