#making-mods-general

1 messages · Page 359 of 1

lucid iron
#

What is game state 140 defined as

fading walrus
#

the user does not have the know-how required to know the game state of a shirt, I don't think

lucid iron
#

Is it shirt equipped or wat

turbid pawn
lucid iron
#

I don't really care if it's sexytimes or something but i do care if it's a user controlled state or a mod controlled state

turbid pawn
#

It's something the user can control

lucid iron
#

Then as the framework mod I'd try to give it descriptive name that isn't just 140 PecoWant

#

So that the uniqueness is implied

#

Enums is common way to do this

#

If there r indeed a finite number of states here

turbid pawn
#

It's an integer that the user can control across a very large range of values, and My mod selects the nearest value to load the texture for

turbid pawn
uncut viper
#

i would absolutely use a string key and just add an int field like chu suggested

#

if it being an int is really that important

lucid iron
#

Yeah just sort the list or smth by the field

uncut viper
#

or iterate the dictionary and stuff all the ones with int: 140 to another int->whatever dict

turbid pawn
#

This is a very frustrating conversation because you guys are assuming certain aspects of the design I cannot correct you on

lucid iron
#

I have a mod that does this kinda Dokkan

#

The actual asset for editing is unique per mod key -> my model

#

But when I actually use the data i merge by monster name field first

#

Smth along these lines perhaps

turbid pawn
#

Assuming that:

  • The user wants the game state to be 140
  • The user knows what 140 means
  • The user intentionally downloaded a content pack which was advertised as providing textures for 140
  • Multiple mods may want to provide a shirt for 140
    It's fine to have them both modify the same array element and a semi-random one just won't load?
lucid iron
#

It doesn't need to be random

uncut viper
#

yes

turbid pawn
#

Cool

uncut viper
#

it doesnt need to be random, but i would say yes regardless

lucid iron
#

Let ppl choose which 140

uncut viper
#

it doesnt need to be exclusively one or the other either, but regardless, what you describe is what id call "just fine, actually"

turbid pawn
#

*You

lucid iron
#

Or which Skeleton in my case

#

But goal of my mod wasn't user config, it was content modder config

#

So the content pack could say "this texture is for use when season is spring"

#

But yeah making this work does require some consideration in asset designing

#

Content Patcher itself will merrily overwrite the target as commanded

glossy cargo
#

Elaborate and I might make it 👀

latent mauve
# glossy cargo Elaborate and I might make it 👀

I have a custom map (Lost Woods) for my Zelda mod, and the Great Deku Tree is a map tile NPC, which means it can take TileData objects for messages. Just would need a way to pull said messages for hints.

turbid pawn
lucid iron
#

I have described how it could be done

latent mauve
#

❤️

#

(I just saw the ping and popped in without reading backlog)

glossy cargo
#

i have a few easter eggs with mods that are just "if it's there", without a real integration, but it needs to be on a small mod that works™ already

latent mauve
#

Potentially? I'm happy to drop the in-progress version for what I have so far if you wanted to get an idea of what would be involved, but I haven't added much other than the new map off the Lost Woods, the rest is just string, portrait, or sprite replacements.

glossy cargo
#

for example, if Ayeisha is installed, using the gifting feature goes through her, instead of "Joja Prime", and it's cheaper

#

The release schedule in Archipelago is extremely slow (like, one every 6 months), and we're not even garanteed to catch it (it depends if someone reviews our code in time), so I generally stay away from mods that are not fully released and stable. If I expect frequent updates, it's asking for trouble

latent mauve
#

Fair enough! This isn't released yet, was just thinking that it might be a cool thing in the future if the tree or a similar object could be used like the gossip stones in Zelda randomizers

turbid pawn
#

Is this instruction set good for creating a JSON that Content Patcher can append to?

#

If I'm reading this right, Content Patcher will request the JSON so it can add to it, and My OnAssetRequested will provide the blank file for Content Patcher to fill in, which I can then read from at OnAssetReady and OnGameLaunched?

lucid mulch
#

So when you do Game1.content.Load<MyType>("MyAsset"), that would cause the AssetRequested event to trigger that both you and Content patcher will respond to.
you should respond with a Load operation when its your asset, while CP will be doing Edits based on the asset
and when that load finishes, (but before the method actually returns the value to the caller) AssetReady will trigger

turbid pawn
#

StardewModdingAPI.Framework.Exceptions.SContentLoadException: Failed loading asset 'assets/[redacted].png' from SMAPI/virtue.[redacted]: can't read file with extension '.png' as type 'System.Object'; must be type 'Microsoft.Xna.Framework.Graphics.Texture2D' or 'StardewModdingAPI.IRawTextureData'.

#

So I loaded a png with Content Patcher and it complained that it can't read pngs as Objects, it needs them to be Texture2Ds

#

How do I make it load the png as a Texture2D?

lucid mulch
#

when using the asset pipeline you need to use the correct type in the generic

#

if you want a texture2d to come out, you need to load it as a Texture2D

turbid pawn
#

What's the content patcher json syntax to specify a file to be loaded is a Texture2D?

lucid mulch
#

Content Patcher is only reacting to the AssetRequested event, the original loader needs to specify the correct type (ie Game1.content.Load<Texture2D>("AssetThatIsAnImage") )

turbid pawn
#

I thought Content Patcher Load could create files

delicate smelt
#

do you know where is "地雷是一个危险的地方" store in the game file? this is a translation error,im making a mod to fix it,but i dont know where it is

royal stump
#

地雷 was also used in the Japanese translation, but removed in Stardew v1.6, so it might have been fixed

delicate smelt
delicate smelt
pine elbow
#

Could someone point me to an up to date new crops guide? I’ve been struggling with the old one on the wiki for a few hours and comparing the code to others hasn’t helped me figure out whatever the issue with it is

royal stump
# delicate smelt

Oh, sorry. That text is only in the newest Android version, which I don't have access to. It seems to be this:
Content/Strings/UI
"question_auto_attack": "The mines are a dangerous place and you may need to engage in combat. Would you like to enable the auto-attack feature to help you fight off any enemies?",
(I only have an older Stardew v1.5 version, and it has no Chinese translation for that text, apparently.)

hallow prism
vernal crest
#

My guess is that they're looking at the JA one on the modding wiki

vernal crest
#

Well that's extremely current so what's making you think it's out of date?

#

(chu wrote it literally last month)

pine elbow
#

This thread plus failure to function

vernal crest
#

That's a different tutorial

#

I realise it's confusing because they're similarly named

hallow prism
#

failure to function would need to be elaborated

#

!json

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.

pine elbow
#

Ohhh it’s been updated with the linked GitHub thingy

hallow prism
#

!log

ocean sailBOT
#

Important note: Your computer username may appear in the log. If your username is your full name, please be aware of this before uploading it.

Please share your SMAPI log file. To do so:

  1. Open this page: smapi.io/log.
  2. Follow the instructions at the top of the page to upload the log file. (Don't copy & paste from the console window!)
  3. After uploading, it will show a green box with a URL to share. Post that URL here.

Please do it even if you don't see any errors. This has useful info like what mods and versions you have, what the mods are doing, etc. If the issue didn’t occur in your last session, please load the game to the point where the issue occurs, then upload the log.

hallow prism
#

this will be a good base to start sharing what issues you have

vernal crest
#

So yeah you've been looking at the one with Json Assets

#

So it's completely wrong

#

Follow the tutorial that I linked instead

pine elbow
#

No the one you linked was the one I followed, I just assumed it was the same cause it was named the same, my bad

vernal crest
#

Then please do as Lumina asked and share your json and log, because the tutorial is up to date and correct :)

pine elbow
#

Alrighty I’ll do that

turbid pawn
#

What does invalidated x asset names mean?

royal stump
#

a mod told the content pipeline to clear them from the cache, so they're actually reloaded next time something uses them; generally it means a CP pack's edits caused the final data to change
(incidentally, that's when SMAPI runs AssetsInvalidated event methods)

royal stump
turbid pawn
hallow prism
pine elbow
#

Should that be the only problem?

#

Should I still link the log?

vernal crest
#

You didn't need to replace the {{ModId}} token with your mod ID. That's what the token is there to do.

pine elbow
#

Ohhhhhhh

vernal crest
#

Looks ok otherwise. Looks like chu is the one who missed the comma in their template so I'll fix that

pine elbow
#

Testing time SDVpuffersquee

turbid pawn
royal stump
#

SDVpufferthumbsup Been struggling to dig up the example people use, but tldr I'm not sure if Data works as expected in that example, and I use AssetsInvalidated + lazy loading

pine elbow
#

ITS THERE!!!!SDVpufferwaaah SDVpufferparty

Downside: funny sprite

vernal crest
#

Looks like your sprite is not in the right place on the .png lol

lucid iron
#

Is ur sprite 4x big

hallow prism
#

maybe not the right size yeah

lucid iron
#

Gotta be 16x16

pine elbow
#

I was wondering why the pixel sixes were different from what the wiki said they should be

#

Should be a quick fix I think-

#

Y'all are a blessing

turbid pawn
#

Time to plant some Phils. Maybe even a Charles or two

pine elbow
#

LMAO

turbid pawn
#

Oh, It's because I'm using the asset name instead of the file name, I bet

#

I don't know how to fix that

pine elbow
#

I thought he'd haunt my nightmares, but hes just a little buddy!

turbid pawn
royal stump
#

Helper.GameContent.ParseAssetName may help, but I generally just use something like foreach (IAssetName name in e.Names) if (name.BaseName.Equals("My/Asset/Name") //then it matches

#

GetInternalAssetName is more a niche thing for map assets or loading directly from a mod folder, afaik

turbid pawn
#

Thanks very much!

hallow prism
#

i got an error trying to make a Nature In the Valley pack :
https://smapi.io/log/05bba9b35e8a4bd6a91066594b0da461

13:41:23    ERROR    NatureIntheValley    This mod failed in the Content.AssetsInvalidated event. Technical details: 
ArgumentNullException: Value cannot be null. (Parameter 'source')
   at System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)
   at System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable`1 source, TAccumulate seed, Func`3 func)
   at NatureInTheValley.NatureInTheValleyEntry.OnAssetsInvalidated(Object sender, AssetsInvalidatedEventArgs e) in main.cs:line 2312
   at StardewModdingAPI.Framework.Events.ManagedEvent`1.Raise(TEventArgs args) in SMAPI\Framework\Events\ManagedEvent.cs:line 101```
