Mods / Rudiments
- Tags:
- Author:
- phoenix9
- Side:
- Both
- Created:
- Jun 3rd at 3:35 AM
- Last modified:
- 3 days ago
- Downloads:
- 68
- Follow Unfollow 25
-
Recommended download (for Vintage Story 1.22.3):
rudiments_0.7.0.zip 1-click install
A Vintage Story mod restoring the depth of pre-industrial craft.
Rudiments adds realistic, multi-step production chains for the materials and tools that defined life before iron — worked one process at a time, with each step mattering. Inspired by Primitive Technology and RHSWorks.
Pre-release — work in progress. New systems are added incrementally; existing ones are tested and balanced before the next is opened.
Flax and stinging nettle processed through authentic multi-step chains. Quality is earned, not given — retting timing determines fibre grade, and fine fibre carries real mechanical bonuses downstream.
Harvest early → Stook-cure → Ripple → Ret → Dry → Break → Scutch → Hatchel
Harvest at stages 3–7 for bundles. Waiting to stage 8–9 gives mature seeds for linseed oil — you choose which yield to prioritise.
Harvest mature → Stook-cure → Ret → Dry → Break → Scutch → Hatchel
Nettle skips rippling. Young plants (stages 3–6) yield edible leaves — hold right-mouse for a slow careful harvest to avoid the sting, or wear gloves and break normally. Mature plants (stages 7–9) yield fibre bundles.
Bundles pass through Coarse → Fine → Standard → Rot as retting progresses. The fine window is brief. Letting it pass drops quality back to Standard; leaving bundles indefinitely rots them.
- Field retting — free, but weather-dependent. Dry spells stall progress; rain restarts it.
- Vat retting — controlled, predictable, faster.
- Lime retting — add quicklime to the vat for maximum speed, but quality is permanently capped at Standard. Good for bulk, not craft work.
Fine fibre twisted into fine cord gives a significant durability bonus on bows and is used in gambeson armour crafting.
| Block | Function |
|---|---|
| Stook | Weather-aware curing and drying; bundles placed directly on the ground |
| Retting vat | Water retting with quality control and optional lime modifier |
| Drying rack | Safe indoor drying; quality preserved |
| Break | Breaks dried bundles |
| Scutch board | Removes woody shives; primitive / simple / advanced tiers |
| Hatchel | Final combing; primitive / simple / advanced tiers |
| Mechanical scutch mill | Axle-driven; automates breaking and scutching |
| Oil press | Presses mature flax seeds into linseed oil |
Nettle no longer drops seeds. It propagates the way real nettle does: by rhizome.
- Root crowns. Cutting a plant at any stage leaves a root crown (stub) that regrows on its own, or can be dug up with a shovel for a transplantable rhizome.
- It spreads. Wild nettle creeps into nearby fertile ground, strongly preferring tilled farmland. A built-in density cap and outward radius limit stop patches from overrunning a world.
- Networked feeder. Nettle is efficient on its own soil (uses roughly half the nitrogen of an ordinary crop) but leaches nitrogen from adjacent farmland as it grows — and never drains its own kind. Keep it clear of your fields, or use it deliberately to exhaust ground you want to fallow.
- Invasive mode (off by default). When enabled, nettle spreads as invisible buried rhizomes that surface without warning. Tilling the soil clears them before they emerge.
All of this is tunable — see Configuration.
These are directions, not promises. Each will be its own coherent addition when the time is right.
- Clayworks — hand-formed pottery with drying and firing stages; quality influenced by clay source and technique
- Intermediate kilns — the gap between a pit fire and a beehive kiln is large; filling it with updraft and clamp kilns
- Mudwork — cob, adobe; building with what's underfoot
All settings live in VintagestoryData/ModConfig/rudiments.json (created on first launch). If AutoConfigLib is installed, settings can be edited in-game — no file editing needed.
Apply changes without restarting: /rudimentsreload (requires controlserver privilege).
Note: binding durability and glue cure times are baked onto the item at craft time. Reloading config changes future crafts and live failure or cure rolls; it does not update already-crafted tools.
| Setting | Default | Effect |
|---|---|---|
FrictionDurabilityMul |
0.35 |
Durability multiplier for friction-fit tools |
GlueDurabilityMul |
1.1 |
Durability multiplier for pitch-glued tools |
NailDurabilityMul |
1.25 |
Durability multiplier for nailed tools |
GlueNailDurabilityMul |
1.5 |
Durability multiplier for glued and nailed tools |
FrictionFailChance |
0.04 |
Per-use chance a friction-fit tool comes apart |
HeadSurvivesChance |
0.6 |
Chance the stone head drops when a friction-fit tool fails |
GlueCureHours |
12 |
In-game hours pitch glue must cure before the tool can be used |
GlueLitres |
0.25 |
Litres of hot pitch glue consumed per tool |
NailQuantity |
1 |
Nails consumed per tool |
FrictionRequiresRopeMod |
true |
Only register friction-fit recipes when Tools Require Rope is present |
FrictionStoneMaterials |
flint, chert, granite, andesite, basalt, obsidian, peridotite | Stone types eligible for friction-fit binding |
GlueLiquidContent |
game:glueportion-pitch-hot |
Pitch glue liquid required |
GlueContainers |
woodbucket, bowl-fired | Containers the glue may be supplied from |
NailIngredient |
game:metalnailsandstrips-* |
Nail item consumed |
| Setting | Default | Effect |
|---|---|---|
NettleSpreadEnabled |
true |
Whether nettle spreads at all |
NettleSpreadChance |
0.20 |
Spread chance onto plain fertile soil per attempt |
NettleTilledSpreadChance |
0.45 |
Higher spread chance onto tilled farmland |
NettleSpreadIntervalDays |
1 |
In-game days between spread attempts for a mature plant |
NettleSpreadMatureStage |
6 |
Minimum growth stage before a plant starts spreading |
NettleFarmlandContainment |
false |
If true, nettle grown on farmland won't spread outward |
NettleSpreadMaxDensity |
5 |
Local density cap — does not limit outward reach |
NettleSpreadDensityRadius |
2 |
Radius checked for the density cap |
NettleSpreadMaxRadius |
16 |
Hard outward cap in blocks. 0 = unlimited |
NettleWildGrowthDaysPerStage |
3 |
Days for a wild nettle to advance one growth stage |
NettleStubRegrowDays |
3 |
Days a cut stub takes to regrow to stage 1 |
NettleCreepEnabled |
false |
Invasive mode: spreads as invisible buried rhizomes |
NettleCreepEmergeDays |
4 |
Days a buried rhizome takes to surface |
| Setting | Default | Effect |
|---|---|---|
NettleHeavyFeederEnabled |
true |
Nettle leaches nitrogen from adjacent farmland |
NettleNutrientConsumption |
15 |
Nitrogen taken from its own soil per growth event |
NettleNeighborNitrogenDepletion |
3 |
Nitrogen leached from each adjacent farmland block per growth |
NettleAlwaysLeaveStub |
true |
Cutting nettle at any stage leaves a regrowable root crown |
| Setting | Default | Effect |
|---|---|---|
ReedSpreadEnabled |
true |
Reeds slowly spread along suitable water and soil |
ReedSpreadChance |
0.03 |
Spread chance per attempt |
ReedSpreadIntervalDays |
2 |
In-game days between spread attempts |
ReedSpreadMaxDensity |
6 |
Local density cap |
ReedSpreadMaxRadius |
16 |
Hard outward cap in blocks. 0 = unlimited |
ReedSpreadDensityRadius |
2 |
Radius checked for the density cap |
| Setting | Default | Effect |
|---|---|---|
StookMaxBundles |
64 |
Maximum bundles a single ground stook can hold |
| Version | Status |
|---|---|
| VS 1.22.x | Supported |
Spinning wheel. If Immersive Fibercraft (the spinning wheel mod) is installed, nettle fibre can be spun on the wheel. The integration activates automatically; it is a no-op if the mod is absent.
Tools Require Rope. See the Tool Binding section above. Both the original mod and the community fork are detected automatically.
AutoConfigLib / ConfigLib. Supported for in-game config editing.
Expanded from AgeOfFlax by OppoOtis.
Inspired by Primitive Technology and RHSWorks.
MIT — do what you like, credit appreciated.
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 0.7.0 | rudiments | 12 | 3 days ago | rudiments_0.7.0.zip | 1-click install | ||
|
Replace homegrown tool binding with Toolsmith compatibility (v0.7.0)
The custom friction-fit/glue/nail binding system collided with Toolsmith's tool-tinkering CollectibleBehaviors (both override GetMaxDurability/OnDamageItem on the same vanilla tools) and never worked well on its own. Removed it entirely and instead registered rudiments:finecord as a premium binding material in Toolsmith's data-driven binding system via standalone JSON — no code, no hard dependency, a complete no-op without Toolsmith installed. | |||||||
| 0.6.13 | rudiments | 4 | 3 days ago | rudiments_0.6.13.zip | 1-click install | ||
|
Fixed rot transition of nettle leaves. | |||||||
| 0.6.12 | rudiments | 0 | 3 days ago | rudiments_0.6.12.zip | 1-click install | ||
|
Add normal food spoilage to nettle leaves | |||||||
| 0.6.11 | rudiments | 2 | 3 days ago | rudiments_0.6.11.zip | 1-click install | ||
- RemoveBinding: count occurrences of each ingredient letter in the old pattern before building the shapeless recipe, so 2 sticks stay 2 sticks instead of silently becoming 1. - OnHeldInteractStart / OnHeldAttackStart: drop the base() call that was resetting handling to PassThrough and undoing PreventDefault set by earlier behaviors (e.g. CollectibleBehaviorThrowable on spears). - OnDamageItem FrictionBreak: add player-held-slot check (RightHandItemSlot / LeftHandItemSlot) so thrown-projectile entities — which pass FiredBy (the player) as byEntity — no longer trigger FrictionBreak on the projectile's internal slot, causing it to vanish on landing. - MakeGlue: change ingredient Type from Block to Item; woodbucket and ceramic bowls are Item-class collectibles in VS, so Block prevented the glue+nails recipe from resolving at all. AddBinding produced a 2x2 shaped recipe while nail-alone and glue-alone keep the original 1x3 column — players trying the same column arrangement never matched. Make the gluenail recipe shapeless so all four ingredients (head, nail, sticks, bowl-with-glue) can be placed anywhere in the grid. Both game:woodbucket and game:bowl-*-fired are Block types in VS assets. The v0.6.9 change to EnumItemClass.Item caused MatchWildcardIngredients to fail the type check (Item != Block), silently breaking all glue and gluenail recipes. Reverting to Block restores standalone glue and makes the shapeless gluenail recipe matchable again. | |||||||
| 0.6.8 | rudiments | 5 | 4 days ago | rudiments_0.6.8.zip | 1-click install | ||
|
Fix flat item guiTransform (sliver rendering), finecord spinning output, barrel log (v0.6.3)
Fix barrel retting display and lime recipe (v0.6.4)
Three bugs: 1. GetBlockInfo text was never shown: BlockLiquidContainerBase.GetPlacedBlockInfo only calls BlockBehavior (block-level) methods, not BlockEntityBehavior.GetBlockInfo. Fix: add companion BlockBehaviorRettingBathInfo that reads the entity behavior state via be.GetBehavior<T>() and surfaces it through the block-level hook. 2. Lime recipe/behavior used game:slakedlimeportion — the real vanilla limewater item is game:limewaterportion. Fixed in both retting-lime.json and the behavior constant. 3. Missing incontainer-item-rettingbathportion lang key caused raw key in barrel display.
Retting bath amber tint, restart fix (v0.6.5)
Drain retting water after conversion (v0.6.6)
Once the bundle converts (coarse or beyond), removing it drains the barrel — the water is exhausted by the retting process. If pulled before conversion, water is still restored so the player can reseal for a fresh batch.
Stop retting when liquid is removed (v0.6.7)
Tick now checks both slots — if the rettingbathportion is taken out while the bundle stays in, StopRetting fires just as it would for the bundle.
Fix rettingbathportion texture path crash (v0.6.8)
Vinegarportion's texture is block/liquid/vinegar not block/liquid/vinegarportion; wrong path caused a critical crash on barrel open. | |||||||
| 0.6.2 | rudiments | 2 | 4 days ago | rudiments_0.6.2.zip | 1-click install | ||
- Nettle meals: add meal-ingredient lang keys + textureMapping so soup/stew show a proper name and rendered (green) contents instead of looking empty. - Field retting: extract shared RettingProcess; fix the chunk-reload time-jump that skipped the brief fine window, and add a "fine possible in ~X" timer. - Barrel retting: replace the standalone vat with a vanilla-barrel behavior -- seal water/limewater + bundles to start an open "retting bath" that progresses coarse -> fine -> standard -> rot (lime = faster, capped at standard). Existing placed vats keep working but are no longer craftable.
Fix invisible flat items, add finefibers spinning compat, fix retting bath tint (v0.6.2)- All 8 shapeless items missing their singular 'texture' field now render correctly (finefibers, finecord, coarsefibers, nettlerhizome, nettleleaves, cookednettlerhizome, linseedoil, linseedcake were invisible in inventory/crafting). - Add Immersive Fibercraft spinning wheel compat for finefibers (same ratio as nettlefiber). - Retting bath liquid now uses tintIndex 1 (green plant tint) instead of blue water tint, making it visually distinct from plain water so the barrel retting state is visible. | |||||||
| 0.5.1 | rudiments | 6 | 5 days ago | rudiments_0.5.1.zip | 1-click install | ||
|
Add tool binding methods: friction-fit / glue / nail / glue+nail (v0.5.0)
Turns "how the tool head is bound to the handle" into a four-tier crafting axis that coexists with ToolsRequireRope (fork or original) and works without either mod. - ToolBindingSystem (ExecuteOrder 1.02, after ToolsRequireRope's 1.01) derives rope-free recipe variants at runtime from every tool grid recipe: friction-fit (remove binding, stone-age only, gated on the rope mod), glue (pitch glue from a bucket/bowl, +10% durability, must cure), nail (metal nails, +25%), and glue+nail (+50%). All multipliers configurable. - ToolBindingBehavior: durabilityMul on GetMaxDurability, glue cure timer that blocks use until cured, friction-fit per-use failure that drops the stone head, attribute-driven swap of the "string" binding texture per method. - Behaviour injected server-side in AssetsFinalize and client-side via BlockTexturesLoaded (Items/Blocks aren't populated at client AssetsFinalize). - Config knobs for every durability multiplier, cure hours, fail chance, glue litres/container, nail ingredient, and friction stone materials. - Placeholder binding textures (glue/nail/none) + lang entries. Known WIP: friction-fit craft (shapeless) under test; glue/nail/cure/tooltip/ texture-swap confirmed working in-game. | |||||||
| 0.4.10 | rudiments | 2 | 5 days ago | rudiments_0.4.10.zip | 1-click install | ||
|
Outward radius cap applies to all rhizome spread incl. creep & reeds (v0.4.10)
- New IPatchOrigin interface; nettle, buried rhizome, and reeds all carry/inherit a patch origin so the hard outward cap bounds every autonomous spread vector. - Creep mode: buried rhizome now inherits the patch origin and passes it to the emerged nettle, so the cap no longer leaks via creep. - Reeds: BlockEntityReedSpread now tracks origin and enforces ReedSpreadMaxRadius (default 16; 0 = unlimited). | |||||||
| 0.4.8 | rudiments | 4 | 5 days ago | rudiments_0.4.8.zip | 1-click install | ||
|
0.4.4 — Nettle lifecycle moved from real-time ticks to the in-game calendar (fixes stub/spread/growth not progressing). | |||||||
| 0.4.3 | rudiments | 3 | 5 days ago | rudiments_0.4.3.zip | 1-click install | ||
|
Rework nettle feeder: efficient on own soil, leaches neighbours, immune to itself (v0.4.3)
- Own-soil N use 45 -> 15 (50% less than a normal crop) - Neighbour leach 4 -> 3 (~10% of a normal crop's use) - Skip adjacent farmland that has nettle on it (nettle never drains its own kind) | |||||||
| 0.4.2 | rudiments | 3 | 5 days ago | rudiments_0.4.2.zip | 1-click install | ||
|
Retextured nettlestub to reuse stage1 texture with darker saturation. | |||||||
| 0.4.0 | rudiments | 4 | 5 days ago | rudiments_0.4.0.zip | 1-click install | ||
|
Overhaul nettle into an invasive rhizome "weed" (v0.4.0) - Rhizome-only propagation: nettle no longer drops seeds; seed item retired - Every cut leaves a regrowable root crown (any stage, any soil) - Wild spread to fertile ground, preferring tilled farmland, with a density cap - Heavy feeder: 45 N own-soil use + drains nitrogen from adjacent farmland (wild & cultivated) - Optional invasive creeping mode (hidden buried rhizome that emerges later) — default OFF - Halved the stub shape again to a tiny stub - All values config-driven via RudimentsConfig (AutoConfigLib-compatible) - Reed spread also gains the density cap | |||||||
| 0.3.8 | rudiments | 0 | 6 days ago | rudiments_0.3.8.zip | 1-click install | ||
|
Fold SpinningCompat into Rudiments via dependsOn patch (v0.3.8)
Move the spinningwheel compat patch directly into Rudiments assets. VS dependsOn ensures it only applies when spinningwheel is loaded. Remove the separate RudimentsSpinningCompat mod entirely. | |||||||
| 0.3.5 | rudiments | 2 | 6 days ago | rudiments_0.3.5.zip | 1-click install | ||
|
The nettlesoup.json recipe caused a crash in GuiHandbookMealRecipePage when the item tab of the survival manual was opened. Root cause: CookingRecipe.GenerateRandomMeal builds a per-recipe cache (keyed "valstacksbying-<code>" in ObjectCacheUtil) mapping each CookingRecipeIngredient to a HashSet of matching ItemStacks drawn from handbookallstacks. For each required ingredient (MinQuantity > 0) it never adds null to the set. When the page later renders, it indexes into that list with validStacks[Rand.Next(validStacks.Count)] — if the count is 0, Rand.Next(0) returns 0 and the List indexer throws ArgumentOutOfRangeException. The nettle-base ingredient had exactly one valid item (rudiments:nettleleaves) as a non-wildcard, cross-domain entry. If JsonItemStack.Resolve fails for that entry during the async handbook page-build thread (TyronThreadPool.QueueTask → LoadPages_Async → CreateCachedMealRecipeStacks), ValidStacks is filtered to empty, GetMatchingStack returns null for every item in allstacks, and the required ingredient's cache set remains empty. Vanilla soup was unaffected because its required vegetable-base slot had 13+ entries, so at least one always resolved successfully. The cooking-nettle.json patches to vanilla soup and vegetable stew remain, so nettleleaves is still a valid ingredient in those recipes. | |||||||
| 0.3.3 | rudiments | 8 | Jun 3rd at 5:56 PM | rudiments_0.3.3.zip | 1-click install | ||
|
minor graphic fix that didn't make it in previous release | |||||||
| 0.3.2 | rudiments | 2 | Jun 3rd at 5:37 PM | rudiments_0.3.2.zip | 1-click install | ||
|
Nettle rhizome: texture, cooking, planting fix, stub height
| |||||||
| 0.3.1 | rudiments | 3 | Jun 3rd at 2:50 PM | rudiments_0.3.1.zip | 1-click install | ||
|
Fix field retting block placement/removal bugs
Same two fixes as the stook: suppress the default block item drop on break (drops: []), and auto-remove the block when bundles are retrieved instead of leaving an empty field retting in the world. | |||||||
| 0.3.0 | rudiments | 6 | Jun 3rd at 3:36 AM | Empty | rudiments_0.3.0.zip | 1-click install | |
A really interesting mod it's shaping up to be! I'm looking forward to trying it out once all the features planned are implimented :D
I assume it's meant as an alternative to any mods that function similarly like Toolsmith and Clayworks?
Yes, though I do intend to ensure compatibility with those mods as they already expand quite a bit on some of the features I had considered. For instance, clayworks already implements the need to dry clay before firing and adds methods of coloring, but doesn't (afaik) diferentiate between earthenware, stoneware; or require glazes for water fastness, etc. So if someone were using clayworks with my mod; I would want it to be additive, and not competing feature sets.
I've not personally used toolsmith so I will need to verify it's feature set as well.
Obviously the origional focus was on flax/nettle, so I'm still tuning quite a bit on it; and just now working on the initial stages of tooling.
Good callout on the toolsmith. It already does most of the things I had planned; so I'll refactor to ensure compatability with it most likely and focus more on the nettle/flax and clayworks expansions. Thanks.
Phasing out the dedicated retting barrel and just using the vanilla barrel, water, and cured nettle/flax. If you have the dedicated barrel in game it should still work; just can't build new ones.
First draft of the new tool bindings. Definately a bit buggy on the friction fittings; and the unified glue+nail recipes; but now you have additional options to make tools with our without rope with durability bonuses depending on the binding used. Just be careful if you rely only on friction as they may not hold together very well. Feedback welcome.
Added some new features for nettle to more closely resemble its "invasive" like nature. Should spread automatically on its own via rhyzome network (should apply to all rhyzome plants like coopers reed as well). "borrows" Nitrogen from surrounding farm land. And an optional invasive mode (off by default) that lets it spread completly hidden only to pop up from the underground rhyzome network making it harder to evict once it is established. Still play testing all of this, but once all the bugs are worked out; I intend to start focusing on friction fitted stone tools.
Peppermint1888, For now I've removed the nettle soup recipe as it was causing a null reference when the handbook loaded the item tab. It didn't seem to happen everytime; so not sure what caused it. Nettle leaves should still work as a normal veg in vanilla recipes however.
Thanks a lot!
Peppermint1888, Thanks for letting me know. I was able to reproduce it. Looks like it was related to how I was adding the nettle soup meal recipe. I'll get a fix out for it as soon as I can.
Hi! I loaded this mod but there seems to be a bug that crashes my game when I try to open the items tab of my survival manual.
@braniyaKz Added a few screenshots. Any assets that actually look good were sourced from OppoOtis's initial work and I take no credit for them. Anything questionable looking is probably mine lol.
BraniyaKz Sure I'll try to get some screenshots added soon. It is very much a work in progress; and the art/graphic side is not my strength, but appreciate the interest. The rope braiding mod was one I enjoyed as well. I had considered implementing something similar here. I also used https://mods.vintagestory.at/toolsrequirerop as it works well with the intent of this mod as well; especially for future additions I have planned for friction fitted stone tools that won't require rope; but may fall apart more easily.
This is a cool idea :) Can you post screenshots? Also, it's a shame the rope braiding mod isn't updated to 1.22 yet :(
I got it working so far, just having a few problems with the ID but i will upload a fork
HERE :
https://mods.vintagestory.at/show/mod/54152
Thanks a ton. I tried briefly to update it; but kept getting an issue where the animation didn't work. Glad to have this one back.
yep , the model needs to be updated after the value is taken(?) from the client side, dunno how it worked in 1.21
Fantastic! 😀