#making-mods-general

1 messages · Page 71 of 1

lucid iron
#

ill make sure to include the exact nightly 1.6.9 build verison it works on

uncut viper
#

booberry i think you may be overestimating how much time you have left to c omplete this just a teensy bit

velvet narwhal
#

looks at timer

brittle pasture
#

halloween's still 3 weeks away right

brave fable
#

oh that's less than 3 weeks

uncut viper
#

its less than 2!

#

and now i gotta find time to bake as well..

brave fable
#

how time flies when ur having fun

velvet narwhal
#

<t:1730419200:R> SMCKekLmaoDog

brave fable
#

i'm cooking real hard with this mod. could probably get away with posting it in both channels

uncut viper
#

i still wanna enter the art and writing contests too. also still in uni. not enough time in the day SDVpufferdizzy

#

(i know the writing one isnt a contest i was just typing fast)

velvet narwhal
#

i speedran it all inbetween job apps

brave fable
#

if you make an event script long enough, can you post it in writing-contest too SDVpufferthinkblob

brittle pasture
#

it isnt a contest but mods will still highlight their fav ones
a not-not-contest

uncut viper
#

a prestige contest

lucid iron
#

the thought of posting art and writing fills me with horror terror so i am slacc on those

velvet narwhal
#

I DIDN'T WANNA BE THE FIRST ONE TO PUT MY WRITING UP BUT I SAID SCREW IT

brittle pasture
#

I cooked up a shitpost in 20 min for writing, you can do it

brittle ledge
#

Are there any good NPC pathfinding troubleshooting tools in 1.6? I really miss GIMA.

uncut viper
#

actually for people who have been here for prior contests/mod jams, has it ever been said if there was like. certain criteria things are judged on. or is it just vibes

velvet narwhal
#

very glad selph came in behind with the IRS

lucid iron
#

yea hm the contest doesnt even say what awards there are bolbthinking

#

is it just a top 3

uncut viper
#

you get a game key

velvet narwhal
brave fable
lucid iron
#

or do they have category

uncut viper
#

you get a game key if you win (your choice from a list) and you also get entered in a raffle just for entering

#

i think the raffle is also for game keys

lucid iron
brave fable
#

novelty, effort, detail, polish, heart, that's all i really considered

#

nope, not really

uncut viper
brave fable
#

ofc it's been a year at least and it's different people doing it and everyone does it their own way

#

i don't remember if we had one person in multiple contests previously, the nature of the server usually means people just post their one thing

velvet narwhal
#

every judge has their own vibes

brave fable
#

ofc with hundreds of submissions you wouldn't notice the same person unless they won both

#

man there were a lot of submissions lol

uncut viper
#

i plan on entering like, everythin, so... i just wanted to make sure i shouldnt want to only enter in the mod one if thats the one i cared about most lol

#

like if i didnt wanna ruin my chances with it so to speak by entering another one
(not that i think im a shoe in for art or writing or anything anyway, i just consider these things regardless)

brave fable
#

as far as categories go, novelty factor means uniquely different submissions naturally have a higher chance to place higher, so for example sculpture/crochet/watercolour will probably have a higher chance of getting top 5 than digital art if there's 10 times as many digital submissions

valid folio
#

Hello, people. How are you? I made several mods, SMAPI loads them correctly, no errors but InGame they don't work correctly.

Actually out of three mods one is the one that doesn't work properly. They are not complicated mods, in fact I had already done something similar but now I'm getting something wrong and I don't know what it is, I know what they are but not their causes.

brave fable
#

again though, up to whoever's reviewing them SDVpufferthumbsup

lucid iron
#

are they C# or content patcher

valid folio
#

The errors are as follows:

  1. the ingredients of the cooking recipes are not the correct ones, it does not use ingredients from the base game, but others from a mod I made but apparently I have not indicated them correctly.

  2. I can buy the recipes and they appear correctly in the shop but they do not appear in the kitchen to elaborate them.

  3. I want to introduce a certain item to the dehydrator but it does not allow me to do it.

However the mod to create vodka and rum using the game's own barrels works correctly, I used the same principle for the dehydrator but it did not work.

brittle pasture
#

post your code maybe?

brave fable
#

!json pls

ocean sailBOT
#

JSON is a standard format for machine-readable text files that's used by Stardew Valley mods.

If you need help with a JSON file, you can upload it to smapi.io/json to see automatic validation and share the link here.

When making mods, it's recommended to edit your files in a text editor with JSON support, such as VS Code, Notepad++, or Sublime Text. These programs will check for syntax errors.

valid folio
# ocean sail

I know but unfortunately I only have 20% vision normally and I find it easier to use notepad than the other dedicated software.

Anyway I validated the files and they did not give any errors, now I will publish the files, give me a second.

#

that's the mod that gives problems

#

the machines.json I just saw that it gave an error in the validator, on line 22

brittle pasture
#

for machines.json, per the error on the validator page, you have two entries with the same ID

#

you can give them different IDs, however since they both have the same output you can merge them into one

#

and edit Triggers to have two entries, one for each input

valid folio
lucid mulch
#

the cooking recipes dont work due to not referencing valid inputs or yield

tough crater
#

SORRY FOR GOING AFK
I re-read the code and I realized that it was "HasMod|<ModId>" instead of "HasMod": "<ModId>" 💀

#

It makes sense now

brittle pasture
old edge
#

How are the light rays added in the island_east map?

old edge
#

I checked the decompiled code but didn't see anything about light rays

lucid mulch
#

note the itemid's should be {{ModId}}_infusion_vodka

brave fable
#

search for LightRays, it's used in IslandForestLocation

old edge
#

Interesting

#

If I'm adding code to a farm do I add the type with spacecore like a location?

valid folio
brave fable
#

custom type farms seems like a worry; if people change their farm map down the line you could have trouble

rancid temple
#

You need to use whatever the item ID is for those items

brittle pasture
lucid mulch
#

if nandodrinks.Vodka is actually an item thats fine, but the yield of {{ModId}} isn't an item

brave fable
#

you might just want a method to draw light rays if the location matches some values you expect, like a map property

old edge
#

Yeah I was hoping there was a secret map property

#

What if I just animate it using tiled...

#

And paste it in

brave fable
#

possible, you'd just need a lot of alwaysfront tiles and make sure the seam at the top isn't visible

#

i have no idea what the island forest looks like btw

valid folio
valid folio
lucid mulch
#

the yield should be what you want the cooking recipe to make

#

so {{ModId}}_infusion_vodka or something

rancid temple
#

I think the question about whether nandodrinks.vodka is a valid item ID is because the ones you shared have {{ModId}} so the assumption becomes that your other ones do too

#

If it's from a different mod and it has the {{ModId}} token then you need to include the UniqueID from the manifest of the other mod wherever you're trying to use it

valid folio
brave fable
#

isn't this how you're meant to do page breaks SDVpufferfush

#

🪙 b...

rancid temple
#

For example: in order to use {{ModId}}_infusion_vodka in other mods you would need to reference it as hayato2236.Extracto_Vainilla_infusion_vodka in other mods

old edge
#

Oh yeah I used those page breaks but some people say it shows the coin idk why

velvet narwhal
#

if it broke that means something is missing, is it fully #$b#?

brave fable
#

is this the right format?
$sLine 1..#$b$s#Line 2.

velvet narwhal
#

squints what's $s again

#

emote?

brave fable
#

sad portrait, i hope

rancid temple
#

$s#$b#

velvet narwhal
#

<actual dialogue> [emotes/item/action][page break]

uncut viper
#

dialogue strings looking like a bag of chex mix

brave fable
#

if you think dialogue's bad you should see my events SDVdemetriums this is advanced ugly

valid folio
brave fable
#

oh wait why am i even picking spouse/roommate/random, can i query some character by highest friendship?

#

without registering a new cp token

old edge
#

What location is this?

brittle pasture
#

nope, to the C# mines you go

brave fable
#

island shrine i think?

#

i keep going there by accident when trying to go to my own shrine lol

brittle pasture
#

east of island, where you place 4 gems to offer from the birds and get golden walnuts

old edge
#

Is the map set darker or something?

valid folio
old edge
#

I want to make an outdoors location but I want it dark like this

rancid temple
#

Recipes in shops are very finnicky, they have to be exactly right or they'll have all kinds of problems

brave fable
velvet narwhal
#

oh

#

atra gave me the ambient light cheat sheet hold on SMCKekLmaoDog