ocean sailBOT
#

Log Info: SMAPI 4.2.1 with SDV 1.6.15 build 24356 on Microsoft Windows 10 Famille, with 84 C# mods and 118 content packs.
Suggested fixes: One or more mods are out of date, consider updating them

hallow prism
#

the content json

#

does someone spots an obvious issue or should i rather ping the author?

turbid pawn
#

Wait, why not IsEquivalentTo?

royal stump
#

That'll probably work, I just use a generic asset helper that needs to check for multiple names

#

and without access to IAssetName stuff due to the method layout

turbid pawn
#

Hell yeah, the data file got reloaded and My mod now knows which files are provided to it by content packs

vernal crest
hallow prism
#

i'll test that but the example doesn't have it listed

vernal crest
#

I know the example doesn't have it, my guess includes thinking that the example is wrong xD If you have already tested the example exactly as-is and that worked, my guess is wrong haha

lucid mulch
hallow prism
pine elbow
#

Quick question, is mods including fan work of other media a problem? I’ve seen a few mods adding characters from other media as npc’s and want to do something similar, that wouldn’t be a violation of the rules would it?

hallow prism
#

thanks, @vernal crest ! it seems to be working

vernal crest
#

Woo! rave_birds

hallow prism
#

(i suspected a field missing but there's a lot of them and didn't notice the doc listed mandatory ones)

lucid iron
#

Well there's a lot of pokemon mods

#

And crossover characters

vernal crest
#

I think this situation probably necessitates pinging the mod maker to note the example pack doesn't work. Which I would do except I cannot remember the order of their letters for their username lol

hallow prism
#

is the author here?

vernal crest
#

Yeah or at least they used to be

hallow prism
#

i think they were but my attempt to find based on nexus username failed

lucid iron
#

@acoustic summit hello i would like to report nitv example pack issue, season need a default

vernal crest
#

Taking actual artwork from other games is forbidden in this discord, not sure about Nexus

#

Ah ha, thanks chu

hallow prism
#

ah thanks 🙂

pine elbow
lucid iron
#

I think awa is busy irl atm

#

You good 3sSmolMiku

hallow prism
#

and thanks 8AwA8 for the content pack in CP format, it's way easier to make a creature with just the mandatory fields and no slash

royal stump
#

as far as I know, fan art is fine, it's just official sprites/artwork (or other people's stuff without permission) that are a problem

vernal crest
#

