Nat_VS Posted June 25 Report Posted June 25 Hi all! I'm looking for some feedback on some proposed plans for the modding section of the wiki in terms of how to make it more useful for everyone who uses it. If you have the time, I would love to hear your opinions on the following. I did write this as a message to some of the VS team, but it occurred to me that the wiki is made for the community, so you should have a say to express your opinions. I apologize in advance for the more casual tones this message has. ----- Okay, so first off the state of the wiki currently, there are a few distinct issues that I have been putting off because they are overwhelming me: 1. First and foremost, navigation to find specific pages is difficult. I took influence from the Starbound modding wiki, which separates navigation boxes to categorize everything. Unfortunately, this is only really helpful for step-by-step wiki guides, where categories don't really interfere with one another. But, our categories are highly interlinked, and this kind of navigation has just ended up resulting in a huge number of "landing pages". It takes several clicks to get to specific pages, and it's only really useful if you already know what you're looking for. 2. Second issue is the predominantly "Windows-heavy" content of the modding tutorials. It's very much a case of "do this in Windows and Visual Studio. If you aren't using those, then figure it out yourself." I thought this was a valid viewpoint to take initially, due to Linux users generally being more tech-savvy than the average person. After now using Linux myself and realising how difficult it can be, I have fully changed my mind and want to have specific tutorials on how to work with different OSs and IDEs. 3. Third issue is the variety of specificity across the modding pages. Some pages are obnoxiously broad and contain multiple sections. E.g. The "Developing a content mod" page contains "selecting an IDE", "Template/Example Mod Setup", "Manual Mod Setup" (which contains how to setup the mod workspace, modinfo, modicon, and assets folder), "Mod Domains", "Publishing a Content Mod", and "Updating a Content Mod to a new Game Version". If a user wants to know how to publish a content mod, they have to know that the information is contained within this page. This is countered by the fact that some pages are really specific, offering information on one specific topic, such as the "Types of Mod" page. The problem with the small pages is that they can very easily clog the wiki's navigation, making it generally harder to find specific pages - But smaller and specific pages are considerably easier to read, write, and maintain. I think those three are the largest issues that the modding section of the wiki faces. ----- The goal is to make all the information on the modding section easy to find, while also making it easier to maintain. I've come up with a number of solutions that I would like to implement to the modding wiki. Note that these do not necessarily match in order to the issues above: 1. Recreate the homepage navigation. Currently, the homepage has links for a "Quick Start Tutorial", an "All Modding Pages", and 7 distinct categories. The main page can be found here: https://wiki.vintagestory.at/Main_Page I would like to turn this into a table that is a cross between categories and specific pages. The table will contain the 7 categories, as well as an 'Other Resources' section. There will be greater emphasis on the 'Content Mods' and 'Code Mods' categories, as this is where the majority of mod content on the wiki is located. Each category's box in the table will contain its most useful pages, and then a link to view all the pages in the category. Note that it is unreasonable to list every mod page on the homepage. 2. Rewriting a number of the large and more chaotic pages into a set of smaller, more relevant and succinct pages. This will be done with an emphasis on avoiding duplicating information, as that is one of the hardest parts of maintaining the wiki. It will be beneficial for some of these smaller sections to be inside of landing pages, though. E.g. a wiki page called "Content Mod Essentials and Setup" may contain links to the pages for what a content mod is, how to create a content mod, how to update a content mod, and how to package a content mod. The goal is that ALL pages can be accessed within two clicks or less from the homepage. Each page will also be included in the category's "All pages", so there will hopefully be multiple ways of finding every page. 3. Split some pages into operating-system or IDE-specific pages. This is extremely relevant to the process of setting up code mods. It will double-up as a form of organization, but also show clarity for supporting various OSs and IDEs. 4. Deeply categorize pages to automatically generate "tag-based modding pages". i.e., any pages that give any details on creating, using, or modifying entities will have the "Modding Entities" category. As more pages have more categories, this will establish an "index" system, like the ones found in the back of any good informational book. (On a related note, I have also created a glossary page to help with terminology, but this is currently not linked anywhere.) 5. I would like to expand the navigation boxes at the bottom of the wiki pages to have one navbox per category that will contain all pages in that category. It is not practical to have a single navigation box for all modding pages, as there is simply too many pages now. The old system of having one navbox for content mods and one for code mods also doesn't work, as there's too many pages that don't fit into either of those categories. Having individual navboxes will also make it much easier for anyone to add new pages. ----- Thanks for spending the time to read this. I'm hoping to get feedback on: - If you have any of your own issues with the modding wiki. - Agreement or disagreement on any points I have made. - How valid you think the solutions I have given are. - Any further information on the solutions that you think may be relevant, or any solutions that I may not have considered. 4 1
Gradient Posted June 26 Report Posted June 26 I don't mod, let alone use the modding wiki, very often, but I do think more effort should be placed documenting existing game systems and how they work. E.g. if I want to extend some mechanic parts, or add some more advanced block functionality, I'd have to look into other sources or read the code itself to figure out what I'm doing. Aside from the generic 'creating entities/blocks' pages, I believe there should be more content on 'extending' existing game systems in their intended way. 4
Nat_VS Posted June 26 Author Report Posted June 26 1 minute ago, Gradient said: I don't mod, let alone use the modding wiki, very often, but I do think more effort should be placed documenting existing game systems and how they work. E.g. if I want to extend some mechanic parts, or add some more advanced block functionality, I'd have to look into other sources or read the code itself to figure out what I'm doing. Aside from the generic 'creating entities/blocks' pages, I believe there should be more content on 'extending' existing game systems in their intended way. This is certainly something that needs work. There is a lot of code tutorial mods that exist on GitHub (https://github.com/anegostudios/vsmodexamples/tree/master/Code Mods) but these have not been turned into wiki tutorials yet.
fawndoe Posted June 26 Report Posted June 26 Completely coincidentally, I decided a few days ago to try my hands at modding with a silly reference mod adding a cooking recipe. The complete lack of a tutorial for this form of recipe (and alloys) however made the process far harder than I was hoping for it to be. I understand they're both more complex than the other recipes, but it leaves the content mod section feeling unfinished if two of the recipe type wiki pages are buried in a category page, and only say "sorry, this is really hard to tutorialize so we didn't." 1
HugoCortell Posted June 26 Report Posted June 26 I agree with most of the points made. But I'll add that I believe one of the most high value things that could be done is to create a ton of tiny "this is the absolute bare minim required to do X" mods; In my experience helping people learn to mod the game, most of them learn best after taking someone else's simple mod, looking at how it works, and using it as a base, it's like modding knowledge is absorbed through osmosis or something lol. When you're following a guide that goes "do this, then that, then that, etc etc etc", you're one mistake away from something that does not run, and with no idea (since you're a novice) of what's gone wrong, so you need to re-check everything and hope for the best. Starting off with something that works lets them experiment and break things without fear, slowly learning what is needed, and why. Of course, adding even more tutorial mods to the git repo is probably a lot of additional work. I also agree very much with having more peacemeal pages for modding, that's a good idea. It might be neat to even have some kind of visual "tree" of which pages connect to which as you make a mod, something like: Getting Started │ │ Weapons and tools ────modinfo and ────── Making a clothing mod ┌─────modicon │ Blocks ─────────┘ │ │ │ │ │ │ │ │ │ │ Making an armour mod │ ┌───────Coding ──────┐ │ │ │ │ │ │ │ │ Block behaviours Enemies Idk Some other stuff │ │ │ │ ┌──┼───┐ │ │ │ │ │ ┌┴────┬─────┐ │ │ │ │ │ │ │ │ └─ │ Like a tech tree to show you the pre-requisite knowledge and setup necessary to get to the mod you're dreaming of making (again overscoping with this unnecessary suggestion). Maybe Mediawiki has a plugin to auto-generate these or something. Entirely unrelated, I vehemently protest the wiki recommending Visual Studio over Visual Studio Code, it's a much heaver package that's going to be a lot more daunting to novices. 'Real programmers' already have an IDE of choice and will ignore any advice about IDE from the wiki, so the recommendation of IDE should be based on usability for novices rather than metricts like feature set or power. 4
Be eM Posted June 26 Report Posted June 26 (edited) Speaking as a windows using content modder casual: I'm Aldi and I agree on more info overall. Many times I needed to ask fellow modders to look up something inside the code (cant read code) or github (no experience with github) for me. As a content modder, if something is not mentioned in the wiki or used in another mod it could aswell not even exist so I'd love everything cramped into the wiki Sometimes it just makes my life unreasonable harder Edited June 26 by Be eM 2
Nat_VS Posted June 26 Author Report Posted June 26 2 hours ago, fawndoe said: Completely coincidentally, I decided a few days ago to try my hands at modding with a silly reference mod adding a cooking recipe. The complete lack of a tutorial for this form of recipe (and alloys) however made the process far harder than I was hoping for it to be. I understand they're both more complex than the other recipes, but it leaves the content mod section feeling unfinished if two of the recipe type wiki pages are buried in a category page, and only say "sorry, this is really hard to tutorialize so we didn't." Thanks @fawndoe. A brief explanation: The choice of leaving out cooking recipes from the same page as the rest of the recipes was because of the significant increase in complexity for creating them when compared to the other recipe types, especially at the time I wrote that tutorial. There has always been the plan to make a cooking recipe tutorial and an alloy tutorial, but I just got round to it yet. When it does get created though, I might expect it to be its own page. However, in the mentioned tutorial I did write "This tutorial will also give some information on alloy and cooking recipes" which appears to not be true at all Ideally, when the content tutorials are complete, there will be at least one content tutorial for each type of asset that can be added. 1
321BoltsOfLightning Posted June 26 Report Posted June 26 Great ideas. I've dabbled briefly a while back on modding (mostly using the wiki for reference, never getting far enough to need more), and I like the ideas presented based on the issues I faced. Interestingly, the issues others have posted in this thread so far seem like they'll be easier to solve with this new structure (i.e. Having a subpage for cooking recipes). 1
Jadesy Posted June 26 Report Posted June 26 Alot of the discussion thus far seems very in the weeds for revamping the wiki. I agree with OP that having a good top level navigation will help the modding part of the wiki immensely. I'm suggesting this outline based on my background as a software engineer and my current understanding about what is on the wiki and what is needed for modding. I hope this is helpful and a good launching point for OP to think about redoing the wiki navigation. 4
Nat_VS Posted June 26 Author Report Posted June 26 Thanks everyone for the feedback so far! To keep things succinct, I'll reply in a single post. far @HugoCortell I think there is definitely some value in providing already-complete mods. Every content mod tutorial does link to a GitHub that contains the finished example version of the tutorial. Perhaps there could be a way that I can use these already to provide a "change this to do this" style of guide. A visual tree could be a nice addition, but I can't think of a feasible way of doing that unfortunately. Each relatively new tutorial contains a "prerequisites" section for essential reads, as well as sometimes a "recommended" section, despite my belief that many people may just ignore these @Be eM More information is always good, but everything that gets added needs to be kept up-to-date, which can become difficult to maintain. If maintaining the wiki takes up too much time, then actually adding to the wiki becomes more difficult. One issue with the current system is that adding a single new page can sometimes require a whole bunch of changes across the wiki to make it work in the navigation. I've been considering actually releasing the tutorial mods on the ModDB, do you think that would be more beneficial? I know GitHub can sometimes come across as intimidating for non-coders. @321BoltsOfLightning I'd very much like to hear more about the issues you faced when using the modding wiki, if you have the time to reply. It can be quite difficult to predict what a new modder might get caught out by. @Jadesy Thank you for the diagram! I do find that a lot of the issues that each person has when using the wiki can often be related to larger issues on the wiki as a whole. One difficult part of the main navigation is that the modding section of the wiki is used by people with a huge variety of skills and experience, and so it needs to be suitable for both beginners and experts. I certainly do like the idea of a specific section for mod setup. That way the people who just want to know how that essential setup information can get that, and then do what they want. 1
Be eM Posted June 26 Report Posted June 26 49 minutes ago, Nat_VS said: Be eM More information is always good, but everything that gets added needs to be kept up-to-date, which can become difficult to maintain. If maintaining the wiki takes up too much time, then actually adding to the wiki becomes more difficult. One issue with the current system is that adding a single new page can sometimes require a whole bunch of changes across the wiki to make it work in the navigation. I've been considering actually releasing the tutorial mods on the ModDB, do you think that would be more beneficial? I know GitHub can sometimes come across as intimidating for non-coders. Yeah, I get that, and perhaps a better solution would be to have a single, centralized hub where everything is collected (Github lol). Maybe a tutorial on how to navigate GitHub to find what you're looking for would be beneficial? My main example was the nutrition prop "eatenstack". It’s never used in vanilla, I’ve never seen it in any other mod, and it's completely missing from the wiki. Yet, GitHub knew it existed. I’m not 100% sold on tutorial mods, though. There are probably too many different mod types to cover, there already more or less is a mod for everything and keeping them up to date sounds like a hassle. Personally, I think having comprehensive examples for everything (different recipes etc.) on the wiki would be a much better approach. Thank you for hearing the community out 1
Nat_VS Posted June 26 Author Report Posted June 26 44 minutes ago, Be eM said: Yeah, I get that, and perhaps a better solution would be to have a single, centralized hub where everything is collected (Github lol). Maybe a tutorial on how to navigate GitHub to find what you're looking for would be beneficial? My main example was the nutrition prop "eatenstack". It’s never used in vanilla, I’ve never seen it in any other mod, and it's completely missing from the wiki. Yet, GitHub knew it existed. I’m not 100% sold on tutorial mods, though. There are probably too many different mod types to cover, there already more or less is a mod for everything and keeping them up to date sounds like a hassle. Personally, I think having comprehensive examples for everything (different recipes etc.) on the wiki would be a much better approach. Thank you for hearing the community out Something of interest that may be beneficial for you is the JSON Reference/Documentation. It contains all the JSON properties for documented classes. For content modders, this is generally better than trying to find them through the GitHub code. For example, for the instance of Nutrition Properties, you would go to https://apidocs.vintagestory.at/json-docs/jsondocs/Vintagestory.API.Common.FoodNutritionProperties.html and you can see that there is the "eatenstack", as well as properties such as "health", "intoxication", and "psychedelic"
Owling Posted June 26 Report Posted June 26 I am not as experienced as some of the other modders that have commented here but I've been modding ever since the beginning of this year and am now actively working as part of a dev team for a pretty big server and the modding wiki was a big part of my introduction to modding for Vintage Story so here's my two cents: Fully agreed, the navigation at the moment is certainly an experience. There's some pages I never would have found without someone in the mod development channel from the official discord pointing me to it (VTML for example). Using the wiki without saved hyperlinks quickly causes you to lose track of where a certain page that was only hyperlinked in one very specific other page was to be found. I think establishing a similar concept to the "Playing the Game" section on the main page https://wiki.vintagestory.at/Main_Page , with very direct and specific bullet points would be an incredible improvement already. Since it would result in way too large of a table if everything was stuffed into one, differentiating between Code and Content would be the a good starting point in my opinion. Overall, taking a look at the current "Modding the Game" section on the Main Page, I think it needs to be more strictly divided between JSON and C#. Everything JSON should go under a "master" Content table and everything C# should go under a "master" Code table. Looking at the current table "Modding the Game" again, the different options are not descriptive enough to tell me what I will find in there just by reading the hyperlink text. For example, the quickstart guide should probably go. It's not *bad* per se but I think it's name is counterintuitive as it'll attract people to it simply because it's called a "quickstart" guide. Modding Basics, Asset Types, as well as VS Model Creator should be rolled into an overall Content tab, with the community showcase for what mods have been made in the past getting it's own, separate tab - something along the lines of "community mod showcase". At the moment the Modding Basics is a link leading to a mod showcase of existing mods as well as more links that lead to the actual modding basics. Asset Types is just pure Content/JSON material so it doesn't need it's own specific icon. The Content Mods and Code Mods sections are good for what they are but renaming them to something more descriptive like "Content Introduction" & "Code Introduction" might be more telling of what you'll be lead to when clicking the link. I could ramble on more and more and get hyper specific for certain pages and will do so if it's something that would help but I'll leave it at this for now Here's a crappy example whipped up in LibreOffice Calc of what I had in mind when talking about JSON/C# or Content/Code separated tables (I couldn't think of many things that made sense off the top of my head for the filler but just the categories should give you the right idea I had in mind) (This is more of a general (and minor) pain point from my end but having C# dependent mods be referred to as "Code" when it's also a general term for the act of creating mods and such has caused me to double back when talking with others, especially those who have no modding experience, very, very often. Anyway I digress.) 1
Domtron Vox Posted June 27 Report Posted June 27 What might help with organization is spinning up a second wiki instance just for modding documentation. Years ago, Minetest (now Luanti) had two wikis, a player/game content wiki, and a dev wiki. It might also be valuable to consider other options for documentation software. Wikis are generally good when you have a lot of contributors that take ownership of parts with some high level moderators that can vet changes and guide general organization (like how wikipedia works). I may be wrong, but to my understanding, the VS wiki is only really editable by devs. It may help with organization and presentation to switch to something like mdBook which provides a more book like interface with a hierarchy structure. You could even have several of these "books" if you had some sort of logical topic division. Or not and just pile everything into one mdBook using sections to divide stuff. There is also similar software other then mdBook that does similar things. mdBook is just pretty simple in that it's a static website that is only regenerated when you make changes to the markdown files that make up your content. So it has low overhead to serve. Going back to wikis, I've done some wiki work at my job. Not sure how useful my experience would be, but we organized every wiki page under Guides, Notebooks, and References (then by department, but that doesn't really apply to VS). Maybe self-explanatory but: Guide pages were basically step by step instructions so people could replicate procedures exactly. These were very linear with occasionally branching if-or paths. Notebook pages were more lecture style pages that introduced a topic, like a technology say wordpress, then explained rational behind it's use. These were more high-level overviews of topics, with only partial examples. Reference pages were essentially lists of lists for pure reference. These assume you know the basics related to the information and tried to be as to the point as possible. I'll also vote for the idea someone said that suggested curated, working, simple mod examples. It's really valuable to have a working example of what's being talked about. But it needs to be paired with an actual explanation (in most cases anyway). I'm not sure how you guys test the modding api, but it could double as practical unit tests for that. Also Jadesy's organizational layout looks really good to me. 2
Tj Pepler - Critcher Posted June 27 Report Posted June 27 If I may, what I have learned in the last six months is that the game actually has some incredible tools built in that no one knows or talks about! I was spending hours manually editing transforms, loading the game, nope, exit game edit transforms save compile and test again, to get a weapon lined up in my hand or heaven forbid, on the tool rack!!! and then through a miracle and a beam of heaven sent light I learned about .tfedit and .bsedit and my entire life changed, now maybe these things are easy to find if you know what you're doing but I didn't know to even look for them in the first place. Not terribly useful information but a glimpse into my real world experiences. 2
captanredbeard Posted June 27 Report Posted June 27 (edited) First gonna lay out where I'm coming from here. I started modding around 9 months ago or so, and when I first started I only knew JSON to a moderate degree. I taught myself C# to an ok degree so far, and while most of my published mods are JSON heavy, I have a couple that are using C# to a higher degree. I've also trained/guided a LOOOOOOOT of other people into modding, and would often dig through the wiki, game assets folder, API docs, and github for existing snippets of code or items/blocks to act as templates or examples when adding new items. I'm gonna try and split things up into a paragraph or two per area of modding/the wiki that needs focus. Resources https://wiki.vintagestory.at/Special:MyLanguage/Category:Modding https://apidocs.vintagestory.at/ https://github.com/anegostudios VINTAGE_STORY/assets The main resources I use both in my own projects and when finding the location of code for others in their own projects. The wiki is usually the best place for JSON. If I can't find the JSON format for what I'm currently working on, then I usually have to check the API, or worst case scenario dig through the raw C# classes on the github to find the object related to those JSON properties. It's usually the worst when I'm working with either JSON files in the config folder, or more obscure things like the details of allowed properties in shape files, or composite texture objects. The base game assets folder is where I usually go when I have an item which I'm working from, such as a new shield, sapling, painting, or other block or item that has a vanilla equivalent. It takes a little time to memorize where everything is, but when content modding, it's sometimes easier to just search all the JSON files in the assets folder for a specific JSON property that's not explained on the wiki or more obscure. for C# work, the majority of my digging is either via the API or searching the github repos for related code. I sometimes need to revisit the basic block and item code pages of the wiki in order to remember the basic format, but it usually isn't all that helpful. IDE setup and modding templates I've also recently moved to arch linux, and also VScode as my code editor, and setting up my IDE and handling my building code is definitely more painful then before. I wholeheartedly agree with @Nat_VS's second issue that we need to update the wiki pages and mod template to better facilitate more Operating Systems and modding cases. Maltiez has got his template, which I like the facts that his can run several instances in one Visual Studio instance. It makes developing several mods in one IDE a little easier, but on the downside it is harder to navigate and less intuitive for newer modders to handle then the csproj files and modinfo setup used in the anego provided template. I think there are about three different wiki pages dedicated to either setting up an IDE in general, an IDE on linux, and an old one for linux setup. The old ones should likely be removed or clearly listed as legacy pages. Biggest issues I find with the modding template rn are as follows. Linux support isn't the best, at least in my experience. I'm on Arch with VScode, and it's taking a decent bit of tweaking to each mod I have to properly build. Support for several mods in a parent directory. (currently you have to store mods as separate projects, an it's not easy to simultaneously work on and build/test several smaller mods and run the game in order to test them.) I tried resolving this myself with my Biodiversity git project, but it's still not perfect. Some people I've met don't really like how the folders are nested, where it goes If there are some modders skilled in writing the cakebuild or MSbuild files that control the file structure of the mod template, then we could likely co-opt the help of modding circles like @HugoCortell's to get feedback on proposed mod templates and areas needing improvement. Teaching New modders / Tutorials Most of the new things I start new people onto is first the basic modding tutorials and then onto some form of small project that they can complete with little to no C# work. Some of the more popular ones were clothing items, gag weapons, new blocks, shields, armor, and new plants. After that point they're usually well off enough to help one of the programmers by making the items and blocks that use a new custom class, or they move straight into learning C# themselves. By that point you're usually already using the API, JSON reference, or skimming through the old tutorials for information instead of reading through them all the way. For that reason I'd suggest we split up content modding at least into self guided tutorials that get you ready to work with others, and reference materials like the Item JSON properties or Recipe properties page that are more detailed and are less linear and more just information. First you learn how to use the IDE, and the basic structure of the assets folder, then move onto making your first block and item, and how to use VSMC, VMC2 or Blockbench to modify existing models or make models from scratch. You then get some extra tips and tricks on how to read logs, and how to work with other people and divide skillsets to make better mods, and move onto one of the intermediate tutorials. Each of the intermediate tutorials is self contained, and each one walks you through each step of the process or directly links to one of the JSON reference pages. For example instead of a lang file section in each tutorial, it links you directly to the exact page and subsection for adding a lang entry for that item/block type. Every intermediate tutorial gives you an end product which you can rename and retexture/remodel the tutorial assets, and now you have your own completely distinct mod that you can post on the moddb as your first win and first dopamine hit. After the intermediate tutorials and you have a mod or two out now, we give a capstone to fill out the rest of the JSON related stuff, and get you learning how to read the reference material and work with others on more unique modding projects in groups. Advanced tutorials on world gen, entities, JSONpatching / compatabilitylib, and more advanced collaboration driven stuff like Git, scope planning, the old modding efficiently tips, and anything else needed to get them to the point where they can read and understand the more detailed and information filled reference wiki pages. Only couple things I'm not sure where to fit in would be entities and advanced modeling work like animations or attachment points, Cue my sh**ty AI diagram to try and visualize my point. Resources Item JSON properties is an ok example of this kind of page. They are less readable then the tutorials, but they have far more information available and you spend less time skimming in order to find what you're looking for. There's been countless times that I've had to skim through the two grid recipe tutorials in order to find a specific syntax for a varianted item and the limitations there.We can throw some examples either on a sister page or a dropdown for advanced use cases. https://wiki.vintagestory.at/Modding:Item_Json_Properties https://apidocs.vintagestory.at/json-docs/jsondocs/Vintagestory.API.Common.GridRecipe.html The World gen pages and json files located in assets/game/config are frequent culprits here. I often find myself searching the API or github for hours to find out how XYZ json file is parsed and utilized in the game if it's from the worldgen or config folders. As I've just read from @Domtron Vox above. Splitting it into Guides, Notebooks, and References sounds like a good idea. the Basic and intermediate tutorials are guides, and the level above either notebooks like world gen and JSON patching, or references like the master recipe or master grid recipe resource with advanced use cases. Code If someone is getting into coding in C#, by this point I hope they're either alraedy an accomplished programmer or they've managed to find someone to work with that is a programmer, and they can slowly learn while having help completing what ideas they have in their mind. This is exactly how @Owling and I first started with his shields mod. I would come in and give comment on and fix any issues with his C# parts, and then he'd do the rest and see both the broken and fixed versions and get to compare. If that's not the case, then just given the nature of that you can code almost anything into the game, you're liable to get of track quickly, and in my opinion guides don't work quite as easily as they do with content modding. I think the current code tutorials for the simple block and simple item are alright, but it might be good to have some form of progression here where you first learn the basics of how to use override methods in a block/item class, and then have a notebooks on particles, inventories, GUIs, BlockAccessor, etc. and then players can attempt to mix and match their desired effects to make some simpler items and blocks that follow a trigger > effect format. Conclusion Gonna try and wrap this up now. I think that first the mod template needs a good go over to allow for some more flexible modding setups, while we re-write the wiki page for IDE setup for more operating systems and IDE programs, then move onto splitting tutorials into step by step guides, followed by more detailed resources for content modding. If we can somehow co-opt the modding community into writing the wiki pages and making a template, that'd likely help take the weight off of the VS devs. I think the main put off for me on wiki writing is the way you need to manually format the entire page if it's a new one. Maybe I or someone else can host a regular discord VC hangout where we get together and write up wiki articles together, and then any kind of roadblocks to writing wiki pages can get beaten down easier. Edited June 27 by captanredbeard 3
captanredbeard Posted June 27 Report Posted June 27 (edited) Another quick point, it's important to keep these proposed changes to tutorials and guides on a good pacing, especially early on. The reason I suggested guided intermediate tutorials that a player could post onto the moddb is because it gives them a nice big win and attention from other people before they get into more complicated brain bendy stuff. It's also why I highly recommend pushing teaming up with other modders to combine skills, as knowing that someone is there to back you up if you burn out or get stuck on a part of the mod that you don't know how to code yet, does wonders to help keep you learning and moving forwards. You might not be able to figure out Block and Item Interaction methods, but your buddy Joe the software dev as a job is willing to fix you up in a jiffy in exchange for a model or two. Edited June 27 by captanredbeard 1
Nat_VS Posted June 28 Author Report Posted June 28 Thanks again for the feedback guys! @Owling Yeah I certainly agree that mod pages should be separated into categories - The issue with simple a "JSON/C#" split is that there are numerous topics that are not related to either (or even potentially both). It can be hard to know what should require a proper tutorial, and what should have more of a reference/guide on how to use it. I'll have a think about the names of pages, too, that does seem important. @Domtron Vox So, the wiki is editable by anyone (they just need to get approved by a moderator first to edit it). I don't agree over having more than one wiki - As modding the game is a very fundamental part of what the game stands for, and it being on the main wiki means that anyone who visits the wiki will (hopefully) notice that this the "how to make mods" is on there. We do, however, have quite a few other sources of information. The API Docs, the JSON Docs, the source code on Github, and obviously the wiki itself. There's a couple other community driven places too. My point being that I don't think changing the system now would be more beneficial than just fixing it. The guides and tutorials separation are kind of similar to what you're explaining, too. The API & JSON Docs are used as 'reference', and we have step-by-step 'tutorials', as well as informational 'guides'. I do agree with having that having well-written tutorials is a good idea, though. @captanredbeard I appreciate the lengthy reply, it's given me some distinct things to think about and some ideas for how to make this more suitable for the future too. I will look into the templates on Linux - I haven't actually got around to setting them up myself yet. Admittedly, there is a good amount of documentation that takes a while to maintain, and some of it has been done in a way that only I know how to do. Perhaps opening that up to allow more community interaction would be a great idea and I will have a think about how I can do that. I'm also, with all my flaws, a perfectionist and the modding wiki and documentation has turned into my child that I must protect at any cost. I'll think about how I can establish a community that may be able to help with the modding documentation. 1
Willof42 Posted June 28 Report Posted June 28 Hello! I'm very new to modding and coding in general (so take what I say with a grain of salt :D) but one of the things I really wish that was in the wiki are articles related to coding new Mobs and likewise new behaviors for mobs. Perhaps they exist and I haven't been able to find them or were recently added, but I seriously think this will be a massive boon for modders of the future, especially if the Combat overhaul update introduces new tech related to hit-detection. I think even more important throughout the articles is also laying out what is not possible within the confines of the engine -- I've been trying to find a way to make a mod with an enemy that moves with procedural movement instead of keyframes, but all my attempts have brought up nothing -- so maybe a warning to caution against fool's ventures like mine would be nice (albeit likely unnecessary). A video tutorial series for each topic could also be handy too if you have the resources! 1
brndd Posted June 28 Report Posted June 28 From the perspective of a Linux user who's primarily made Harmony patch tweaks to existing mechanics: The wiki's Windows-centricity wasn't much of a problem, but I already had experience with .NET development on Linux. For IDEs and tools, aspiring Linux modders should be pointed in the direction of JetBrains Rider which is free for personal use, works perfectly on Linux and is IMHO the best .NET IDE bar none. For disassembling base game assets, ILSpy finally has native Linux support these days, but Rider also has a built-in decompiler which in my experience is perfectly sufficient for making Harmony patches. Getting the mod templates (and most existing mod sources) to build wasn't too difficult in my experience. IIRC it was just a matter of defining the VINTAGE_STORY environment variable. The default mod project template works fine on Linux. The relevant code modding resources need to be more prominent: the VS API docs (which unfortunately are a little lacklustre, but that is another discussion), and most importantly the GitHub repos for the game source code. I tried finding these on the wiki just now and couldn't. They should be linked on the monkey patching page or the code mods portal page. 1
DoctorSnakes Posted June 28 Report Posted June 28 Maybe this has been suggested already, but if not: it would be really nice to have an article about possible approaches on how to test multiplayer mods with networking between several players. I have personally struggled with this. 1
hjvtdev Posted June 29 Report Posted June 29 (edited) aspiring Linux modders should be pointed in the direction of JetBrains Rider I would prefer an IDE-agnostic setup being prioritized. Dotnet platform already ships a language server, which any of the editors a Linux user may have a preference for will be able to utilize for completions and diagnostics. 7 hours ago, DoctorSnakes said: how to test multiplayer mods with networking between several players Relatedly, some form of a documentation for how to efficiently use attribute trees would be good to have. Edited June 29 by hjvtdev 1
GalantOath Posted June 29 Report Posted June 29 I'm sorry I have no solutions and can only offer my experience, hopefully the additional data is enough. I attempted to start modding a few months ago and failed. I had never modded before trying to dive in. I wanted to mod angled gears (fools errand for a beginner) which when I asked the community where to start on that I learned that it would be a code mod. I'd done a tiny amount of webdev and a class of coding in college so I knew a little code but wasn't professional coder. I read the wiki pages and learned that there was an assertion that you need to "climb the ladder" (which I accepted) and make some content mods before you can make a code mod. I started having problems when I went looking for definitive path to follow and learn the concepts and train myself up to making the mod that I actually wanted to make. Of all the suggestions I've seen I feel like a series of guides made up of a finished mod that you modify to get the correct end result sounds like it would have been the most helpful. I'll second what @HugoCortell said 'When you're following a guide that goes "do this, then that, then that, etc etc etc", you're one mistake away from something that does not run, and with no idea (since you're a novice) of what's gone wrong, so you need to re-check everything and hope for the best.' This was exactly my experience, there was far too much that I could do wrong. And not very much structure. And for good measure it was difficult trying to find community, ask for assistance, better understand the process and then get a link to `https://github.com/search?q=org%3Aanegostudios angledgear&type=code` with the suggestion to just read that. To their credit one of the best resources I received in my search was this Youtube video https://www.youtube.com/watch?v=RI7ZT38WqA also shown to me by the same person. I hate to give the impression that I'm a lazy person and I can't / won't do the work. The experience just felt like smashing my head into brick wall. I'd really like to see some movement on this problem sooner than later, I get that the VS Team has a ton on their plates and that's why I second @captanredbeard's suggestion to leverage our wonderful community more. Me specifically I'd volunteer to format "manually format the entire page" if I could be given the correct content by someone who actually knows what they are talking about. It wouldn't even be a waste of time; medieval scribes would often learn texts by coping those texts. I hope this is useful somehow, sorry if it isn't. I really love the game and I have hundreds of hours in it. I'm really hoping I can get the point where I can enhance this experience for myself and others soon. 1
Wandour Posted June 29 Report Posted June 29 My suggestion is add author names to the mods listed on the forum instead of having to open one to see who made it
IrthenMagor Posted June 29 Report Posted June 29 I would like to see this broken down in small building blocks, reduced to first principles. Personally, I'm an old fart, close to retirement. And I'm in a strange dichotomy. On the one side, I understand the value of CI/CD, TDD, and everything that goes with that. (And it's a lot). On the other side, I haven't really kept up with IDEs, and when I write code, it's in some sort of vim (or even vi as that's what I started with). I tried IDEs, and I might decide to like one, but really, I'd like a break down so I can understand every part of the toolchain. Give me the tools and the docs, and some examples, and I'll figure it out. What I'm afraid of, and that really happened with my attempts at understanding the toolkits for VS modding, is that deep rabbit hole, where I want to do X, and end up needing to fix W first, then U, then T, etc... There's a hole in my bucket, dear Lisa, ... 1
Recommended Posts