#
            {
                // set the IsOutdoor thing in the map props.
                loc.ignoreDebrisWeather.Value = true;
                loc.ignoreOutdoorLighting.Value = true;
            }```
#

why did it take all of my whitespace

old edge
#

But doesn't ambient light property only work in indoors?

velvet narwhal
#

this one lets me set the ambientlighting map property

#

that's meant for indoors, yes

old edge
#

You made it work outdoors with some code?

velvet narwhal
#

i made it ignore the day/night ambient lighting

old edge
#

Ok that should be ok for a island map I think

rancid temple
valid folio
rancid temple
#

You can use the field ObjectInternalName to try to match the item you're attempting to sell a recipe for

old edge
#

So I probably don't need spacecore for adding that to my farm location?

valid folio
rancid temple
#

I have so many different examples of cooking recipes and shops and mail lol, can't find one similar to this issue

brittle pasture
#

wiki page: The game will unlock the recipe with the ID equal to the item query's ObjectInternalName field, or the target item's internal Name (which defaults to its ID) if not set.

calm nebula
#

Also like

#

If you have the word Recipe in that name, good luck!

brittle pasture
#

thats fixed in 1.6.9 right

rancid temple
#

I thought that was fine before also

calm nebula
#

Fixed in 1.6.9

valid folio
rancid temple
#

Yeah, I was using Recipe in 1.6.8 without any particular issues

brittle pasture
#

you don't have Recipe in the ItemId though

rancid temple
#

Oh that's true, but I dunno why I would lmao

brittle pasture
#

or ObjectInternalName

rancid temple
#

Was that the issue?

brittle pasture
#

there was a mod maker who was running into phantom issues because their mod ID has Recipe in the name

#

and they were using {{ModId}}_Something as their item ID

rancid temple
#

Ah

brittle pasture
#

debugging that was a 'fun' 30 min

valid folio
#

I got lost, I don't know what you need

brittle pasture
#

you should fix the ModId issue first, and when things still dont work come back here with your updated files

#

feel free to ignore the chatter haha

lucid mulch
#

your items Name field is infusion_vodka and infusion_ron but the recipes key is infusion_vainilla

#

so when you buy the recipe associated with infusion_vodka it cant find any recipes to unlock because the recipes associated with an unknown item

rain basalt
#

Evening all been away a bit had some things to take care of 😉 any major changes to file structure I need to know about before hitting my mods again

valid folio
brittle pasture
rain basalt
#

Hmm 🤔 between 1.6 and 1.6.9

lucid mulch
#

not much changed between 1.6.0 and 1.6.8

#

1.6.9 isnt as extreme as 1.6.0 for content mods

brittle pasture
#

also the item coloring stuff ig

rain basalt
#

Ah I used CP for 99.9%

brittle pasture
#

yeah the only 'breaking' CP changes I recall is that if you have a mod that adds a custom colored items (flowers, artisan goods, etc.) you need to set a new field in item data, otherwise it will look weird

valid folio
calm nebula
rain basalt
#

K my 3 main mods shouldn’t be broken then since there building additions for Robin and a reskin of mailboxes and buildings

zinc rapids
#

How do I make my own map?

brittle pasture
zinc rapids
#

Thanks

rain basalt
zinc rapids
#

is that a mod?

rain basalt
#

It’s a program for making maps for games using tiles like stardew

uncut viper
#

Tiled is still the go to for stardew modding

rain basalt
#

Perfect lol don’t have to learn a new program SDVpufferheart

lucid iron
#

A lot of data stuff changed, for migration help it's best if u can tell us which mod

rain basalt
#

Hmm 🤔 the ones I have published besides house lights the others should be working fine I’ll do a through test and check and republish if no major issues found but you can find me on vortex under Celestia87

calm nebula
#

those who know lookup anything: I'm looking for the part of the code that generates the "fish spawns where?" block

#

trying to figure out why pufferchick doesn't have it rn

lucid iron
#

Oh it's fish spawn field

calm nebula
#

pufferchick is in Data/Locations

#

pufferchick is in Data/fish

#

what am I missing?

#

Pufferchick is fishable

lucid iron
calm nebula
#
string original_condition = $"PLAYER_HAS_CAUGHT_FISH Current (O)128, PLAYER_HAS_MAIL Current {AquariumPlayerHasChicken} Any";
SpawnFishData basePuffer = new()
{
    ItemId = PufferchickQID,
    Id = PufferchickQID,
    IsBossFish = true,
    CatchLimit = 1,
    Condition = $"{original_condition}, {AquariumGameStateQuery.RandomChanceForPuffer}"
};
``` pufferchick
lucid iron
#

Maybe I derped here iono

tardy adder
#

😦 idk how to glowy or if I can even glowy