Also there's Lucikiel and the little girl whose name I have forgotten from King's Raid, Gojo and those other people from that...manga? Anime? Peeta from The Hunger Games...Jean and Jorts from real life (they don't count I just like mentioning them lol)

#

Lavril!

pine elbow
#

Yissssssssss

hallow prism
#

the thing with fanart is that it also depends of how much attentions the mod attracts and the willingness of the company to prevent you to use thei content

#

basically a very popular mod with fanart of pokemon may result in your content being removed by nexus

lucid iron
#

I think most mods r fiiinnne

hallow prism
#

while some fan content of an indie IP may be seen by them as a nice publicity

lucid iron
#

In the worst case scenario you still have the mod to use yourself

pine elbow
#

Very good points

lucid iron
#

That's what modding is about anyways put thing in ur own game that u want

hallow prism
#

yeah, i do believe that, for SDV and the normal popularity of a mod, it should be fine

#

i just prefer people to be aware of that possibility just in case

pine elbow
#

You are a very important part of the modding eco system

hallow prism
#

luciola lumina is a species that feed on json log

whole raptor
pine elbow
#

Mood

#

Which is hilarious considering my project idea is centered around a Nintendo character

young sluice
#

Howdy folks, having a bit of trouble with my fishponds, the quests are just showing up as 1 bait, but I'm not sure why

vernal crest
young sluice
#

yeah, seems to be all of em!

young sluice
vernal crest
#

I had a look and couldn't see anything wrong but I'm not very familiar with fish ponds. You could try doing a patch export and see if it's looking the same as a vanilla entry when it's actually in the game data?

tranquil schooner
#

Hey, I just wanted to ask if anyone knows how to get mods to use vanilla mail flags
I've been trying to send mail with the secret woods flag(beenToWoods) but while I can get it to recognize the flag, I can't get it to do anything with it. I'm currently away from my computer so I can't send my code, but any sort of push in the right direction like a mod I can look through or a tutorial would be nice ^^'

uncut viper
#

if you send mail with the same flag, and you've confirmed that the player has received the flag, then there is nothing else you can do. the game uses more than just mail flags for a lot of things too

calm nebula
#

what do you expect the beenToWoods flag to do?

uncut viper
#

a mail flag is just a string added to a set, its the same whether vanilla adds it or a mod adds it

harsh bobcat
#

that flag, while existing in vanilla, doesn't do anything?

uncut viper
#

the only thing i can see that its done is mark when you've... been to the secret woods. i dont see anything else that uses it, yeah

harsh bobcat
#

oh no it does something for the world map

#

(see WorldMap.json)

uncut viper
#

ah, thatd make sense too, i was only searching the decomp

harsh bobcat
tranquil schooner
#

Yeah
It sets up the map name since before it's '???'

harsh bobcat
#

I mean like the trigger action command %action AddMail All beenToWoods Received%% should just work (or something similar; this is how I'd format it for a glitch speedrun)

#

all that matters is the string name

uncut viper
#

thats mail specific syntax, not a trigger action, but yeah thatd work

#

itd be no different from gettin the flag in vanilla

harsh bobcat
#

it's the mail syntax to activate a trigger action command but yeah [it calls triggeractionmanager.tryrunaction]

tranquil schooner
#

Oh! I meant that I want to use the flag

uncut viper
#

(i just didnt want them to confuse it with a Trigger Action, which is a specific thing, in Data/TriggerActions)

#

what do you mean use the flag

#

what do you want to achieve

harsh bobcat
#

are you succesfully using your own custom flags and failing to use a vanilla one? using a vanilla one should be just the same right?

#

is it just that you're unsure how to use mail flags in general?

tranquil schooner
#

I want to send mail with it and set up a conversation topic

I'm trying to use a vanilla one, but I'm unsure how to use it, yeah

vernal crest
#

I thought they meant they want to use a trigger action with the Player has mail condition with that mail flag.

uncut viper
#

you'd use it the same way you use a custom flag

vernal crest
#

And doing so is exactly the same whether it's a vanilla or mod-added mail flag.

uncut viper
#

in a CP when condition, its the HasFlag token

#

in a GSQ, its PLAYER_HAS_MAIL

#

but also, the player will already get a conversation topic generated at the same time they get that mail flag

tranquil schooner
#

Ohhhhhh okay

uncut viper
#

every time the player enters a location for the first time, the firstVisit_<LocationName> conversation topic is generated

#

lasts 4 days

vernal crest
#

(Although there's nothing stopping you from adding your own CT if you want it to be a different length or you want to avoid incompatibility with another mod.)

uncut viper
#

and the beenToWoods mail flag is given when they enter the secret woods for the first time

tranquil schooner
#

Right
Alright, that should help when I get back to my laptop

sterile dirge
#

Time to try making my first heart event SDVpuffersquee

twin wadi
sterile dirge
latent mauve
gentle rose
#

I know an actual paid gacha game that used to sell a Link outfit that’s been reported to nintendo’s lawyers and they chose not to do anything if that gives you some hope haha

latent mauve
#

I'm reducing the possibility of issues where I can with my mod, but I would not have risked it if there weren't already other mods in the space that reference the franchise and are more directly using the original assets

#

But, even should the worst happen and the mod need to get taken down because of any concerns, I learned enough in the process to pivot to a new expansion that isn't based on another game 🙂

#

Oh, oops, sorry for the novel

tribal ore
#

Is there any way to get the gender of an NPC with CP? Was looking at conditions and tokens and not seeing anything to extract it for modded NPCs

#

Guessing not. Never mind, I'll think of another way to do what I was thinking

gentle rose
#

“get” in what way? to use as a token?

woeful lintel
#

do NPCs even have a gender attribute? (genuine question, I never messed with them, and I can't find any reason for why they'd need one)

torpid sparrow
#

Yes for spa I think

#

Sorry ginger island

uncut viper
#

sprite sheets differ between genders, as well as changing rooms, and flower dancing

torpid sparrow
#

I meant

uncut viper
#

determines whether pregnancy is possible etc

#

probably many other things I'm forgetting

whole raptor
gentle rose
#

I mean they're based in china so it might have been that? it's harder to do copyright enforcement on chinese companies afaik

uncut viper
#

that's what I would've guessed too

#

a lot of gachas are cn based

whole raptor
#

Ah, that makes more sense

whole raptor
hallow prism
#

i have a question about the format for NITV packs :


Should be same length as other lists in group. Represents the possible items to give player.
itemDropItemChances (List<float>, default empty)

Chance for each item in itemDropItemIds to be picked, as a float from 0 - 1.```
https://nature-in-the-valley.gitbook.io/nature-in-the-valley-documentation/adding-a-creature/markdown
I think i get the format of the first one because there are other stuff that are a list<string>
but i'm unsure of the format of the second and can't find an example
Is it just

                    "itemDropItemChances": [
                        0.3,
                        0.5,
                    ],

?
uncut viper
#

yeah List<float> would just be that

#

no quotes or anything

hallow prism
#

thanks 🙂 i will test that then, and see if it works since i don't really see an example anywhere

#

i suppose i need one value per item listed in the previous one

swift pagoda
#

"Hey, I’m looking for a skilled modder to help with a [type of mod] for [game]. I can pay. Do you have a portfolio or past work I can check out?"

calm nebula
#

are you looking for someone to commission

gentle rose
#

I think you forgot to replace the placeholders with actual answers

hallow prism
#

at the moment my attempt isn't working, but it may be because of some incorrect format


                "{{ModID}}_CopperBeetle": {
                    "rarity ": 0,
                    "grounded": false,
                    "speed": 0.004,
                    "scale": 1.6,
                    "range": 0,
                    "seasons": [
                        "spring",
                        "summer",
                        "fall",
                        "winter",
                    ],
                    "locations": [
                        "0",
                        "3",
                    ],
                    "minTime": 800,
                    "maxTime": 2000,
                    "spritePath": "Mods\\Lumisteria.InsectsOfFerngill.CP\\08CopperBeetleAnim",
                    "xDef": 30,//Museum to change
                    "yDef": 11,//Museum to change
                    "localSpawnCode": "1",
                    "Price": 4200,
                    "displayName": "{{i18n: InsectsOfFerngillCopperBeetle_Translated}}",
                    "displayDescription": "{{i18n: InsectsOfFerngillCopperBeetle_Description_Translated}}",
                    "spriteIndex": 8,
                    "itemTexture": "Mods\\Lumisteria.InsectsOfFerngill.CP\\InsectsInventory",
                    "GSQ": "ANY \"LOCATION_CONTEXT Here Lumisteria_MtVapius_Forest\" \"PLAYER_FORAGING_LEVEL Current 8\"",
                    "itemDropItemIds": [
                        "378",
                    ],
                    "itemDropItemChances": [
                        1,
                    ],
                },```
#

the creature itself is working

#

the drops are not but i'm not sure if i need the other parameters to also exist

proven spindle
#

I think itemdropitemids needs all the itemdrop fields (chances, bools, exclusiveitem) to have entries as well so their lists are the same length

hallow prism
#

it would make sense to have stuff paired but i'm unsure of the format it would have then

#

or you mean the format is correct but i just need the four different lists

#

all same size?

#

(aka 1 item per list, or 3 or whatever, but not one with 3 and one with 1)

proven spindle
#

I think so

#

Like adding something like this:

"itemDropOnlyBools": [
"true", // or whichever you need
// more entries if you have more drops so the amount of entries in each list is the same
],

#

Ditto for exclusive items

hallow prism
#

ok i will test that

#

current list of the specific part :


                    "itemDropItemIds": [
                        "378",
                    ],
                    "itemDropItemChances": [
                        1,
                    ],
                    "itemDropOnlyBools": [
                        false,
                    ],
                    "itemDropExclusiveItem": [
                        false,
                    ],```
Still nothing
hoary lake
#

mod idea: an animal that duplicates every night. 1 becomes 2. 2 becomes 4. 4 becomes 8. if your coop or barn fills up then you gain upgraded variants of that animal BUT it resets how many animals you have. so 8 normal animals turns into one mega animal then those mega animals duplicate using the same maths.

hallow prism
#

it's ok, thanks for the help Si and Button

#

i will see if someone has ideas otherwise the author will be able to help in the future 🙂

proven spindle
#

I wonder if you can patch export Nature.NITV/Creatures to see what it's picking up in game. I've never tried doing that for a data thingy added by a mod rather than vanilla, not sure if it would work or not

proven spindle
hallow prism
#

oh good idea, usually it does export the full stuff, yes

#

so the result of the exported version is :


    "itemDropItemIds": [
      "378"
    ],
    "itemDropItemChances": [
      1.0
    ],
    "itemDropOnlyItemBools": [],
    "itemDropExclusiveItem": [
      false
    ],```
Which leads me to believe the format on the third argument may not be written properly but i do follow the ```itemDropOnlyBools (List<bool>, default empty)``` indication (and it's the same than the fourth, which is working)
#

ah yes

#

field name is different on documentation

#

let's retry

#

same result (altought this time at least all fields are having proper data)

pine elbow
#

Does anyone know where I can find the Data/SecretNotes documentation, I couldn't find it on the wiki about it?

proven spindle
#

The mail data page has some info about them

#

If you want to make custom ones I highly recommend Secret Note Framework

uncut viper
#

do note that since they are int-ID'd they are hard compat wise, and yeah, there is a framework to make workin with em better

#

also provides a lot more options of things you can do with them

pine elbow
#

So it's better not to use the content patcher to do it.

lucid iron
#

SNF is a content patcher extension type framework

#

You use content patcher to add in the data it desires

mild dagger
calm nebula
#

that is fine

pine elbow
brittle pasture
red egret
#

is there a command to clear the map from debris?

hallow prism
harsh bobcat
#

there's clearfarm and there's world_clear current debris (or farm though idk if there's one name for all farm maps or not)

red egret
#

ty, the other one worked

#

Progress again! I managed to get it displayed correctly and move it around the map, but now i need to align the actual borders/collision and front/back stuff and also find the door XD
also idk where the mailbox should be and is

maiden wigeon
#

are there mods out there that are open source and looking for contributors? I didn't have an idea for a mod yet, thought I might be able to help out somewhere else

quartz arrow
#

im having trouble validating some .json files and im not sure where to ask for help

#

im new to making CP mods and i dont know what im missing

maiden wigeon
#

i think this is a place you can ask

quartz arrow
#

is the SMAPI error log more helpful? Or the links to the .json validators for the files? (two i think I have fixed but 7 im for sure lost on)

maiden wigeon
#

the mod page on the wiki recommends a json validator site, so i imagine that's the way to go

#

i'm new to mods but not new to json, i always use a plain validator

quartz arrow
hallow prism
#

you miss several closing brackets

quartz arrow
#

thats what i thought and thats how i fixed other ones but i cant find the ones im missing snapped

ocean sailBOT
#

If you have a mod idea that you aren't planning to make yourself, you can put it in the mod ideas github: https://github.com/StardewModders/mod-ideas

However, this does not mean anyone is guaranteed to work on your idea—modders who are looking for ideas sometimes go through and work on what they find interesting off this list. If you want to pay someone to make your mod idea, there are a few people who do commissions (mostly art, sometimes code); you can ask around, search usernames for the word comms, or see !commissions.

hard fern
#

there's a github with tons of them

quartz arrow
#

i found two of the brackets

hallow prism
#

now i think possibly it doesn't like the format "LMTD_rose_quartz": "LMTD_rose_quartz"

maiden wigeon
#

😮

hallow prism
#

i'm not sure why you are reacting like that

quartz arrow
#

i think theyre reacting to the forum with the mod ideas

maiden wigeon
#

^ yes that's what i'm reacting to

hallow prism
#

oh

maiden wigeon
#

appleschloss and I appeared here at the same time

hallow prism
#

thanks 🙂

opaque field
#

question: My dialogue works with the exception of my gift dialogue in the jojamart. For some reason, when in the jojamart Shane still says thanks how did you remember these are my favorite?" for the pepper poppers, but when I patch export his dialogue it shows my dialogue, and everywhere else he says the line I have. Do I need to do something with load priority?

maiden wigeon
#

I personally go through and try to pair up each {/[ and make sure there are commas everywhere

quartz arrow
#

i may remove the garbage can .json for now LOL but lemmeee look at my other ones i needed help with

#

(if im posting too many lmk. i just need someone who's down to help me a bit i swear my eyes are just missing things. im still learning a lot lol)

hallow prism
#

where did you get the base you're using?

quartz arrow
#

that one i got from like a combo of editing geodes in a dif code and looking at SVE's garbage can bin tho THEIRS adds garbage cans and i cant find a section about altering pre-existing garbage cans-

hallow prism
spiral lion
#

hello! is there anyway to make time pass in an event? like to start it in afternoon and end it in the evening so light changes troughout?

quartz arrow
hallow prism
#

"GarbageCans", "Blacksmit", "Items", "Default", "RandomItemId"
GarbageCans sounds ok, Blacksmit has a typo, Items sounds ok, but the two other things would be a very specific modification

#

if you wanted to add an item to a list of random items, i believe the format would be a bit different

#

i suggest targetting items and adds your item there, while following the wiki format

quartz arrow
#

This is very helpful thank you!

#

ill likely be back after i eat supper if i encounter more things lol

hallow prism
#

sure! what i think is not valid in the json is that you have "stuff":"stuff" in a part when you need "stuff:"{"stuff"}, basically

#

(and some extra details but the wiki has them)

#

now, while SVE does a lot of things it can do sometimes outdated things or advanced things, i suggest to try to cross reference and

#

!unpack

ocean sailBOT
#

Follow this guide to unpack the game's content files in order to see and explore how the game data is structured.
It's helpful when making your own mods, or just to learn about how the game works!

hallow prism
#

vanilla files are usually more straightforward

#

another tips, if you want a documentation about thing, searching for modding:thing on the wiki will let you search in the modding pages

#

(however a lot of the documentation is easier to find once you know where to search it so ... 😄 )

half tangle
acoustic summit
hallow prism
#

thanks! feel free to ping me if you can by then, no rush on my end as i may not have anything ready soon anyway

pine elbow
#

Does anyone know where I can find the Data/Tailoring Recipes documentation?

quartz arrow
#

3/9 of my files now say "no errors" when i run them so woo!

The other 6 xD im uncertain about. Im SURE its a comma or bracket im missing somewhere but I'm not finding where/I may be missing some nuance about how brackets function

#

(minus the garbage can one which has the "ID" error that idk what it needs from me)

urban patrol
#

i don't think this is your actual issue but it looks like you missed the h in blacksmith

quartz arrow
#

HEK

#

Lumina even pointed that out earlier 😭 i went and ate some chips and dip and fully forgot lol

#

Yeah the error still pops up after the spelling fix sadly )):

quartz arrow
#

Sorry if this is a lot, but these are the other ones I'm having troubles finding the errors on. I'm gonna take a break on them (for my eyes) atm and come back later to see if i can Spot the Difference but if anyone else notices something feel free to ping me. It's all super appreciated honestly.

(CustomOre - ItemExtensions) https://smapi.io/json/content-patcher/54dcce92255248deae30390de5b71bb4
(ItemExtensions) https://smapi.io/json/content-patcher/d1a9e81bdc274da6be157c4517068fca
(Location) https://smapi.io/json/content-patcher/4693305d7788422f92901735bf7315e0
(Machines) https://smapi.io/json/content-patcher/63814c71bfaf4a3896cb9ebe029a7435
(Objects) https://smapi.io/json/content-patcher/2be1a05c96d54d37864501e815001a65

hard fern
# quartz arrow Sorry if this is a lot, but these are the other ones I'm having troubles finding...
{
      "Action": "EditData",
      "Target": "Data/Objects",
      "TargetField": ["749", "GeodeDrops", "Default", "RandomItemId"]
      "Entries": {
                "LMTD_blue_goldstone": "LMTD_blue_goldstone", // add a value
                "LMTD_peridot": "LMTD_peridot", // add a value
                "LMTD_rose_quartz": "LMTD_rose_quartz" // add a value
    },
   },
``` you are missing a comma at the end of your target field on this block, and the one right below it in your objects json
#

same issue with machines

velvet narwhal
#

basically whatever the validator said, the line before is missing a comma

quartz arrow
#

Im learning many things about commas, tyty

#

WOO Machines and Objects come back with "No Errors" now

#

Now to continue through with the other ones

#

🙏 tysm

crimson kettle
#

is there anyone who knows or have a guide about how to apply AT for giant crops

hard fern
#

🤔 idk if anyone can answer this but is it possible to add a fish tank with fish in it to a map, like the same as the funiture type

crimson kettle
#

mine is like this but it keeps saying theres no texture in this season

opaque field
# hard fern 🤔 idk if anyone can answer this but is it possible to add a fish tank with fis...

https://stardewmodding.wiki.gg/wiki/Tutorial:_Making_Custom_Furniture_With_CP this has something I believe specifically about how to add fish tanks 🙂

Stardew Modding Wiki

This tutorial explains how to add custom furniture using the new 1.6 game update features and Content Patcher. The tutorial assumes you already have the game unpacked and that you have some basic familiarity with the Content Patcher format. The mods referenced as examples in this tutorial are Bonsai…

hard fern
#

i feel like that might not even be possible with cp

quartz arrow
#

WAIT i think i know the garbage one

#

YEAH okay i got that one (it feels so cool to figure this out and learn things)

uncut viper
#

StardewUI is not a content pack framework, you need C# for that

ornate locust
#

Sounds a bit like Custom Reminders

#

as in, a mod by that name. Not sure it's updated

hard fern
#

Oh i was thinking about that one too

quartz arrow
#

Also does anyone know how to add another type of pick-up-able item in the mines? Akin to a frozen tear or quartz

quartz arrow
#

I kept trying to find tutorials and such and didn't have much luck ://

uncut viper
#

there is no tutorial bc it is not possible without IE

quartz arrow
uncut viper
#

oh i forgot you didnt have to break frozen tears

#

Farm Type Manager then maybe?

quartz arrow
#

Im using IE to spawn in a node, so I assumed itd have those properties but I can't find a comparable mod that puts pick-up-able things in the mines

#

ooh ok

uncut viper
#

dont know if it has options for mines

#

but worth giving a look

quartz arrow
#

I'll check nodnod

#

tyty

uncut viper
#

i know it can spawn forageable things, i just dont know its limitations

hard fern
quartz arrow
#

i think i fixed it now i get to try to run the game blurr

#

Okay so it launched this time but also i got this-

[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/CustomOre.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/FishData.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/FishPondData.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/GarbageCans.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/ItemExtension.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/Location.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/Machines.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/NPCGiftTastes.json': file contains fields which aren't allowed for a secondary file (Format)..
[Content Patcher] Error loading patch 'Just a Little More to Do > Include Data/Objects.json': file contains fields which aren't allowed for a secondary file (Format)..

i may have done my content.json wrong 🤔

proven spindle
#

The content.json file is the only one that needs the Format line at the top, you don't need to have it in other jsons you use the Include action for

quartz arrow
#

OH

#

okok

#

so get rid of the "Format" on all the ones except content?

hard fern
#

yeh

quartz arrow
#

okok

#

🤞 here we go again

#

Alright, so the game loaded with no pre-errors this time. (Woo!) But now its not finding my assets...

#

It also does not appear to like my Machines.json file lol

#

(sorry im rambling lol, i just forgot i was in this discord and am excited to learn/figure things out xD)

minor marsh
#

Hey. If I may interrupt for a second.

    {
      "Action": "EditData",
      "Target": "Data/ObjectInformation",
      "Entries": {
        "428": "Cloth/470/-300/Basic -26/Wool Cloth/A bolt of fine wool cloth, well suited for winter wear."
      }
    },
    {
      "Action": "EditData",
      "Target": "Data/ContextTags",
      "Entries": {
        "428": "fabric_item"
      }
    },

Is there anything wrong or missing here, I cannot get my game to accept the changes I want it to make to the cloth.

urban patrol
#

where did you see how to write this?

vernal crest
#

Data/ObjectInformation is not a real thing

#

(As of 1.6)

minor marsh
#

Ah. That'd explain it.
It's a rather old mod that was never updated, so I was giving it some tinkering.

hard fern
#

it probably needs to be rewritten entirely then, if it's so old

minor marsh
#

Well heck. I got most of it up and running again, so I guess I can manage to rewrite this part, too.

#

Thank you~

quartz arrow
#

Do y'all know what i need to edit to make the sillouette of my new items to show up in the collections tab?

round timber
#

should be automatic

#

assuming the item is getting patched into the game correctly

quartz arrow
#

hmmm they're lil 🚫 signs right now...

hard fern
#

hmmmmmmm

quartz arrow
#

i am attempting to figure out if theyre in game lol

hard fern
#

possibly your item IDs dont match

quartz arrow
#

hm okok

#

the item IDs confuse me a bit LOL i shall see if their asset even loads if i were to find an item/fish/etc

#

hmm no ok it did fail to load the textures

#

.... hmmmm

hard fern
#

uh oh

#

you sure the texture is spelled right? or pointing to the right asset?

vernal crest
#

A common mistake that people make is putting the path to their actual mod folder in the Texture field.

#

Instead of the asset name they Loaded the texture to.

quartz arrow
#

What would the path look like?

#

Mine currently is - "Texture": "Mods\[CP] Just a Little More to Do\assets\minerals_artifacts",

vernal crest
#

What is it in your Load patch?

quartz arrow
#

which is my load patch

#

(Sorry im still learning the terminology 😭 i fly blind half the time when learning a new skill i stg lol)

vernal crest
#

The one that is "Action": "Load" with a Target of "Mods\[CP] Just a Little More to Do\assets\minerals_artifacts"

quartz arrow
#

wait which .json thing does the load one go in?

vernal crest
#

By the way, I recommend replacing that with "Mods\{{ModId}}\assets\minerals_artifacts" because then it will use your mod's unique id

quartz arrow
#

i may not have it.....

vernal crest
#

At the beginning of modmaking I always recommend that people put everything in their content.json

quartz arrow
#

okok i thought the {{ModId}} part was giving me errors earlier

vernal crest
#

Because trying to grasp the idea of Includes on top of understanding patches is unnecessary complexity

quartz arrow
#

cause i also wasnt sure what my ModID was

vernal crest
#

It's the unique ID listed in your manifest.json

quartz arrow
hard fern
#

SDVpuffersweats i kinda came bsck to modding after years and just started using includes

quartz arrow
#

i just slap words in that other people use and do my best to understand why its happening lol

vernal crest
quartz arrow
#

coding is wild man

vernal crest
#

The only thing you need for a CP mod is a content.json and a manifest.json

quartz arrow
#

REALLY??

hard fern
#

Yeah

#

Literally all you need

#

You dont even need assets

#

If your mod doesn't edit any images

quartz arrow
hard fern
#

Which reminded me, someone suggested me to change the poppy seed muffin to use actual poppy seeds instead of the flower

vernal crest
#

If you have any player-visible text in your mod I would strongly recommend also having an i18n folder with at least a default.json file but that is still technically optional

quartz arrow
#

ok so the "Action:Load" thing- do i need one for each asset im adding?

#

(Lemme try to find a tutorial unless y'all have a good rec-)

vernal crest
#

Yes you need one for each asset but you can use tokens to combine them if they're named the right way (an example of which is on the page I just linked too).

#

(Technically you can use InternalAssetKey instead of Loading your assets but I hiss at that and do not like to recommend it because it means other mods can't Target your assets.)

quartz arrow
#

good to know NOTED

#

me jumping from an Alternative Textures mod to full ass CP - thinking it would be an easy step 🤣

visual dirge
#

would people consider it evil or strange to ship a content pack as a single autogenerated minified content.json and a single assets folder with a flat structure? im finding writing content packs somewhat repetitive and im not a huge fan of json in general or how content patcher requires you to structure your code (not cp's fault, im just picky) and im considering using my own format

hard fern
#

I dont under what any of that means ngl

visual dirge
#

like instead of writing content patcher json files i write my own format and use a program at build time to generate a content.json

brittle pasture
#

have you looked into the yaml adaptor

visual dirge
#

its not just json that im picky about, its also like the structure of how includes and asset loading works

#

plus i wanna make some things more concise

#

like Include + LocalTokens templating

lucid iron
calm nebula
#

(I think it's fine.)

lucid iron
#

And i definitely made py scripts to generate cp packs b4 kyuuchan_run

keen cave
#

(I’ve never looked at content.json as a normal user if anyone wants my 3 cents)

lucid iron
#

Minifying it seems like whatever cus i can just format it if i need to read ur stuff

visual dirge
#

the smart part of my brain resisting the urge to write a content patcher dsl vs the dumb part of my brain getting the itch to write a lexer

calm nebula
#

Tbh i always reformat content packs if I need to read them for whatever reason

lucid iron
#

Tbh esper maybe u can look at spacecore contents

brittle pasture
#

are yoy minifying your item IDs JS style

#

if not then I couldnt care less lol

lucid iron
#

It's not very well documented but it is less " " hell and i think it supports real foreach

hard fern
#

(im not a normal user so i look in many content.jsons)

visual dirge
#

and just ids in general

lucid iron
#

Death

brittle pasture
#

very, since as you know every time you generate a guid one less becomes available for the universe to use

tiny zealot
visual dirge
#

i mean its more that i would have to deliberately enable pretty-printed json output but yea i can see your point

lucid iron
#

So do u wish to like

#

Write it as include with local tokens

#

Flatten it at the end

visual dirge
visual dirge
brittle pasture
lucid iron
#

Yeah dat part seems fine

#

Doesn't sdv waste like

brittle pasture
#

(if it's not exceedingly clear by now I'm joking)

lucid iron
#

A lot of guid every save

lucid iron
#

For lookup anything reasons

visual dirge
#

wait really

#

thats cursed

#

i object to that convention

lucid iron
#

I dunno send in a PR i guess

visual dirge
quartz arrow
#

@vernal crest uhhh.. i think Target

visual dirge
lucid iron
#

My guess is that . is already conventional for mod id so _ is next pick

brittle pasture
#

that convention is chosen since mod IDs usually contain dots, and using underscores ensure mod lookup is O(1)

lucid iron
#

It's not a particularly smart mechanism for determining source mod

visual dirge
#

persinally item ids being AuthorName.ModName.ItemName makes so much sense if you ask me

lucid iron
#

Maybe just make it take both

visual dirge
#

whereas AuthorName.ModName_ItemName is weird because the word boundaries are messed up

lucid iron
vernal crest
brittle pasture
turbid pawn
#

If a content pack folder is placed inside another content pack's folder, will it still run?
I want to adapt some content packs by other creators to be compatible with My framework, but I'm concerned about plagiarism. I want to create a compatibility pack with instructions "To make this thing work, go download the original content pack from the very skilled creators at this link, and put their mod in My compatibility pack's folder". Will users need to put a . in front of the original pack's file name in order for it not to run?

lucid iron
tiny zealot
#

in early 1.6 you couldn't use an underscore in your pet's breed id or the pet license wouldn't work because of cursed underscore parsing

lucid iron
#

So it's "chu.FruityMod Apples"

hard fern
#

I started using underscore so i could use lookup anything but it makes me mad when i have 20 items that all follow the same format and i have to manually highlight the item name to copy paste each of the names of the items

visual dirge
tiny zealot
lucid iron
brittle pasture
#

are we not using regex or

visual dirge
hard fern
#

At this point im considering using . Again and just letting people trying to use lookup anything suffer.

visual dirge
#

im gonna keep using . its lookup anythings fault if that causes problems

#

imo algorithm lookup anything SHOULD use to match ids wouldnt involve a delimiter at all

#
  • if an id has a mod id as a prefix then assume its from that mod
  • if it has multiple mod ids as a prefix use the longest one
    ez pz
uncut viper
#

how do you know which part is the mod id prefix to check without using a delimiter

visual dirge
#

ill pr that when c# strings stop making me wish i didnt know how to code

uncut viper
#

unless you want LA to check every single mod ID in the loaded mod registry against every single item ID to check if the item ID contains any unique id

visual dirge
#

yes

hard fern
#

😔 all this talk about mod ids makes me want to do the thing i told myself i wouldn't do (aka keep working on my mod)

visual dirge
uncut viper
#

neither is having a standard convention

visual dirge
#

even if theres 100000 mods loaded thats not very many string comparisons

uncut viper
#

nothing we're discussing is a big deal in any grand scheme of things

visual dirge
#

i mean for performance 🙄

visual dirge
uncut viper
#

"the current convention sucks" is subjective and, again, not a big deal. just dont follow the convention then

brittle pasture
lucid iron
#

Seems reasonable to populate one based on mod registry

visual dirge
brittle pasture
visual dirge
brittle pasture
#

but maybe "before second dot" is fine

uncut viper
#

a unique id can have two dots in it

brittle pasture
#

yes, hence before second dot

uncut viper
#

you would need to check before the third dot

lucid iron
#

You will never stop randos from putting in non prefixed things alas

brittle pasture
#

oh I though unique id you meant "item id" lol

uncut viper
#

Spiderbuttons.MyMod.Subtitle is a perfectly valid uniqueid

lucid iron
#

But yeah just do a prefix search with trie it should be fine 3sSmolMiku

visual dirge
brittle pasture
#

but yeah that too

#

have you seen the potatos the good ppl at modded-farmers parade around with their 800 mods

quartz arrow
lucid iron
#

Ok but LA already slow as balls for them no?

visual dirge
pine elbow
calm nebula
#

This is a silly argument unless you want to @ Pathos lol

visual dirge
calm nebula
#

Anyways

vernal crest
quartz arrow
visual dirge
lucid iron
#

@ivory plume hi pathos good timezone can we put leetcode in lookup anything make LA try to search "added by mod" based on prefix instead of the _ convention

visual dirge
#

with a trie as chu suggested

#

😁

#

actually i think any kind of btreeset would work here so long as the string comparison is lexical

brittle pasture
#

(tbh if we're going this far I'd just split by dots and add parts incrementally)

lucid iron
visual dirge
#

you could just make a sorted list of mod ids and binary search it to find the closest mod id to any given item id

lucid iron
#

I don't think our thing would affect it that much but obviously the goal is make it reasonable to use when u got 2.5k mods

pine elbow
lucid iron
#

Thank u boncher

tiny zealot
visual dirge
brittle pasture
#

would it handle Author.MyCoolMod and Author.MyCoolModCode and an item named Author.MyCoolMod.Codex
ok it probably doesnt matter but bikeshedding is fun damnit

lucid iron
#

How does cornucopia items behave if u just do binary search

ivory plume
visual dirge
brittle pasture
visual dirge
lucid iron
brittle pasture
#

unless this impl is straightup going to give it to the wrong mod

lucid iron
#

Then it'd point to me lol

royal stump
# turbid pawn If a content pack folder is placed inside another content pack's folder, will it...

SMAPI won't load mods nested within another mod (or folders that have files in them, generally), but the mod containing it would have access to the files, equivalent to loading files from asset folders.
That said, if this is meant to replace a broken framework or some such, that doesn't dodge permissions or licensing issues with the framework itself. And authors don't necessarily permit anything if it affects how their assets are used, e.g. if a mod uses their pack in ways their original framework/mods didn't, etc. It's pretty contextual.
(also sorry if I missed someone replying already)

lucid iron
#

But ig that's why we still need entire mod id

vernal crest
#

And if I have understood correctly you're not asking about changing the mod id convention.

lucid iron
ivory plume
#

I'm not a big fan of the idea, since...

  1. using a loose heuristic like that can select the wrong mod ID (particularly given that some mod IDs use non-recommended formats like a single word, and newer vanilla items use string item IDs which could mistakenly have the same prefix as one of those mod IDs);
  2. it requires performing potentially dozens of mod lookups per ID, which is particularly an issue for code that might need to check many IDs;
  3. and it encourages authors to continue using non-standard ID formats, which is a vicious cycle (e.g. some authors use an invalid format because it works, then other authors copy their code, then more authors copy their code, etc).
visual dirge
#

regarding #2, it would technically have the same time complexity as the current implementation

lucid iron
#

I think 2 can be dealt with bc the list of mods loaded is static

visual dirge
#

O(log mods)

lucid iron
#

But hm what about merely allowing . as delim in addition to _?

ivory plume
#

We have a specific format that's thoroughly documented everywhere in the game code, wiki docs, guides, most mod code, etc; why not just use the standard format and avoid every mod (not just Lookup Anything) needing to try to heuristically parse them?

visual dirge
#

because AuthorName.ModName_ItemName has the wrong semantics, it implies AuthorName (ModName ItemName) instead of (AuthorName ModName) ItemName

#

and it makes word boundary stuff a pain

#

ModName_ItemName is a single word that gets fully highlighted when you double-click it

tiny zealot
#

those seem like smaller issues than attempting to convince everyone to switch formats

ivory plume
vernal crest
#

(Wrong semantics according to whom? /curious)

visual dirge
#

the unicode consortium

ivory plume
#

Allowing . as an extra delimiter is certainly more feasible; even if it's still non-standard, at least there's far less chance of false positives and far fewer lookups per ID required.

quartz arrow
lucid iron
#

Since the set of mod id -> mod name is constant we'd do this work one time in entry to build a structure nice for searching prefixes

ivory plume
visual dirge
lucid iron
#

But yeah i think the leetcode to put in and make it not slow is less important than whether this is good to allow or no

vernal crest
ivory plume
visual dirge
uncut viper
#

(i dont think we should personally)

turbid pawn
# royal stump SMAPI won't load mods nested within another mod (or folders that have files in t...

Thank you very much. My intention is for the compatibility packs to load assets from the original content pack, which the user downloads themself and puts in the compatibility pack folder. My framework adds a totally new system for deciding when farmer textures are used, so it wouldn't be very compatible with anything that edits the farmer's body, shirt, or pants. Is this ethically acceptable?

quartz arrow
visual dirge
#

and, again, its semantically wrong according to the unicode consortium

lucid iron
#

CP has a migrate id traction

ivory plume
#

(Content Patcher has built-in support for migrating item IDs in saves.)

vernal crest
lucid iron
#

Which is not a solvable problem

quartz arrow
molten osprey
#

I wouldn't say NOT solveable, just requires a lot of work and resources

#

(The bane of any community project)

lucid iron
#

Not a solvable problem for me who is 1 person despite efforts in this area

tiny zealot
uncut viper
#

i dont think its solveable to make every person ever who wants to mod for SDV lurk in here to learn everything we teach people

ivory plume
#

I don't think the Unicode consortium really applies when discussing ID formats documented in the base game and modding community. That could have been a good point during the 1.6 alpha when we were discussing which format we should apply, but I don't think it'd be beneficial to change the recommended format more than a year after it was standardized (particularly given that we'd need a game update to change all the official docs).

quartz arrow
#

nooo the fish are still 🚫 icons snapped

molten osprey
#

Unlikely to happen though since you have to be a special kind of deranged to dedicate yourself to that.

ivory plume
#

I knew we should have added format validation to the base game code while we had the chance. SDVpufferpensive

lucid iron
#

Well i do feel tempted to tell random ppl about doing things certain ways and sometimes i act on it

royal stump
tiny zealot
lucid iron
#

But it would be quite deranged to to push any harder than "hey here is a single friendly suggestion that you may consider or not"

uncut viper
visual dirge
visual dirge
royal stump
turbid pawn
# royal stump Personally I'd guess that's fine, though I'd expect one or two authors to ask no...

Of the two content packs I'm planning on making compatibility packs for, one is designed for exactly the kind of situation I'm planning on using it for, and was previously just limited by technical considerataions. I expect I'll either get permission very easily, or the artist will want to update their original content pack to use My framework. The other one is an abandoned project that a second mod author revived, so I imagine there wouldn't be any problems.

royal stump
#

(also that caveat that "failed to save" usually means they stopped making an emu because Nintendo threatened them, not a real court precedent)

cold marsh
#

Does this /G !SEASON_DAY summer 20 summer 21 event condition parse correctly as "event can't happen in summer 20 or 21"? I've never inverted GSQs in events so I'm not sure.

pine elbow
#

Well isn’t this an interesting conversation to walk in on with little to no modding know how

uncut viper
#

(to be fair, i dont think nintendo does a lot of things with actual legal authority behind them, i think they rely on people not fighting them)

visual dirge
#

and on intimidating people with threats of physical violence

lucid iron
uncut viper
#

(if anything i think there would be precedent against them from a Sony case if it did actually go to court a lot of the time, but thats expensive. also i dont wanna get more off topic)

quartz arrow
visual dirge
#

vanilla ids should be ConcernedApe.StardewValley.

molten osprey
#

Anyway since I'm here and profoundly dumb, is there any good way to have an event precondition based upon completion of a quest using content patcher stuff?
I'm trying to set up an NPC to unlock an event in a different location after you've completed an item (which will itself do some other map changes but that's its own problem), but there doesn't appear to be anything I can find on the stardew valley wiki (in the modding:events OR modding:quests pages) or content patcher documentation.
I know I can set up a quest to coincide with an event by using mail IDs, for the record, but that would alter the quest's structure pretty significantly.

lucid iron
quartz arrow
tiny zealot
ivory plume
pine elbow
royal stump
urban patrol
lucid iron
calm nebula
#

If yes, it's easier - embed the $1 dialogue token in the final dialogue

calm nebula
#

Or use an $action

lucid iron
#

I'm not in a position to fix it rn but maybe aba did it?

molten osprey
molten osprey
molten osprey
lucid iron
#

The best practice is a invisible letter aka mailflag

tiny zealot
#

a mail flag is a fine standard. see atra's (7th grade physics) response for one way

lucid iron
#

That's just how it works

urban patrol
#

it doesn't actually require you to check the mailbox

vernal crest
molten osprey
quartz arrow
#

that makes a lot of sense actually ty

#

i was trying to figure out how to link them yes

uncut viper
#

Quests also generate a CT upon completion

lucid iron
#

Hm if it's a dialogue anyway

uncut viper
#

which can be used as a mail flag proxy if its not a quest you control

#

just for future reference

lucid iron
#

You could use the spacecore traction to immediately go into an event if you want

uncut viper
#

or if its, yknow, not a quest that uses dialogue

pine elbow
# lucid iron Yeah i backread that i missed a } oops

I meant that it says “{{i18n:Phil.name}}”, where in cornacopias more crops mod (what I compared it to) it goes “{{i18n:Basil_name}}”
I figured the underscore was right since cornacopia is such a big mod

vernal crest
vernal crest
pine elbow
#

Ohhhhhhhhh

#

Okay cool

vernal crest
#

(Are there forbidden characters in i18n keys? There might be.)

twin wadi
#

how doable/hard is it to make a custom door? that's not replacing a vanilla door? im scared because doors use cursors SDVpuffersquee

lucid iron
#

Yeah the i18n just has to match

tiny zealot
# molten osprey Could you elaborate a little on that? I'm not quite getting what you mean, sorry...

$1 is a dialogue command that lets you set first-time dialogue as well as replacement dialogue that is shown on later occurrences. the game sets a mail flag (which you get to specify) to accomplish this.
so, if your quest involves an NPC giving you dialogue, you can use that command to set the mail flag (or you can set it via $action, or use the CT like button said, or or or. there are many ways to skin a cat in stardew modding)

urban patrol
# twin wadi how doable/hard is it to make a custom door? that's not replacing a vanilla door...
Stardew Modding Wiki

This is a mildly advanced guide for modders that assumes familiarity with Tiled, Content Patcher, and map modding fundamentals such as the difference between Map Properties and Tile Properties.
Interior doors, such as the one in Figure 1, are interactive map elements with hardcoded behaviour (see InteriorDoor.cs). There are three types in the b...

molten osprey
urban patrol
#

although it looks like this method would patch all interior doors...

molten osprey
#

Thank you.

vernal crest
urban patrol
#

i got too excited by "custom door" :(

lucid iron
tiny zealot
pine elbow
#

What is nowiki?

vernal crest
pine elbow
#

I saw it and was curious since it wasn’t explained in the text

lucid iron
#

{{ }} means things in wikitext which is the thing used for formatting on wikis

vernal crest
# pine elbow What is nowiki?

It's a tag used to tell the wiki that the stuff inside it is not wiki formatting and should be displayed as plain text

lucid iron
#

It unfortunately overlaps with cp token syntax

pine elbow
#

Oh interesting

lucid iron
#

So it's a mistake that it appeared in the actual page

twin wadi
#

would this work? like for only specific locations

lucid iron
#

Problems specific to wiki guides basically, no impact on actual mod

#

It would but it is slightly sinful

light jasper
#

if I want to listen to objects being removed from the world, do I use netObjects or overlayObjects?

public readonly NetVector2Dictionary<Object, NetRef<Object>> netObjects = new NetVector2Dictionary<Object, NetRef<Object>>();
  [XmlIgnore]
  public readonly OverlayDictionary<Vector2, Object> overlayObjects = new OverlayDictionary<Vector2, Object>((IEqualityComparer<Vector2>) GameLocation.tilePositionComparer);
  [XmlElement("objects")]
  public readonly OverlaidDictionary objects;
lucid iron
#

You can use the smapi event

light jasper
#

oh.

lucid iron
#

Objectlistchanged or something?

light jasper
#

imagine if I read the docs

#

that'd be crazy

lucid iron
#

If i spel wrong sorry

#

There's a fair few things that exist as smapi event and as net collections that could be hooked

light jasper
#

I just don't use the docs enough ig SDVpufferflat

lucid iron
#

I think the smapi events r more convenient usually, dont need to manage hooking just for current location as much

#

Caveat is that it comes later in the cycles so sometimes info has already changed, e.g. can't always get the right position of a removed furniture

twin wadi
quartz arrow
#

hmmm okay so im using ItemExtensions to add a new node into the mines, which drops sapphire.

I have sapphire in the "Object.json" file, which adds it to the collections tab

However, I also have it in the "CustomOres.json" to trigger it to drop from the node.

This is causing two sapphires to be in the collections tab- one which you can't recieve (in theory) which would leave the tab unfinished

#

I tried to remove the sapphire from "Objects.json" but that just lead to the rock not breaking because it had nothing to "drop" despite the file within CustomOres still having the relevant information

I'm not sure what to do here?

vernal crest
#

Share both files via the json validator so we can see :)

quartz arrow
#

ok!

vernal crest
#

Yeah so the one in the CustomOres file is wrong but also unnecessary, so yeet that one

quartz arrow
#

will it still drop the correct item?

vernal crest
#

It's wrong because you've made the id Sapphire instead of LMTD_sapphire.

quartz arrow
#

OH

#

oop

vernal crest
#

Specifically only yeet the Data/Objects patch

#

Because it's just a copy of the one in your objects file

#

CP doesn't care that they're in different files. It's all the same to CP. So as far as CP is concerned you have two Data/Objects patches in your content.json for the same thing, only one has the wrong ID.

quartz arrow
#

oh ok ok i see, cause the Stone already drops "LMTD_sapphire" ohhh

#

tysm!!

#

not as concerned about this one- but the game files arent happy with my addition to the furnace recipes xD Im trying to get my rose quartz item to be able to be smelted down into refined quartz, but i get a yellow error message in SMAPI specifically regarding my Machines.json file

ocean sailBOT
vernal crest
#

That means you've got your syntax wrong

pastel ridge
#

nearly 2 hours of troubleshooting later and i finally have a working mod 😭

vernal crest
#

This one EditData Data/Machines > entry #1" to Data/Machines: failed converting String value to the expected type 'StardewValley.GameData.Machines.MachineOutputRule': Error converting value "LMTD_rose_quartz" to type 'StardewValley.GameData.Machines.MachineOutputRule'. means that you've written a string where you need...possibly an object, I'd need to see your json to be sure.

This one EditData Data/Machines > entry #2" to Data/Machines: failed converting Array value to the expected type 'StardewValley.GameData.Machines.MachineOutputRule': Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'StardewValley.GameData.Machines.MachineOutputRule' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly. means you've got an array (which looks like this: [ 1, 2, 3]) instead of an object.

If you share your json I can point out what is wrong.

vernal crest
quartz arrow
#

the one about wrapping my fields around a key? (sorry discord isnt being Wonk and not quite going to a specific message)

vernal crest
#

Yes that's the one, sorry.

#

You need to take everything that's on lines 11 to 59 and put them inside another set of curly brackets with "LMTD_rose_quartz": in front of the opening curly bracket

#

(And may I suggest switching to {{ModId}} as your prefix instead?)

torpid sparrow
#

Is there something in this little patch above the blacksmith? I can't remember and I wanted to patch some of this over for a mod but i need to make sure i'm not messing with something

#

oh thats so crunchy

harsh bobcat
#

it's where one of the secret statues are right?

torpid sparrow
#

that sounds right

harsh bobcat
#

??hmtgf??

torpid sparrow
#

if that's the only thing then i can find the location in Tiled and work around it SDVpufferthumbsup

harsh bobcat
#

only thing there would be hmtgf don't think there could be anything else

torpid sparrow
#

perfect

#

thank u!

keen seal
#

Putting this here before I move onto other things for the night, please carry on and answer at your leisure;

How would one approach creating an item that is very similar to the Return Scepter (non-consumable warp item) that takes you to a custom location? Trying to circumvent how crowded the vanilla maps are for access to custom maps and also it thematically works with what I’ve got planned (high fantasy esq). I haven’t been able to find any guides on how to accomplish it.

vernal crest
quartz arrow
torpid sparrow
hard fern
#

lol

#

im sure it is the bane of many a mod author when it comes to compat

torpid sparrow
#

tbh the sve map works too

#

this is early days but if i want to edit over that map, how would the patch priority work

hard fern
#

you'd have to get yours to load after the mod you want to edit

vernal crest
#

With SVE, doesn't matter because a Load will always come before an EditMap

half tangle
torpid sparrow
#

well that will be a problem for later right now im excited to make a new interior in tiled even though i'll probably get furstrated within 5 minutes

quartz arrow
#

so far:
my artifact spots work!
my gem node is spawning correctly!
I found one of my minerals in an omni geode!
all the items i added are in the collections tab and are summonable with CJB ItemSummoner!

but... im either having bad luck or my Fishing Spawn Locations arent working as they should xD

I installed Visual Fish to help, but also they dont have an Aquarium form yet, which may mean they simply dont show up with Visual Fish since im assuming thats what it grabs from. But I also havent caught any yet... could genuinely just be bad luck hmmm

torpid sparrow
#

if im doing map compat with SVE, am I allowed to use their maps? Idk if that's a silly question

hard fern
keen seal
vernal crest
torpid sparrow
#

oh true environment assets are base game assets

quartz arrow
#

[game] Skipped fish 'LMTD_clownfish' due to invalid requirements in Data/Fish: required index 12 (int minFishingLevel) has value 'false', which can't be parsed as an integer

🤔 ok what does this mean

hard fern
quartz arrow
#

lemmmeeee test

vernal crest
#

Yup it means you've put a bool (true/false) into an integer (whole numbers) field

#

Which might mean your fields are off by one or just that you put the wrong value in that one

quartz arrow
#

you guys are very patient and helpful it means a lot(

vernal crest
quartz arrow
#

comparing it to SVE's fish log- it does look like i was missing one more number, which ive added, now lets cross our fingers lol

#

THE CLOWNFISH IS IN THE WATER

#

ITS JUST BOBBIN THERE BUT HE'S THERE

#

The fish I was most worried about was one i wanted to add on ONLY Green Rain days

#

but look!! He's there during the green rain and when I went back the next day he wasn't there!!! It worked!!

#

also of COURSE in my cheaty mcCheaterson test world id get a fishing tresture chest with an insane sword, one of the dolls, and a TREASURE CHEST all in one- like WHOMST

gentle rose
#

well done! double check he isn't there when it's regular rain and you're good to go

quartz arrow
#

we're in the clear!!

gentle rose
#

nice!

quartz arrow
#

These poor town folks. I show up one day. I run around town at super human speed. I disappear for a month. I keep fishing and tilling up all the soil at random. The weather man said it was gonna be sunny and then it rained. Who is this cryptid??

#

okay xD now to test fish ponds

keen seal
quartz arrow
#

hmmm okay any ideas why the quests for my fish's population gates aren't picking the IDs im assigning?

#

so like my clownfish asked for 2 clams to go from 5 -> 6 but i have the options as "5 blueberries" or "1 gold bar"

        "(O)258 5", 
        "(O)336 1"
#

my sword fish also asked for one bait to go from 3 ->4 but i have these as the options listed

    "4": [
        "(O)830 10",
        "(O)335 3",
        "(O)380 10"
    ],
#

none of which are one bait xD

vernal crest
#

Alx was having that second issue last night, let me see if they figured it out

#

Nope, no response from them since I suggested checking the patch export.

quartz arrow
#

hmmm good to know its not just me tho LOL. im glad theyre working in the fish ponds, and the roe is producing. Haven't gotten things besides roe but that could just be from me skipping around t rying to get to their level caps/quests

vernal crest
#

You can use Lookup Anything to see if the other possible outputs are listed

quartz arrow
#

oh?

#

i'll have to do that

#

tomorrow tho 😂 cause its 1am and my brain is tired

#

im just glad the mod is working at least like 80% rn

vernal crest
#

Is your clownfish an ocean fish by any chance?

quartz arrow
#

yeah!

#

oh you think that has somethin to do with it??

#

thatd make sense why my Surgeonfish was also giving the literal exact same quests

vernal crest
#

Okay so I have figured out that your swordfish is using the population gate info from the default fish entry. And your clownfish is using it for the ocean fish entry.

quartz arrow
#

oooh okok i wonder why 🤔

#

yeah my Swordfish is from Ginger Island (and another fish, my Gem Fish, is from the Secret Woods and also did the 1 Bait Quest)

vernal crest
#

What is your precedence set to?

quartz arrow
#

What does precedence mean in this context?

vernal crest
#

There's a field called Precedence. What's the number in it?

quartz arrow
#

Sorry my coding lingo is no bueno yet 😭
Oh umm... I don't have that field...?

vernal crest
#

Actually, can you just share your fishpond json? Then I don't need to ask stuff haha

quartz arrow
#

yeah!

vernal crest
#

(And don't let me stop you from going to bed! I'll still be here tomorrow lol)

quartz arrow
#

LOL fair fair

vernal crest
#

(But when you come back to it, add {{ModID}} to all of these too please!)

#

Every ID in your mod should have it.

quartz arrow
vernal crest
#

Yes, though make it {{ModId}}_fish_pale_catfish (although it could just be {{ModId}}_PaleCatfish or {{ModId}}_pale_catfish if you like)

#

Ooh actually before you go, can I also see your Data/Objects patch adding the swordfish?

quartz arrow
#

yeah!

quartz arrow
#

in FishPond they were "fish_swordfish" and in objects they were "LMTD_swordfish" 😭

#

(which im also fixing to be {{ModId}})

vernal crest
#

It's actually the context tags I am interested in

quartz arrow
#

oh ok!

vernal crest
#

Your Data/FishPondData and Data/Objects entry keys don't need to be the same

quartz arrow
#

good to know xD

vernal crest
#

Otherwise there couldn't be a default fish FishPondData entry or an ocean fish entry etc

quartz arrow
#

oh! ok

vernal crest
#

RIght so your swordfish object doesn't have the context tag fish_swordfish. But in your FishPondData entry for the swordfish, you've said that it only applies to fish with that context tag.

quartz arrow
#

do i remove the tag entirely then or do i add the tag into Objects

vernal crest
#

You need to add the tag to the fish object

quartz arrow
#

ok :3 i added that ... imma launch the game bed can wait two seconds LOL

vernal crest
#

Because what happens to determine the fish pond data is that the game looks at the context tags the fish object has and compares it against the RequiredTags field in the fish pond data. If they match, it then uses that fish pond data when that fish is put in a fish pond.*

Because your swordfish didn't have any context tags matching any RequiredTags field in the fish pond data (because fish_island is not a tag the game uses and you didn't add it into the fish pond data), the game went "well, I guess this is just a default fish" and used the fallback fish pond entry...which has 1 bait as its quest item for the population gate!

Does that make sense?

* It uses the precendence field as a tie-break if the context tag matches more than one fish pond data entry or if the fish has more than one context tag that matches a fish pond data entry.

quartz arrow
#

That makes total sense!

#

YAY THE CLOWNFISH CORRECTLY ASKED FOR ACORNS

vernal crest
#

Hooray! Whew, I am glad for that because I didn't actually know any of this for certain I was just trying to figure it out as I went along lol

quartz arrow
#

Thank you so so much <3 and hopefully that helps Alx too!!!

vernal crest
#

You're welcome! I'm going to ping Alx about it now so hopefully it will help.

#

Sleep well!

quartz arrow
#

woo! and yes thank you i will LOL

devout cliff
#

How accessible is it for a coding newbie to make a mod replacing a vanilla NPC?

quartz arrow
#

Visually? Or like dialogue, location, spouse bedroom, events, etc too?

devout cliff
#

Mainly dialogue, location, events are what I'm not sure about

quartz arrow
#

(Also im on my phone now so im technically in bed LOL)

#

(Aba will have much better insight but i know I am intimidated by it currently and wanting to attempt it eventually LOL)

vernal crest
# young sluice Howdy folks, having a bit of trouble with my fishponds, the quests are just show...

Okay in helping appleschloss I figured out your issue too. The context tags in your Data/Objects entries for your fish don't match the RequiredTags field in your Data/FishPondData entry.

I think perhaps you might be trying to use the auto-generated context tag item_<name> but since your fish are named "Smokey Gillcarp" and the RequiredTag is "item_SmokeyGillcarp", they don't match (also, I recommend changing your Data/Objects names to "{{ModId}}.SmokeyGillcarp" because the name field is its ID and it should be unique and ideally not have spaces).

I explained the reasoning for it here: #making-mods-general message

vernal crest
devout cliff
#

I just assume that would technically be easier than starting from scratch

keen seal
#

I made one from scratch for the first time a couple of days ago (also new to modding) and it wasn’t that bad tbh!

vernal crest
#

It's not actually easier than starting from scratch because the process is almost identical

devout cliff
#

Oh. Well, lol 😄

quartz arrow
devout cliff
#

Yes, it is

vernal crest
#

I think the answer mainly depends on two things: how determined you are and also how well you're able to pick up the concepts of JSON and game data/content.

quartz arrow
#

I figure after ironing out my current mod i'll at least have a decent basis for adding an NPC. It just requires a lot more art work (which is chill just dif kinda time commitment LOL)

devout cliff
#

Fair enough. I'm interested in finding out the answer to both of those myself SDVconcernedCA

vernal crest
#

As a computer-brained person, I found it all quite easy. Some people really, really struggle with concepts like what the brackets do and why commas are needed etc.

devout cliff
#

I can very generally read computer language, but I've never actually tried to code before. Most of my experience is back in like the forum days where you typed out htlm for emotes and pics and all that

vernal crest
#

Dangit Button, put a link to your tutorial on your website!!!

#

If you understand the concepts of having to close tags, you'll probably be fine with the json

quartz arrow
#

I had to let my brain be mush for a bit and employ the stareChamp a few times and just power through but some concepts did click for me! I understand bb.code and have done some hella basic HTML before (like mainly website customization on an already formed background) but coding has always both intrigued and overwhelmed me so its been nice to actually grasp some of the ideas

keen seal
#

I found the tutorial on the modding wiki immensely helpful. It’s a lot of information at a glance but slowing down and working through it step-by-step was pretty simple

devout cliff
#

Snazzy

keen seal
#

plus, templates. very nice to have in front of you

quartz arrow
#

Luckily the close bracket part does make sense to me LOL its a lot of the wording within the brackets im still grasping

#

Templates are SO helpful

#

Looking at other mods that accomplish what you want to accomplish too

vernal crest
#

Okay, here we go. Button wrote a really excellent and interactive tutorial explaining the basics of JSON. I strongly recommend having a look at it to orient yourself with JSON as that is the foundation of all content modding (which is mods made without writing C#). Here is the tutorial: https://stardew.button.gay/tutorials/json

quartz arrow
#

I found the caterpillar within the SVE code so like, i win

devout cliff
#

Thank you! :3

quartz arrow
#

Love a gay tutorial

devout cliff
#

Interactive is really helpful for my learning style

vernal crest
#

!npc For specific-to-NPC instruction, Tia wrote a step-by-step tutorial for how to make a whole NPC (marriage not included because it's based on Jorts and Jean who are cats lol)

ocean sailBOT
#
Creating a Custom NPC

Keep in mind that making NPCs is a complex process that requires learning many different aspects of Stardew modding.
Here are a few links that can help get you started on all that you need to know:

devout cliff
#

Thank you :3 Very much appreciated

quartz arrow
#

We love people who make templates and tutorials. True heroes

devout cliff
#

Honestly

vernal crest
#

Also, you're never on your own. You're always welcome to ask more questions in here, including ones to do with understanding general concepts. Lots of us are happy to explain things at a higher level as well as pointing out a missing comma etc.

uncut viper
quartz arrow
#

The missing commas help was so appreciated 😭

devout cliff
#

Part of my being here is pushing myself to interact in community spaces again

vernal crest
keen seal
vernal crest
#

Because it is becoming my first line of info to give to the newbies

quartz arrow
devout cliff
#

Yes, and also nice to have a space to feel comfortable sharing hobby stuff

quartz arrow
uncut viper
#

(if it helps, stardew.button.gay/tutorials does exist, it's just not linked, but maybe easier to remember)

quartz arrow
#

Holy cannoli ive been in this server for over 2 years O_o time is wild

uncut viper
#

(it has two other newbie tutorials on it, even)

vernal crest
turbid pawn
#

I don't have a problem with big servers, except that they often have rules against talking about politics, and I have a political gender identity, so I don't feel safe in such places

quartz arrow
vernal crest
uncut viper
#

i never mentally signed off on those other two because I was never 100% confident in them yet

#

but they probably are good enough

lucid iron
uncut viper
#

also if I go to jail I can't finish more tutorials

vernal crest
uncut viper
#

oh my documentation I feel confident in to the point of egotism there's no worries with documentation SDVpuffersquee

#

tutorials are harder though

vernal crest
#

They are, but what I mean is that you write very clearly and explain concepts well so even something you're not 100% confident in is going to be useful for people with less knowledge than you

uncut viper
#

i did actually think about working on the tutorials again the other day, just wanted to finish BETAS catch up first

lucid iron
#

We'll make sure the 1000 yr jail has free wifi

uncut viper
#

didn't realize you moonlighted as a prison warden too, chu

#

is that why you keep giving me ideas instead of adding them to mmap

lucid iron
#

i just know ppl in here as a fellow inmate

uncut viper
#

glad to be known at least

lucid iron
#

Button where do i put the pet item query stuff livestock bazaar or pelcan

uncut viper
#

LB

#

well

#

can the user disable all custom menus in livestock bazaar

#

a framework with side effects is like a cardinal sin or something

#

non-authored side effects

lucid mulch
pine elbow
#

Should “Tutorial: Sending a Letter (Content Patcher)” be talking about editing “Events/Farm” instead of “Events/TriggerActions” to send a letter?
I was trying to find example code for each instruction, but couldn’t find the letter events, and when I went digging it seemed more like they were in triggeractions? But the tutorial was only updated in April so it shouldn’t be out of date??

proven spindle
#

Sending mail via farm event was a common method back in 1.5; it does still work, but doing it via trigger actions works much better nowadays. There should be an example in the trigger actions wiki page

dusty scarab
#

why is it asking for an Icon.xnb instead of a png? I used the same content.json from my other farm map as an outline, and it never needed an Icon.xnb.

none of the other files in my other farm map's assets folder are an .xnb, either

proven spindle
dusty scarab
lucid iron
#

I never patch vanilla menu so it's discrete

slow basin
#

is it possible to lock a characters introduction behind an event with content patcher like if i want a certain character to start appearing after a specific event for another character?

#

i had another character idea but idk if its possible with cp or if it would require further shenanigans

character - at friendship level x triggers an event that then introduced a new character that will then appear around the valley like any normal character

proven spindle
#

Yeah that's doable with content patcher. You can set the npc as invisible until met and lock their schedule and other stuff behind the other npc's heart levels/an event/etc

slow basin
#

🙂‍↕️

#

cool ty!

vernal crest
slow basin
#

I have such a silly little mod idea but itll probably be in the works for awhile while i make it look and act the way i want it to X3

#

especially cause it has a couple of componants :3c

vernal crest
#

You don't even have to make the character invisible. There's an UnlockCondition field in the Data/Characters asset and you can use it so the game doesn't add the character until that condition is met.

slow basin
#

planned:
shop componant
food componant
recipe componant
character componant
Map componant

possible ideas but idk if ill do them

  • pet componant
  • collecting componant
  • plant componant(?) this one idk if ill do at all
dusty scarab
vernal crest
dusty scarab
#

fair enough, lol. thank you :D

opaque field
#

I decided to take a break from my Shane mod to make an NPC - that little template share couldn't have been posted at a better time lmao bookmarked

dusty scarab
#

I used my previous farm map.tmx to make this new one, and the farm cave works on the older map. but when I walk on the proper tile to enter the farm cave, nothing happens. the game doesn't crash and doesn't throw an error, the game treats it like it's just another path to walk on. it's like the warp point into the cave is broken, but I never needed to specify a warp point into the farm cave on my previous map

lucid iron
#

Try using data layers to check where warp tile's at

dusty scarab
#

wait, I might have missed one, hang on

#

yep helps when I don't have those two sets of numbers reversed like a numbskull and only remember that that field exists after I ask for help and waste people's time...

lucid iron
#

Data layers is a mod that you can use to check collision and warps among other things

vernal crest
pine elbow
#

Ohhhhh

#

Is there a new tutorial specifically for sending letters? I know there’s an example given in the triggers article, but a letter still seems like a good introductory project

vernal crest
#

No, sorry, not yet. I can give you a very quick rundown though. The mail entry itself is the same as in that old tutorial (although the entries should have {{ModID}}_ so they'd be "{{ModID}}_junk_mail_1" instead) so you can still use the "Creating A Letter" section of the tutorial for that.

And then sending the letter can happen one of several ways:

  • via an event BUT it's different because you do it as an event command inside the actual event instead of as a precondition and you should only do this if you actually want a real event that just happens to send mail rather than making an event whose only purpose is sending a letter
  • via dialogue using the $action dialogue command, but again this should be for if you actually want the dialogue and then tack the letter sending onto that rather than adding dialogue whose only purpose is sending a letter. And that is because...
  • via trigger action is the main way to send mail now
#

(Sorry if I explained any of that poorly, please feel free to ask me to elaborate if I did!)

#

@pine elbow Should've pinged, I took longer to reply than I thought

pine elbow
vernal crest
pine elbow
#

It really is just legos isn’t it

#

Terrible, evasive, intimidating legos

vernal crest
#

Yeah haha. Just little blocks that you put together to build a thing!

pine elbow
#

The wiki tutorials are like box sets, and poking around vanilla or other mods codes is like examining someone’s life size, Lego pterodactyl

gentle rose
#

complete with the cursed illegal building techniques you find that you’re kind of scared to ask about

vernal crest
#

Oooh no it has both unconventional but legal techniques (some of the DT and LT shenanigans) and terrible illegal ones (giving your NPC the internal name "Rachel" or Loading an events file in an already-used vanilla location).

#

(My wife is an uber Lego nerd so she has drilled into me that there's a very important distinction lol)

lucid mulch
#

illegal lego techniques are fascinating

drowsy pewter
#

you guys like to add new quotes when i'm sleeping. there's like a 50% chance this wont work lol

lucid mulch
#

.quote count

patent lanceBOT
#

5654 quotes in this server and 374 quotes in this channel.

lucid mulch
#

oh thats a different number than what the last quote said, guess removed quotes don't decrement the id but lower the count

#

.quote 6479

patent lanceBOT
#

No quote found. Wow, chat more, losers.

lucid mulch
#

.quote 6477

patent lanceBOT
#
#6477

also if I go to jail I can't finish more tutorials

gloomy bane
#

Hello Guys! Huhu This is the problem I encountered
[game] An error occurred in the base update loop: System.Collections.Generic.KeyNotFoundException: The given key 'NextlevelRejected_Elliott' was not present in the dictionary. at System.Collections.Generic.Dictionary2.get_Item(TKey key)
at StardewValley.Dialogue.chooseResponse(Response response) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Dialogue.cs:line 1623
at StardewValley.Menus.DialogueBox.receiveLeftClick(Int32 x, Int32 y, Boolean playSound) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Menus\DialogueBox.cs:line 353
at StardewValley.Game1.updateActiveMenu(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 5082
at StardewValley.Game1._update(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 4269
at StardewValley.Game1.Update(GameTime gameTime) in D:\GitlabRunner\builds\Gq5qA5P4\0\ConcernedApe\stardewvalley\Farmer\Farmer\Game1.cs:line 3454
at StardewModdingAPI.Framework.SCore.OnPlayerInstanceUpdating(SGame instance, GameTime gameTime, Action runUpdate) in SMAPI\Framework\SCore.cs:line 1095
[game] WARNING: Mismatched UI Mode Push/Pop counts. Correcting.`

#

i need help please!

#

This happens when I selected the other answer or forked answer I choose, It keeps on looping (though I have the skip option)

vernal crest
gloomy bane
#

This is me making the mod and I've been resolving it since the update. I just recently came back

#

It's just weird that I

#

made the same content (different dialogues) but the same way as the others. I tried the first ones I made and It was okay... XD

hallow prism
#

can you provide the json?