{
"Action": "EditData",
"Target": "Mods/mistyspring.ItemExtensions/Data",
"When": {"HasMod": "mistyspring.ItemExtensions"},
  "Entries": {
      "ManaFertilizer": {
        "LightData":{
            "Size": 2.5,
            "R": 0,
            "G": 227,
            "B": 54,
            "Transparency": 0.75,
        },
      },
}
calm nebula
#

thanks! I'll take a look when I get home

lucid iron
#

(that pr was for chest tuna fix)

brittle pasture
tardy adder
#

I tried with that too

#

No go

brittle pasture
#

you also need to use the qualified ID as the key

#

(O)ManaFertilizer

tardy adder
#

also tried with that, no go

#

ok somehow the SPF food dialogue works but not the light 9-9

#

Time to reload 😄

brittle pasture
#

I got nothing lol. did you restart the game?

tardy adder
#

I am about to restart it again, on a fresh save this time

#

I discover my old mistreated test saves don't like me

brittle pasture
#

likely that light stuff only restart on day start

valid folio
valid folio
tardy adder
#

Selph always patiently witnessing my disasters

valid folio
#

Also now I have a translation error but it is not something that worries me, I prefer to solve the other problems.

brittle pasture
valid folio
#

At least the mod items keep their correct names and descriptions, and can be generated without problems.

valid folio
brittle pasture
#

the original mod's item is nandodrinks.Vodka, while you're using Hayato2236.nandodrinks_nandodrinks.Vodka in your recipe

#

same with Rum

brave fable
#

[Content Patcher] Ignored dynamic token 'Quit': the token value is invalid: '{{i18n.menu.quit}}' can't be used as a token because that token could not be found.
nooo wtf

near sierra
#

I have a question - I'm trying to create a quest that requires you to visit a certain location at a certain time. However, it's extremely unclear just how you're supposed to do that. The raw quest data is on the relevant wiki page, but those quests are marked under the "basic" category, and they don't have a solution attached to them. So how exactly do those quests get marked as complete by the code?

calm nebula
#

ugh, still can't figure out why lookup anything no understand pufferchick

brave fable
#

i might've just noticed that this very second lol

calm nebula
#

you're welcome, from the person who once wrote {{i8n: blah}} and could not figure out what was wrong

brave fable
#

intlerston...

tiny zealot
calm nebula
#

(any Location quest, maybe)

#

try quest 16

#

any more conditions than "just show up there while quest is active" may be hard to do without C# though

brave fable
#

ok this one's actually a problem:
Error parsing 'Nightmare}}' as a tokenizable string
can i use a config value in a dynamic token?

"ConfigSchema": {
    "Nightmare": {
        "AllowValues": "true, false",
        "Default": "false"
    }
},
"DynamicTokens": [
    {
        "Name": "Quit",
        "Value": "{{i18n:menu.quit}}"
    },
    {
        "Name": "Quit",
        "Value": "{{i18n:menu.quit.nightmare}}",
        "When": {
            "{{Nightmare}}": "true"
        }
    }
]
brittle pasture
#

I think you just do "Nightmare"?

uncut viper
#

er

#

braces

brave fable
#

oh bless, ty

uncut viper
#

outer braces

valid folio
brittle pasture
#

because they refer to the same item, so they have to match exactly

#

mod ID doesn't matter

brittle pasture
#

let me clarify - you must use nandodrinks.Vodka in your recipe

#

the item is named nandodrinks.Vodka, so you must type in nandodrinks.Vodka for your recipe

valid folio
calm nebula
#

I am in data/locations. I am in data/fish. I am a fish

brittle pasture
#

because that is your own item

calm nebula
#

what. am. I. missing

brittle pasture
valid folio
calm nebula
#

maybe I go write 300 word about wizard and get a purple color instead

latent mauve
#

but is atrafish a freshwater or saltwater fish?

#

😛

brittle pasture
#

you use the name it is given

brittle pasture
#

yes, and the mod ID is not in nandodrinks.Vodka

#

if you want to use hayato2236.nando_vanilla_nando.Vodka, name your item {{ModId}}_nandodrinks.Vodka

#

wait give me a moment, let me correct the names

valid folio
brittle pasture
#

sorry I mistyped, and you don't have to send the files

#

one more time: your item is named nandodrinks.Vodka, so you have to use that value in your recipes

#

if you want to use Hayato2236.nandodrinks_nandodrinks.Vodka you have to rename the item to Hayato2236.nandodrinks_nandodrinks.Vodka

#

and the line below it

lucid iron
#

very sad that putting Passable T on building tile prop doesnt just werk

brittle pasture
#

I think what ppl do is put non passable on Back instead? But Passable T should work though

lucid iron
#

does that work for buildings

#

farm buildings not map buildings layer

brittle pasture
#

in that case ignore me

valid folio
brittle pasture
#

because that's how the mod author coded them

valid folio
latent mauve
#

Not sure why, but my shed is behaving oddly if I try to change the building exterior's size.

#

It acts like it has an offset when it doesn't, even though the texture and the Size for collision match.

valid folio
calm nebula
#

And VS crashes my computer

#

Maybe I should buy a new one

brittle pasture
#

(anyway I must run for a couple hours, other people here can help you!)

calm nebula
#

Literally has been doing the spinny on the...wgar

brittle pasture
near sierra
valid folio
tiny zealot
near sierra
calm nebula
#

lols in forgets to install content patcher

valid folio
# brittle pasture because that's how the mod author coded them

Now I have to correct the problem of the translation that I think I know how to do it and the problem that it has no sprite, in theory I think I know how to solve them, in theory....

Is it possible to unify everything in a single mod? This way I don't force to download several mods to those who want to download them.

lucid iron
# brittle pasture (ok one last thing before I run though: what about `CollisionMap`)

deranged syntax but i think this is exactly what i want bolbpopcornhat

/// <summary>
///   If set, an ASCII text block which indicates which of the building's tiles the players can walk onto, where each character can be <c>X</c> (blocked) or <c>O</c> (passable). Defaults to all tiles blocked. For example, a stable covers a 4x2 tile area with the front two tiles passable:
///   <code>
///     XXXX
///     XOOX
///   </code>
/// </summary>
[ContentSerializer(Optional = true)]
public string CollisionMap;
#

all i gotta do is change the obelisk warp actions then

calm nebula
#

Hey @ivory plume , sorry, but I can't figure out why pufferchick doesn't show up in LookupAnything as a fishable fish...

data/fish

"Cherry.StardewAquarium_Pufferchick": "Pufferchick/95/mixed/28/28/0 2600/spring summer fall winter/both/688 .05/5/0/0/0/false"
#

puffer's entry in Data/Locations

      {
        "Chance": 1.0,
        "Season": null,
        "FishAreaId": null,
        "BobberPosition": null,
        "PlayerPosition": null,
        "MinFishingLevel": 0,
        "MinDistanceFromShore": 0,
        "MaxDistanceFromShore": -1,
        "ApplyDailyLuck": false,
        "CuriosityLureBuff": -1.0,
        "SpecificBaitBuff": 0.0,
        "SpecificBaitMultiplier": 1.66,
        "CatchLimit": 1,
        "CanUseTrainingRod": null,
        "IsBossFish": true,
        "SetFlagOnCatch": null,
        "RequireMagicBait": false,
        "Precedence": 0,
        "IgnoreFishDataRequirements": false,
        "CanBeInherited": true,
        "ChanceModifiers": null,
        "ChanceModifierMode": "Stack",
        "ChanceBoostPerLuckLevel": 0.0,
        "UseFishCaughtSeededRandom": false,
        "Condition": "PLAYER_HAS_CAUGHT_FISH Current (O)128, PLAYER_HAS_MAIL Current StardewAquarium.PlayerHasChicken Any, StardewValleyAquarium_RANDOM_CHANCE_FOR_PUFFER",
        "Id": "(O)Cherry.StardewAquarium_Pufferchick",
        "ItemId": "(O)Cherry.StardewAquarium_Pufferchick",
        "RandomItemId": null,
        "MaxItems": null,
        "MinStack": -1,
        "MaxStack": -1,
        "Quality": -1,
        "ObjectInternalName": null,
        "ObjectDisplayName": null,
        "ToolUpgradeLevel": -1,
        "IsRecipe": false,
        "StackModifiers": null,
        "StackModifierMode": "Stack",
        "QualityModifiers": null,
        "QualityModifierMode": "Stack",
        "ModData": null,
        "PerItemCondition": null
      },
#

puffer in Data/Objects

  "Cherry.StardewAquarium_Pufferchick": {
    "Name": "Pufferchick",
    "DisplayName": "[LocalizedText Strings\\Objects:StardewAquarium_Pufferchick_Name]",
    "Description": "[LocalizedText Strings\\Objects:StardewAquarium_Pufferchick_Description]",
    "Type": "Fish",
    "Category": -4,
    "Price": 2000,
    "Texture": "Mods/StardewAquarium/Items",
    "SpriteIndex": 2,
    "Edibility": -200,
    "IsDrink": false,
    "Buffs": null,
    "GeodeDropsDefaultItems": false,
    "GeodeDrops": null,
    "ArtifactSpotChances": null,
    "CanBeGivenAsGift": true,
    "CanBeTrashed": true,
    "ExcludeFromFishingCollection": false,
    "ExcludeFromShippingCollection": false,
    "ExcludeFromRandomSale": false,
    "ContextTags": [
      "fish_legendary"
    ],
    "CustomFields": null
  }
#

is there something really obvious I'm missing?

#

I can't figure it out, my apologies!

ivory plume
#

Looks like an edge case which occurs when a fish can only be caught via Data/Fish and has no entries in Data/Locations fish fields:

// get spawn data
FishSpawnData? spawnRules = gameHelper.GetFishSpawnRules(fish);
if (spawnRules?.Locations?.Any() != true)
    yield break;
```'
calm nebula
#

It has a Data/Locations fish field!

ivory plume
#

Oops, missed that.

calm nebula
#

I copied the exports just to make sure the edits took

ivory plume
#

The data all looks correct, so not sure off-hand why it's not showing up. I'd need to debug with a repro content pack to see what it's doing.

calm nebula
#

I can send you the slightly cut down version of Aquarium I'm debugging with, which is basically "Aquarium but with dependencies commented out"

#

slash I got lazy.

ivory plume
#

(But with 1.6.9 releasing in two weeks, it might be a bit before I can look into mod issues like that.)

topaz salmon
#

How come we still haven't had a mod where you can lock houses in MP yet?

velvet narwhal
#

Isn't pif a personalized farmhouse

uncut viper
#

probably cause most people who play MP wouldnt find it necessary so theres no drive to make it. you can be the one though!

calm nebula
velvet narwhal
fathom hound
#

this makes no sense

queen merlin
#

I'm trying to edit the torch offset for a custom fence texture and I'm getting this error: [Content Patcher] Can't apply data patch "Better Fence Gates > EditData Data/Fences" to Data/Fences: the field '322' > 'HeldObjectDrawOffset' has type 'Microsoft.Xna.Framework.Vector2', which isn't recognized by Content Patcher
Is this not a thing that can be done or did I mess up my EditData entry?

      "Action": "EditData",
      "Target": "Data/Fences",
      "TargetField": [
        "322",
        "HeldObjectDrawOffset"
      ],
      "Entries": {
        "y": 0
      }
    }```
valid folio
#

Finally, thank you Shadow Selph, wherever you are!

uncut viper
ivory plume
# queen merlin I'm trying to edit the torch offset for a custom fence texture and I'm getting t...

Content Patcher doesn't know how to use a Vector2 field as a model currently. You'll need to edit one level higher instead:

{
  "Action": "EditData",
  "Target": "Data/Fences",
  "TargetField": [ "322" ],
  "Entries": {
    "HeldObjectDrawOffset": { "X": someValue, "y": 0 }
  }
}

Or using the shortcut for a one-level-deep edit:

{
  "Action": "EditData",
  "Target": "Data/Fences",
  "Fields": {
    "322": {
      "HeldObjectDrawOffset": { "X": someValue, "y": 0 }
    }
  }
}
queen merlin
#

I see, thanks!

velvet narwhal
#

i would assume that the title-less letters just wouldn't show? --oh

uncut viper
#

theyd show with the "missing translation" string

fathom hound
#

do i need to fix that?

uncut viper
#

i mean that part is a legitimate bug that should be fixed. your letters currently dont have names and show as error strings

#

i just dunno why theyd be gettin repeat letters

fathom hound
#

How do I fix that?

uncut viper
#

add i18n keys for the letter names

#

"EmilyAcaiBowlLetter": "{{i18n:Mail.Emily.EmilyCooking.LetterText}}^%item cookingRecipe {{ModId}}_AcaiBowl %%[#]{{i18n:Mail.Emily.EmilyCooking.LetterName}}",

velvet narwhal
#

exactly the same way that you did the letter context

uncut viper
#

the letter title is that second i18n token at the end

#

but you dont have anything written in your default.json in your i18n folder for it

#

these are the letter names that are shown when you look at the letters in your Collections page on the pause menu

brave fable
#

anyone interested in playtesting my halloween contest entry SDVdemetriums

fathom hound
velvet narwhal
#

actually, how does that interact with the cookingrecipes

uncut viper
#

exact same way you'd do the i18n for anything else, yep

velvet narwhal
#

is it because it's title-less that it's the only real reason why it's repeating?

uncut viper
#

id probably ask them what recipe in particular is being repeated

velvet narwhal
#

"{{ModId}}_AcaiBowl": "-6 1 258 1 400 1 834 1 91 1 88 1 340 1/10 10/{{ModId}}_AcaiBowl/f Emily 6/{{i18n:AcaiBowl_name}}",

uncut viper
#

it shouldnt be, its not like the game searches by letter id when determining mail keys

velvet narwhal
#

i assume all of them, since all of them don't have the i18n titles

uncut viper
#

er, letter name

#

it DOES search by letter id

velvet narwhal
#

i thought it did-

uncut viper
#

but letter names dont need to be unique anyway, theyre just part of the letter string

velvet narwhal
#

it does the <npc>+Cooking, right? that craziness we went over last time

brave fable
#

wake up in the farmhouse on the 3/9/15/21st of any month to begin SDVdemetriumsSDVdemetriumsSDVdemetriums

you'll be visited again 2 days later if you succeed.. or 6 days later if you fail SDVdemetriums

enable NIGHTMARE in the config if you're so brave

#making-mods-general message

uncut viper
#

it shouldnt be repeating the same recipe, though

brave fable
#

no ending event yet, only puzzles

velvet narwhal
tiny zealot
uncut viper
#

these arentr <npc>Cooking letters anyway

velvet narwhal
#

oh, i thought because of the f Emily 6 it checks it for the npc

brave fable
uncut viper
#

these are just regular mails specifying which recipe to attach

#

oh, youy mean in the cooking recipes json

velvet narwhal
#

yeeeeeeeaaaaaa

uncut viper
#

i thought you were talking about the cookingRecipe part in Mail.json

velvet narwhal
#

nope, the cookingrecipes.json

uncut viper
#

okay, yeah, thatll cause duplicate letters

calm nebula
velvet narwhal
#

would those need to be nulled since they're already being mailed out with trigger actions?

uncut viper
#

(good catch i looked at Mail.json first, saw they were normal mails, then looked at trigger actions and saw the mail senders, and just assumed the recipes didnt have requirements like that attached to them in cookingrecipes.json)

calm nebula
#

I need to head out, but I can PR later

uncut viper
#

correct those requirements need to be removed

velvet narwhal
#

(i always look at cookingrecipes first)

uncut viper
#

(my heart belongs to trigger actions)

velvet narwhal
#

so 2 things, null out all of the friendship requirements in your cookingrecipes.json, and add in i18n title keys and you'll be back ship shape

uncut viper
#

i copied that from your mail.json

#

i didnt write anything new

tiny zealot
uncut viper
#

not hats.... sad for lacey

fathom hound
velvet narwhal
#

raises hands for events

uncut viper
velvet narwhal
fathom hound
#

ohh

#

ah yes

#

do i just delete the frienndship reqs thenn?

uncut viper
#

setting the friendship requirement in the recipe itself with e.g. f Emily 6 means that when you reach 6 hearts with emily, then overnight the game will look to see if emily has a EmilyCooking mail in its data (she does)

#

or well actually it goes in reverse

#

it checks the mail first

#

then checks if youve met the requirements for the first recipe it can find

vernal crest
uncut viper
#

then it sends it if you do

#

but then you yourself are also sending a different letter with the same recipe

#

but manually, with trigger actions

velvet narwhal
#

it's probably rolling repeating because it's trying to look for something called Emily+Cooking+RecipeName

#

as a mail

uncut viper
#

no it just looks for EmilyCooking

fathom hound
#

"{{ModId}}_AcaiBowl": "-6 1 258 1 400 1 834 1 91 1 88 1 340 1/10 10/{{ModId}}_AcaiBowl/f Emily 6/{{i18n:AcaiBowl_name}}" -- > "{{ModId}}_AcaiBowl": "-6 1 258 1 400 1 834 1 91 1 88 1 340 1/10 10/{{ModId}}_AcaiBowl/{{i18n:AcaiBowl_name}}"

uncut viper
#

and then sends the first valid recipe it can find

#

eventually it would stop sending emily cooking letters

velvet narwhal
#

you still need the field there, it looks strange but you do //

uncut viper
#

"{{ModId}}_AcaiBowl": "-6 1 258 1 400 1 834 1 91 1 88 1 340 1/10 10/{{ModId}}_AcaiBowl//{{i18n:AcaiBowl_name}}"

fathom hound
#

ah thanks all SDVpufferheart

#

I had a field where it was /none/ i guess both work?

#

or should i delete that too

velvet narwhal
uncut viper
#

it actually does not matter

#

if its not f <NPC> <Hearts>, s <skill> <level>, or default, then literally anything else you write there counts as just "im gonna do it manually my own way"

fathom hound
#

okay good to know ty!

brave fable
#

hmmmm I was hoping it'd just work in 1.6.8 lol

#

oh well time to downgrade

uncut viper
#

takin a page out of the minecraft modding handbook

velvet narwhal
#

ah fuck my weakness, a maze without a map

fathom hound
calm nebula
velvet narwhal
fathom hound
#

oh okay thank you SDVpufferheart

#

does it matter what the titles are?

velvet narwhal
#

nope that's all you

#

it shows on hover in the mail collections tab

fathom hound
#

ah okay thanks for helping!

tardy adder
#

brain doing the json: ah yes
brain doing ze dialogue writing...

#

yes I am stuck at this part o(<

velvet narwhal
#

i regret looking away for a minute, i am Extra Lost ™️

latent mauve
#

so, quick question while I continue working on my Google sheets NPC builder project and procrastinate on my mods: For Data/NPCGiftTastes, does the game throw an error if you have an extra space between the / / separators (such as when there are no objects provided to go with a specific response?)

tiny zealot
#

offhand, i would guess no, but it warrants testing for the real answer

latent mauve
#

fair enough.

uncut viper
#

(i dont know the answer either but do wanna say just in case its an unintentional typo that its NPCGiftTastes not GiftTastes)

latent mauve
#

It mostly just determines how much work I have to do to remove that space if the objects table is empty

#

Yeah, I got lazy when typing. 😛

uncut viper
#

(.. all typos are unintentional io was trying to say like "just in case you had it confused")

latent mauve
#

It's right everywhere that matters (like in the code and the builder), but I got lazy when writing it out for Discord, LOL

uncut viper
#

very fair

latent mauve
#

It currently generates this:

"Target":"Data/NPCGiftTastes",
"Entries": {
"{{ModId}}.NPCName": "Wow, this is great!/ /Thanks, I like this./72/I'll take it if I have to, I guess.../30/I can probably find a use for this./18/Ugh, gross!/20/",
},
}```
#

so, mostly correct, as long as the spaces don't bother it.

#

just a few tweaks to make still

uncut viper
#

seems like it should work fine

#

the relevant code in getGiftTasteForItem just creates an empty list of items for the one thats all spaces and NPC.CheckTaste will just return false if theres nothing in that list to iterate over

#

if it doesnt break there i cant imagine itd break elsewhere

velvet narwhal
#

(i will have to come back to this maze tomorrow, i am getting serious nausea kickback from whatever i ate SMCKekLmaoDog )

uncut viper
#

(the other important places the gift tastes are parsed is GetGiftReaction, which just gets the dialogue, and getFavoriteItem, which just returns null if theres no loved items. theres also CanReceiveGifts and hasPlayerTalkedToNPC but those just check for the existence of data in NPCGiftTastes and not the item ids)

#

and the "Speak" event command, i guess

calm nebula
#

The speak event command does what

uncut viper
#

which just adds that NPC to your friendship dictionary if it doesnt already exist

#

so, same check as hasPlayerTalkedToNPC

uncut viper
#

in case you speak to them for the first time in an event

calm nebula
#

Ahhhh

#

So the antisocial type

lucid iron
#

the tile prop that let u fall in a hole is here too PecoSmile

calm nebula
#

That makes me wonder

#

What is the lowest percent of perfection you can be

#

To get the rest of perfection via waivers

velvet narwhal
#

i'd have to recheck without SVE but waivers with 0 progress on anything got me to 91% (i left an autoclicker going as i went to dinner SMCKekLmaoDog )

uncut viper
#

i think you probably wanna look at low% speedruns for that

#

i know someone did it pre-1.6

calm nebula
tiny zealot
#

surely it's whatever percentage is the minimum to unlock the guy, since i think the waivers just cost money

velvet narwhal
#

i thought he was there immediately

calm nebula
#

I am not sure he would appreciate sudden bitflag enum tbh

#

But logically it becomes very messy otherwise

tiny zealot
#

doesn't he send you a letter when he appears? but i forget what the conditions are

uncut viper
#

(fwiw i went to go check and while it will ofc be lower since you dont need to go this far, but that guy i mentioned got to Qi's Walnut Room with only 3% perfection)

calm nebula
#

What was the 3%?

uncut viper
#

the walnuts are a lot, some friendship was required

#

uhhh probably some other things idk its a 50min video

calm nebula
#

Lol

uncut viper
#

actually they didnt even get any friendships the highest was only 6 hearts. the 3% might actually just be the walnuts

#

tho i said itd be lower since the waiver guy is there earlier but i guess in the process of just getting money for the waivers, you might necesarily go above 3% in the process

#

(idk i dont remember what exactly counts for perfection)

calm nebula
#

All y'all are perfect

#

I don't care what the game says

uncut viper
#

dont say tht til you see my messy modjam code

velvet narwhal
#

don't look at me and my 12 strings of the word "click" in different iterations

#

Game1.addMorningFluffFunction ah yes, i too must have a morningfluff

brave fable
#

we all have a little morning fluff SDVpufferpensive

#

incidentally, there is a map. but only if you're not playing in Nightmare mode SDVdemetriums

#

hover over the topleft of the screen to zoom in

velvet narwhal
#

ofc i gotta play in nightmare mode, i'm stupid, not a weenie

#

(incidentally this is also why i don't play dark souls games because i get lost while driving)

brave fable
#

you play dark souls games while driving?

velvet narwhal
#

it's a dark souls adventure for me every time i need to drive farther than 5mi from my house if i'm not using gps

calm nebula
#

Huh

#

(It's nearly impossible for me to get lost.)

#

I also apparently impressed a coworker by...memorizing an IP address today

uncut viper
#

ive got mine memorized! 192.168.1.1

calm nebula
#

(It was a 192.168.x.x lol)

rancid temple
#

This has a different meaning for me, I do a lot of memorizing of areas before jumping into DS

calm nebula
#

I memorized two numbers

brave fable
#

i changed my local address to 10.1.1.x since i somehow kept forgetting 192.168 SDVpufferfush

#

it looks nicer. very formal

#

don't cheat the puzzles btw. i'll know SDVdemetriums

velvet narwhal
#

i am on attempt two because i got lost

calm nebula
#

Jump over everything? Okay!

lucid iron
#

hm do you think it's inconvienant that light props only go on Front layer

#

i picked that arbitrarily

brave fable
#

maybe? my custom tile prop lights go on alwaysfront

uncut viper
#

no bucket tool for booberrys maze SDVpufferpensive

brave fable
#

i'm pretty sure this will find out if you use jump-over and get you for it

calm nebula
#

I don't use jump over! I have my own jump

brave fable
#

does it work during events 😌

lucid iron
#

wait u already have custom tile prop lights

#

why did i make this then blobcatgooglyblep

brave fable
#

because mine are private lol

#

very bespoke, very fanciful

lucid iron
velvet narwhal
#

i did like the little swirling stars, definitely distracted me from the maze though

lucid iron
#

fireredlily can decide i guess

brave fable
#

the other 3 puzzles go ham on the sprites SDVdemetriums

velvet narwhal
#

not in a bad way but a, i'm a golden retriever with a low memory retention

brave fable
#

favourite is definitely debug ebi Custom_blueberry_H2024_3

#

1 is good. 2 is so-so. 3 is perfect. 4 is pretty tootin good

velvet narwhal
#

honestly i expected nightmare mode to have warps with a map change cause of what you were talking about

brave fable
#

oh the warp is just the return to farmhouse

#

and into the event

velvet narwhal
#

ah yeah fair enough

#

makes me wonder if you could've gotten away with the custom festival though, hindsight is 20/20 as i was looking into custom festivals earlier today

brave fable
#

it'd be very very very very very bad if i did, since this is the event format:```json
"{{ID}}_1/u 3 9 15 21",
"{{ID}}_2/u 5 11 17 23/n {{ID}}_1",
"{{ID}}_3/u 7 13 19 25/n {{ID}}_2",
"{{ID}}_4/u 9 15 21 27/n {{ID}}_3"

velvet narwhal
#

fair enough

brave fable
#

ah yés you have 16 new events festivals in the month

rancid temple
#

Busy month

velvet narwhal
#

me, taking notes for my expansion's festival map:

make it probably 100x100 tiles so i never have to hear about npc compatibility

uncut viper
#

and many punch bowls

velvet narwhal
#

they're all away from the main town anyway, so it's just up to whether or not people actually wanna add in their npc to my wild adventure SMCKekLmaoDog

latent mauve
#

Let me know if there's anything obvious I'm missing that I should add, or anything I messed up, if y'all have time to take a peek at it. 🙂

#

(I should almost definitely add the NPC tutorial links we have floating around somewhere to the title page)

velvet narwhal
#

I will have a look tomorrow

#

I don't know if you've added chips (like drop down chips) but that's what I had for my personal gift tastes creator

latent mauve
#

Yeah, the NPC Builder page uses the dropdown chips

#

I haven't put them anywhere else though

velvet narwhal
#

I should probably leave a note somewhere about the spouseroom change in 1.6.9

latent mauve
#

I might go back in and reorganize or at least color-code the Social and Romance fields for the builder, but right now I am sleepy

uncut viper
#

if i make all of an NPC's home locations null/invalid for one day only, will that cause a breaking error or will it just make the NPC quietly not show up to stardew that day?

calm nebula
#

is it a thing that angry spouses don't accept gifts?

calm nebula
uncut viper
#

ah heck

#

okay well thats fine ill just add a second location somewhere off in the void for that day then

#

i just need to yeet an NPC out of the way to make room for my own temporarily

rancid temple
#

Doppelganger/changeling

uncut viper
#

different question: if i set an NPC's home tile to like, x500 y500 on a map that is less than 100x100 large, does that break. does the home tile need to be within the map tile boundaries or nah

#

im not looking for best practices here ive got 10 days

brave fable
#

i put my shop cat for sailor styles at -1000 -1000 home and 0-schedule and that seems fine

latent mauve
#

Look, just make a jail map that has a NPC warp to it and call it a day. xD

uncut viper
#

bless thank you

brave fable
#

cough sailor styles is mostly an untested 1.6.9 alpha

#

if someone did test it, they didnt say there's issues ☀️

uncut viper
ashen goblet
#

Hello! I can't seem to find the content.json code for events--does anybody have it, or know what I should do to start working on the events.json? (it is my last so yippiee!!)

brave fable
#

Data/Events is a folder with a json file for each different map

latent mauve
#

Events are map-based, so you'll need to edit the appropriate json for where you want your event to trigger ^

#

(it is specifically the entry map in Data/Events in most cases)

brave fable
latent mauve
#

Island events are an outlier and should not be counted.

ashen goblet
#

I'm still a little confused

#

I see the files you mentioned, though, what do I do with that?

uncut viper
brave fable
#

but you can see the schedule is as basic as it gets

latent mauve
uncut viper
#

oh but you did keep the other Old Mariner in there then. so wouldnt the original dwarf still be in the same spot

uncut viper
#

i forgot that was a thing tbh

ashen goblet
#

My apologies, little confused

#

First time making events

latent mauve
#

Your starting block is going to be the same as the other EditData actions were for the NPC, but your target will have to change to the json you are trying to target within Data/Events.

#

Sample Block:

      "Action": "EditData",
      "Target": "Data/Events/BusStop",
      "Entries": {
        "eventkey": "your event script"
      }
},```
ashen goblet
#

Thank you

heady crest
ashen goblet
heady crest
#

im not getting any errors but also cant get it to even trigger

#

tried to make it trigger on a specific day and it doesnt work

brave fable
#

sounds like you need to share an smapi log with patch summary while in the event's intended location, as well as your content json including your event data

#

fairly hard to troubleshoot 'doesnt work' hahah

ashen goblet
#

That

#

And also, here you go

#

This should display all possible errors, their causes, and their fixes

heady crest
ashen goblet
#

If it doesn't trigger, and no error is displayed; it suggests that the whole code is not being read by the game in the first place.

#

So double-check your formatting

heady crest
ashen goblet
#

Don't give up!

#

You'll never learn without trying!

brave fable
#

you'll never succeed without failing ✨

ashen goblet
#

Exactly!

brave fable
#

so best get the failure out the way first so we can get somewhere

ashen goblet
#

I'm 3 days away from my anniversary with my partner, and my gift only needs the events part now.

#

So I gotta push 💪

heady crest
#

at least the other parts were kinda fun to fail on and realize the error was like some dumb thing like a typo or just reading teh wrong file

#

this just makes me wanna pull my hair off

ashen goblet
#

Events are typically the hardest scripts to form

brave fable
#

well, that's what this channel's for hahah

#

definitely the most problems i've had in years have been with making events in the last few days

#

but that's fine since other people have suffered first

heady crest
#

almost like begging for someone to hold my hand and guide it

uncut viper
#

(fun fact, Lookup Anything will still catch an NPC even if theyre set to invisible. you can keep track of Elliott even when hes on his book tour SDVpufferthumbsup)

brave fable
#

fine words of wisdom 😌

ashen goblet
brave fable
ashen goblet
#

General question

#

Does the NPC have to be at the sight of the event for the event to trigger?

brave fable
#

only if you use an event precondition that says so, otherwise, no

ashen goblet
#

Hmm

#

In that case, I'm facing the same issue of not being able to trigger the event

#

Are you able to look into it for me, please? I only made one quick event to test it out.

brave fable
#

you'll need to share your content and log files SDVpufferthumbsup

ashen goblet
#

I'll send over the log, though just give me a moment!

#

I'm gonna test out something as well

#

There you go!

#

@brave fable (sorry for @ )

brave fable
#

precondition:

  • spring isn't a valid event precondition, you want to replace this with z summer/z fall/z winter
  • your precondition ends with a / which may break it, should remove it

script:

  • the first command should be a music track name (from https://stardewvalleywiki.com/Modding:Audio#Music), if you want the museum music you'll use libraryTheme
  • i've never used question/fork and they scare me, but i can tell yours is totally busted
ashen goblet
#

Got you

#

I've been trying to learn from another NPC mod as an reference--your point outs helped me out

#

Thanks!

#

I'll check it out

ashen goblet
#

How about spring itself, in that case?

finite ginkgo
#

Yeah, the way questionfork works is only the first choice will trigger a fork, and that's not at all how you format the fork either, if you want a different outcome for each choice I'd do a quickQuestion and switchEvent

tender bloom
finite ginkgo
tender bloom
#

So the z summer z fall z winter ensures it must be spring

latent mauve
#

z season is one of the preconditions listed on the wiki, reviewing those will help a lot here!

tender bloom
#

(If it’s not winter, not fall, and not summer)

ashen goblet
#

Got you

#

Thank you guys

ashen goblet
#

The /

brave fable
#

the end of your id/precondition

ashen goblet
#

Is this better?

2920091/F/s F1F4Gift 500/t 1200 1800/z summer/z fall/z winter":

brave fable
#

here's an example question/fork from Farm.json, edited down a lot to fit here:```json
{
"3917587": "pause 1000/question fork0 "Give Alex 5,000g?#Yes#No"/fork giveAlexMoney/pause 1000/speak Alex "Really?$s"/end",

"giveAlexMoney": "pause 200/money -5000/pause 500/speak Alex "Great!$h"/pause 500/end",
}

you can see that there's 2 outcomes, either the first answer (which is basically `switchEvent` using the param after `fork`), or the second answer (which skips the fork and continues the rest of the event)
finite ginkgo
#

I believe empty preconditions are fine (since to make a no-precondition string id event you need to add a / with nothing afterwards for it to not be considered just a fork)

ashen goblet
#

I wonder

#

Are you able to put custom music?

brave fable
#

sure, you need to load it yourself elsewhere though

ashen goblet
#

I'll look more into it when I'm done with the events itself

latent mauve
#

Also the validator was fussing because you didn't properly write drawingChoice, if you haven't fixed that yet.

brave fable
#

(please don't close drawingchoice with a {} it shouldnt look like that lol)

latent mauve
#

LOL

ashen goblet
#

sorry guys ;-;

#

new to events n' all

brave fable
#

(politely as humanly possible) ignore that message 😌

latent mauve
#

You have 3 opening { and only 2 } in your code

uncut viper
#

fireredlily, there should not be any {} near drawingChoice at all

brave fable
#

as long as you rewrite drawingChoice to be a simple string as given in the Alex example above, you won't worry about {} braces

latent mauve
#

Yeah, the 3rd { isn't needed, right?

uncut viper
#

there should only be 2 braces in the file at all. drawongChoice is just a string, not a json object

#

3*

ashen goblet
#

losing braincells right now

ashen goblet
#

i'd really appreciate that

#

cries

latent mauve
#

Basically, drawingChoice doesn't use a {

heady crest
latent mauve
#

Is what button

uncut viper
#

(i think i (and blueberry?) misinterpreted your "if you havent fixed that yet" message as you saying "fix that by closing it with a }")

ashen goblet
latent mauve
#

Right, I was incorrect in suggesting he close it, which I can go edit out, because I know why the validator was mad but not enough about how the fork works

brave fable
#

ohhhh if that's what you meant then that's fine SDVpufferthumbsup

ashen goblet
#

Highlighted purple is the bracket I removed

#

The pink is what stayed

#

Is this correct?

brave fable
latent mauve
#

Validator is pleased with it

ashen goblet
#

I shall test it then!

#

Thank you

brave fable
#

sadly the validator knows even less about events than i do, so it's only going to say if the formatting's right

#

i could've screwed up the question/fork/switchevent commands, but we'll see

latent mauve
#

Honestly the thing that throws me (often) is that most event preconditions are a "NOT the thing I wrote", which is opposite of how conditions work

brave fable
#

pls note i changed your event id to MyCoolEventId instead of 2996296296 since we're allowed to give them good names

ashen goblet
#

Ahh so I can just put words rather than numbers?

#

I'll make it just

#

CoolGift

latent mauve
#

Yep, you can even stick your ModID in the event name now I think, to prevent mod incompatibility?

#

I could be wrong on that though

brave fable
#

Custom_blueberry_H2024_1234 is what i used for my four contest events

#

very compatible, very understandable, very ugly

latent mauve
#

Tokens work in a lot of places but there are a few where they do not and I don't remember them all

finite ginkgo
#

Tokens work everywhere outside of config schema and loads iirc

brave fable
#

sounds about right SDVpufferthumbsup

uncut viper
#

i thought there was one more very niche area where you couldnt use them but i cannot for the life of me remember now so. maybe im just wrong

latent mauve
#

They also do not work in Tiled files because they are not Content Patcher code.

#

Which is a silly mistake I made before with Tiled warps

uncut viper
#

also can someone remind me of what the bare minimum is for an (antisocial) NPC to be like, functional in the world

brave fable
#

whatever i posted above in the sailor styles files is the bare minimum im p sure

#

characters entry, portraits sprite, world sprite

#

schedule you'll be using anyway

finite ginkgo
latent mauve
#

Sprite, Portrait, Data/Characters entry, Schedule with 2 points?

uncut viper
#

SDVpufferthinkblob i wonder if my NPC being on top of an invisible one is whats makin me unable to talk to em then

finite ginkgo
#

Which technically a stationary non speaking antisocial npc could also be just a map tile if you wouldn't wanna create a dispo ;p

brave fable
#

can't vouch for talking, sailor styles puts a tileaction on the npc for interactions

latent mauve
#

Dialogue is not actually required as far as I know

uncut viper
#

i wanted them to speak!

brave fable
#

tileaction shop, take it or leave it 🤷

uncut viper
#

we'll see how much longer my patience lasts with it at all in the first place

finite ginkgo
#

The bare minimum to spawn any npc, social or antisocial is sprites portraits and a dispo, everything else is technically optional

uncut viper
#

they do spawn and appear, i just cant talk to em

latent mauve
#

Feel free to poke at my npc builder sheet for the basics

uncut viper
#

(and also BETAS throws a bunch of errors when i try, oops, i wonder what thats about oh well no time to worry about that right now—)

latent mauve
finite ginkgo
#

Hm, I wonder if CanSocialize false stops npcs from talking

uncut viper
#

i changed CanSocialize to true and yeah, still no talky.

ashen goblet
#

Event does not trigger, but no errors are displayed; I suspect the issue is probably because I have nothing in my content.json file that actually links to the event.json (as every other file does)

ashen goblet
brave fable
#

well, if you didn't use "Action": "Include" to include your events file..

ashen goblet
#

Mhm, doing that now

finite ginkgo
uncut viper
#

Data/Characters/Dialogue/{ModManifest.UniqueID}_NPCName
whoops

latent mauve
finite ginkgo
uncut viper
#

sure am!

#

like 98% of the rest of the mod is all C# code, i didnt feel like including a content pack in this

brave fable
#

honestly i gave up on doing npcs and shops and such in c#, it's a drag when cp is so flexible and legible (and reloadable)

#

if you weren't pretty done i'd say just move it over for convenience

finite ginkgo
#

My favorite Casey quote at it again

brave fable
#

new modbuildconfig package is convenient for bundling them, too. just needs a couple of fixes for include patterns

ashen goblet
#

Added this to content.json

                 "Action": "Include",
                 "FromFile": "assets/events/events.json"
         }, ```
#

Though

uncut viper
#

i didnt do it because i thought itd be easy and convenient i did it bc i thought itd be quicker if i dont need any of the CP conveniences

brave fable
#

or maybe it doesnt and its fine and my projects are busted. should test with my new pack hahah

uncut viper
#

turns out its none of those 3 really

ashen goblet
#

The event.. unfortunately does not trigger.

brave fable
#

amusingly my contest mod was going to be cp only because i thought itd be quicker if i dont need any of the c# tools capabilities. oh how wrong i was

latent mauve
#

Have you verified that your preconditions are exact?

vernal crest
ashen goblet
#

I have not

#

How can I do that?

brave fable
vernal crest
#

I always do debug ebi first, then trigger it in game without preconditions and then finally add preconditions

ashen goblet
#

Jesus

#

I must apologize for all the trouble guys 🙏

#

No errors are displayed in the console

#

Though, I'll send over both.

finite ginkgo
uncut viper
#

(that said i still cant get them to talk. but they CAN accept gifts when i turn that back to true for em. shrugs. maybe ill just have them be a silent shop only i dont really care that much)

vernal crest
#

Are you using location dialogue button?

brave fable
#

(see i saw that s f1f4gift 500 and thought wow, funny the npc shares their name with an item. sure need to ship a lot of those)

ashen goblet
#

F1F4Gift is the NPC internal name

finite ginkgo
latent mauve
#

That's the NPC name, so definitely a mistype on that s that should be an f

ashen goblet
#

I assumed the script would want the NPC's internal name?

#

Hence, F1F4Gift

latent mauve
#

Yes, the problem is the s before it

ashen goblet
#

I replaced it with an f

#

I'll try it agian

#

again*

vernal crest
ashen goblet
#

IT DID IT!!

#

I just need to readjust the tiles now baha

uncut viper
#

they talk now!

#

it wasnt the gift tastes tho. i actually did give t hem give tastes already

brave fable
#

everyone's a winner 🥳

uncut viper
#

so if i add dialogue im assuming theres certain keys i need to have? cuz it only worked after i just copied the dwarf's dialogue file in

#

but i started from the dwarf's dialogue file originally and just cut out some stuff i didnt need

ashen goblet
#

Now, for general questions!

#

Actually

#

I think I'm all clear

#

I just need to adjust the event aha

#

Alright, thank you guys!

vernal crest
ashen goblet
#

Also, did realize that no theme is playing in the event

#

I'm unsure on how the library theme sounds

#

I'll check it out

uncut viper
latent mauve
#

Spring is a fallback for a lot of the other NPC data, so that is one I would probably include just in case

uncut viper
#

thats for schedules, innit?

#

Dwarf does not have a spring entry

latent mauve
#

Yes, but I do not know if the same holds true elsewhere

#

Ah, I see

#

Also for multiple schedules, they have Mon-Fri entries, but they use GOTO to not have to write a bunch of repeats out

#

So you might be able to set just one and then make the others GOTO that one?

#

Oh wait, that's only schedules too

#

My brain is not working right now

uncut viper
#

its fine enough for me to just write two more lines of dialogue anyway

#

as long as ive got mon - sun, im good. they only exist for a single week anyway

heady crest
#

why is this not triggering...................

brave fable
#

Data/Events isn't an asset the game will ever request, you want to go with Data/Events/NameOfLocationYourEventStartsFrom, such as Data/Events/FarmHouse or Data/Events/JoshHouse

finite ginkgo
#

Also I wouldn't load any vanilla event file unless I wanted to remove every event there and just have my own (which why would anyone do that)

#

So what I'd do is:

  1. In your events.json file add
{
  "Changes": [
//Current content of your Events.json
  ]
}
``` 2. From your content.json remove the target line and switch it to `"Action": "Include"`
heady crest
#

noted

#

so this and that

finite ginkgo
#

Includes don't have a Target, remove that line

#

Otherwise you're good

heady crest
#

cuz its already on the other file right

#

got it

finite ginkgo
#

Kinda, includes don't have a Target ever, what an include is telling CP is basically act as if this file was in the content.json and do those patches, you can technically never use an include and have just one very long content.json, includes are basically just for organization

heady crest
#

i seeeeeeeeee

#

thats good to know

#

ill probably just have it on my content then

#

since almost everything besides i18n and the schedules are inside of it

#

this isnt funny anymore

vernal crest
#

My last count of Stardew related tabs open was 207

#

It's how I know Stardew modding is still interesting to me

heady crest
#

i hope that isnt th epath im going down to

vernal crest
#

I have all the tabs of pages I refer to every day, plus ones I'm interested in getting to but not ready for yet, plus about 50 Nexus pages for mods I'm interested in or ones I've investigated for support problems. Plus I'm bad at closing ones I'm finished with lol

#

And my own mod page so I can monitor it for reaching 100 UDLs so I can celebrate

heady crest
#

sounds painful

vernal crest
#

Sometimes it gets a bit ridiculous and I get lost but most of the time I'm happy with it

finite ginkgo
#

I'm at the point where I could write just ev and my browser immediately autofills the event data page url

heady crest
#

does f 0 breaks the event or smth

finite ginkgo
#

It shouldn't, you're testing in fall between 6am and 10pm yes?

vernal crest
#

If I didn't have Firefox view to let me see my open tabs I'd get lost all the time lol

heady crest
#

the haracter doesnt need to be at teh busstop before i enter for it to work right

#

unless i specify it

finite ginkgo
#

Correct

#

Can you try to debug ebi your event to see if it's being added at all

#

debug ebi <event Id>, don't forget to write out the modid instead of trying to use the token

heady crest
#

huh

#

it kinda worked although i just saw a shadow moving offscreen

#

no theres nothing happenign

#

oh ok the log just updated let me check

#

what is this supposed to mean? her portraits work just fine

latent mauve
#

Did you load them to the Portraits/Maxine target specifically, or is there a modId in there somewhere?

heady crest
latent mauve
#

Okay, are you using the appearances system to set the portrait and sprite textures?

#

And if so, do they use the ModId?

heady crest
#

im using it for her winter stuff does that count

ashen goblet
#

Hey! I need help with a random issue, rather.

Take a look at this command;
/speak F1F4Gift \"This one is my favorite... but I think it needs something.\"/move F1F4Gift -1 -1 0/faceDirection F1F4Gift 1

Once it ended the dialogue, the NPC walked off the map (??) although I was under the impression that negative numbers meant a decrease in the tile (For example; 14x to 13x) hence, -1.

#

Could somebody tell me what went wrong there?

#

I'm complicating whether the /move commands asks for the tile coordinates, or the number of steps to a tile.

latent mauve
#

Also, is it winter?

#

If it's not, you may need a Default appearance block as well, to serve as a fallback

heady crest
#

?

ashen goblet
#

Still, I'm confused.

latent mauve
#

You want Winter to be a lower Precedence number so it is checked before the "any season" appearance you are adding.

heady crest
#

wait forgot about condition

#

nvm that one part

#

i can have them both like this right

latent mauve
#

You should be able to include Maxine and Maxine Winter within the same Entries block

#

So, not closing Entries before Maxine_Winter, but after.

#

I think

heady crest
#

oversight

vernal crest
#

@ashen goblet Have you used positionOffset earlier in your event? I think that makes NPCs walk off screen if you then use the move command.

vernal crest
ashen goblet
#

I just had to use /move twice

#

Like this;
/move F1F4Gift 0 -2 0/move F1F4Gift -1 0 0/

#

One AXIS at a time

latent mauve
ashen goblet
#

But the issue is

#

When the NPC walks upwards, the walking sprites are not in play

#

You can only see the sprite dashing upwards with no moving legs

#

I'm not sure why that is

heady crest
#

another question, doing "f Maxine 0", does the event trigger even if the NPC isnt met by the player yet? or do you need at elast one interaction with em

latent mauve
#

That one I am not sure of

vernal crest
ashen goblet
#

No worries at all

#

I'd just appreciate some help with the sprite issue here

vernal crest
ashen goblet
#

Event

#

Ignore the silly glitch here--I'm still testing, adjusting my first event but it just gives this straight animation (and does pull out a sprite later on, but it's very delayed)

uncut viper
heady crest
#

😭

#

how am i gonna make the npc arrive at the valley if they need to be met before

latent mauve
#

If you want it to trigger without meeting them, leave that precondition out

vernal crest
heady crest
#

ah ok

ashen goblet
#

Give me a moment

#

Background noise keeps me focused

latent mauve
#

So much jumping

ashen goblet
#

To express cheer

#

Do ignore the last walking off the map glitch

#

I'll still work on that once I figure out the first part

#

Though if you see 0:07

#

Walking upwards; the animation is sorta just.. dead

latent mauve
#

It looks like both times immediately after the jump, the walking animation is wonky

ashen goblet
#

Good call

latent mauve
#

Can you try a facedirection before they move after jumping?

ashen goblet
#

Yes

#

It did not seem to fix it

ocean sailBOT
#

Log Info: SMAPI 4.0.8 with SDV 1.6.8 build 24119 on Microsoft Windows 10 Home, with 20 C# mods and 5 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

ashen goblet
#

I can try pause

#

actually

vernal crest
heady crest
#

there

#

itssmall just for test

vernal crest
heady crest
#

internal name is this? if so then yeah

latent mauve
#

You have just Maxine listed as the actor in the event

#

May need to make that match the internal ID

heady crest
#

:(

#

i kept only that cuz i saw into nora's event and it said just nora so i was like well then that should work

vernal crest
#

Like fireredlily said you are calling them just Maxine when you need to be calling them {{ModID}}_Maxine.

latent mauve
#

Depending on the mod you are looking at, they may not have prefixed their internal name with the mod ID

#

A lot of older mods just didn't bother

vernal crest
#

What is Nora's internal name though? Because it might just be "Nora".

devout otter
#

Nora's internal name is indeed just "Nora."

vernal crest
#

Your textAboveHead won't work either because you haven't specified an NPC for it.

heady crest
latent mauve
#

It's a fairly recent practice but it is HIGHLY encouraged

devout otter
#

(Basically SMAPI is looking for Portraits/Maxine because the event is calling for an NPC named Maxine, which internally doesn't actually exist in your mod.)

heady crest
#

highly encouraged to not bother or to do it

latent mauve
#

Older or bigger mods like SVE and so on don't bother and rely on everyone else to work around their NPC Ids

#

It is encouraged to use the modId

devout otter
latent mauve
#

On the off chance another mod adds a character named Maxine, it will save you a lot of headache

heady crest
#

right, so nora is just nora becuaes theyre probably confident that nobody would use the same id then

latent mauve
#

Yep

heady crest
#

i seeeeeeeeee it makes senseeeee

#

im gonna cry

devout otter
#

(We've already had that with CSC and RSV's Faye, as well as TNG and MT's Thomas.)

heady crest
#

it actually worked

#

the event triggered

#

im so happy

latent mauve
#

You're doing great!

heady crest
#

i cant express myself

#

just need to fix her pathing she's just walking offscreen

latent mauve
# ashen goblet actually

If pause doesn't solve it, then you can possibly use a happy emote instead of a jump in case the two jumps together are increasing the delay too much.

ashen goblet
#

Pause 800 does not solve it

heady crest
#

im confused, does the "move NPC" adds to the current position or does it overwrite/sets it

latent mauve
#

It's how many tiles away you want them to move from their current position, so it is relative

vernal crest
# ashen goblet Pause 800 does not solve it

Maybe try taking the jumps out entirely just to test if that fixes the issue because if it turns out the problem still happens without the jumps you don't want to have wasted a bunch of effort trying to fix the wrong thing.

ashen goblet
#

Well

#

this is the jump command

#

/jump F1F4Gift 8

#

What is the number value for?

calm nebula
#

Uh, it's initial jump velocity

ashen goblet
#

Yes

#

Jump is the issue

#

What is the command for the dialogue that uh.. does not involve NPCs or characters

#

What I mean is, the box that appears to either describe a setting

#

so on

vernal crest
#

Message?

ashen goblet
#

I suppose

ashen goblet
#

It was not for the first jump.

inner harbor
# heady crest thought that was like a must

It wasn't so much we "didn't bother' it was more that we didn't realize it would be a problem later on, and once it became apparent that it might it would mess up people's games to change it.

ashen goblet
#

Hey! I need some help with formatting regarding the events.json

inner harbor
#

It sucks the most with temporary NPCs used in cut scenes, because most of the time you don't know they exist until you see the events they're in, and prior to 1.5, you couldn't change the name that appeared beneath the portrait so if you used namespacing to upload them, that would become the NPC's name.

ashen goblet
#

Given this first event--I'm unsure on how to fit in the second and so on without getting an error.

inner harbor
#

the main issue as far as I'm concerned is that for a while people were naming their kids the same name as NPCs (without realizing that they were NPCs) and it would break the child mightily.

ashen goblet
#

Are you able to help me with this?

vernal crest
ashen goblet
#

I want to do 5 events; 2 hearts up to 10 hearts.

#

I finished my first event as shown previously, and I want to add my second.

#

Still, I get errors about formatting.

#

For instance

#

I want to add the second event into the script, just struggling too.

vernal crest
#

Can you show me your attempt to add the second event? I need to see where you're trying to add it. Also, is the second event also in the museum?

ashen goblet
#

No

#

SeedShop (Pierre's shop)

vernal crest
#

You just have two extra close curly braces, the ones on lines 24 and 25.

#

(It would be much easier for you to find this stuff for yourself if you stopped using Notepad)

ashen goblet
#

I'll eventually grow out of it

hallow prism
#

it wasn't really something obvious that we needed unique internal names outside of the mod id, since npcs mods were quite a lot of work and not so common : when a duplicate was happening, just checking here and asking the community if the name existed was usually enough (and in general, unique names are a good idea to avoid confusion)

#

with the more tools we had and the more existing npcs mods and the fact that unique prefacing was used for items and events now, it's more obvious that a real convention is a good idea

vernal crest
hallow prism
#

peak F1F4Gift \"Oh, @!$1"\"

#

yeah

#

i'm too slow

ashen goblet
#

Should it be like this?
\"Oh, @!$1"\/move F1F4Gift -5 0 2/?

#

\ /

#

Ahh

vernal crest
#

No, the quote mark needs to be after the backslash, not before it. Remove the one that is directly after the 1.

ashen goblet
#

I see the issue

#

Yeah

#

Thank you

#

Also, another issue;

#

It's not error in the console, but instead just the code itself

#

When it gets to the choices, clicking any choice repeats the choice prompt

#

So if you were to click 'Yes'

#

It gives you the options again repeatedly

hallow prism
#

then you don't have the right formatting, but it's hard to know what's wrong just with that

#

honestly for me i don't know the different questions code well enough so i can't help with that, the only one i use is quick question for this reason

#

search vanilla events or mods using this feature and see what they have you don't

ashen goblet
#

Issue is

#

I am using quickQuestion aha

hallow prism
#

yeah well you're in luck because the advice still apply

#

but if i can progress a bit on my own mod making i may try to look at it later

#

but basically

#

you are missing stuff if you use quick question

ashen goblet
hallow prism
#

the wiki has info albeit hard to understand without looking at a vanilla example