Mods / Edge Of Lineage: Core

Tags:
Crafting Weapons Mechanic Gameplay
Author:
JuiceFruit
Side:
Both
Created:
5 days ago
Last modified:
12 hours ago
Downloads:
189
Recommended download (for Vintage Story 1.22.7):
eolcore_0.3.1.zip  1-click install

Edge of Lineage: Core

Edge Of Lineage: Core

Recover forgotten blade patterns, forge their edges, and create weapons with fittings and finishes of your choice

This module provides core stations and logic and does not add weapons on its own

The core principle of this suite is to have an immersive, multi-step process for crafting weapons without creative menu, handbook, or anvil bloat

REQUIRES: Attribute Rendering Library ≥ 3.2.0

Mod is currently in alpha state; expect bugs and broken interactions

All testing of this build was performed only on Vintage Story version 1.22.7
Earlier versions are not supported. Automated testing is carried out courtesy of Atlas
Backup your worlds before installing!

The complete crafting journey consists of five steps:

Find a fragment ⇒ Trace a pattern ⇒ Forge an edge ⇒ Assemble your weapon ⇒ Decorate it

The in-game handbook has a detailed step-by-step guide

Hafting Stake

Hafting Stake

HaftingStakeScreenshot

Choose how your blade takes shape, one fitting at a time

  • 🖱️ R to put your edge on the Hafting Stake
  • With an ingot or a debarked wood log, press 🖱️ R to preview material in the open slot. Allowed materials depend on edge and slot
  • Use a knife on wood, or a chisel on metal to cycle through available styles
  • Hold 🖱️ R to peen the fitting into place. Repeat for all available slots, and you will get your weapon

You can replace uncommitted materials or take it back with empty hand before peening. Styles change weapon appearance as well as contribute to the weapon's durability

Damage, Tier, or other stats are unaffected

Note that after peening any part, you cannot quench or temper your edge anymore

Part's styles can be used without discovering and tracing their lineage first

After you have assembled your blade, you can decorate it at Weapon Dresser

Weapon Dresser

Weapon Dresser

WeaponDresserScreenshot

Furbish the weapon with details that make it yours

  • Put the weapon on the Weapon Dresser
  • Aim at the appropriate part zone and 🖱️ R with an allowed finish material
  • Apply the wraps, gilds, or gems supported by the lineage and part. Quantities might differ
  • Use a saw on the matching zone to strip finish one layer at a time, starting with gem. Materials are lost
  • New to 0.3.0: 🖱️ R with an Ink and Quill to open name and description editor. Supports VTML

Finish is entirely cosmetic. You can mix and match to your heart's desire. Accepted materials depend on the pack


Compatibilities:

Implemented
  • Purposeful Storage
  • Combat Overhaul (needs extensive feedback)
  • Integrated Mod Manager
  • ConfigKit
Have Issues
  • I suspect many
Not Planned
  • Any non-vanilla metal mod
Incompatible
  • Under investigation. Feedback and crash logs are appreciated

Roadmap:

 
core features
◆  Two more packs inspired by Viking theme and Medieval Europe
◆  Better UX for stations
◆  More finishes
 
compats
◇  Consider Quivers
◇  Consider Vinconomy
◇  Consider Dropping CO if 1.23 brings significant improvements and prominence of CO goes down.
 
long term
○  Part discovery mechanic
○  Shields
○  Custom sheaths
Configuration settings
Click to expand the full settings table

Edit ModConfig/eolcore.json, or optionally use ConfigKit or Integrated Mod Manager. Restart the world or server after making changes!

Setting Type Default Description
TraceBaseSuccessChance float 0.3 Base chance to trace a fragment successfully
TraceFidelityBonus float 0.35 Adds this value multiplied by fragment fidelity to the base trace chance. The final chance is clamped between 0% and 100%
FidelityScuffOnFail float 0.1 Fidelity lost by a fragment after a failed trace
MinFragmentFidelity float 0.2 Minimum fragment fidelity needed to attempt a trace
FidelityRestoreAmount float 0.1 Fidelity restored when applying hot pitch glue to a fragment
PitchGlueLitersPerRestore float 0.5 Litres of hot pitch glue consumed per fidelity restoration
PigmentConsumedOnFail bool true Consume charcoal on failed traces. Successful traces always consume charcoal
ConsumeParchmentOnInk bool true Consume the Lineage Parchment when imprinting its pattern onto an edge blank on an anvil
LootFidelityMin float 0.3 Minimum fidelity of fragments found in ruins or offered by traders
LootFidelityMax float 0.6 Maximum fidelity of fragments found in ruins or offered by traders
EnableRuinFragments bool true Allow blade fragments to appear in ruined-weapon loot rolls
RuinFragmentChancePercent float 25 Chance of a blade fragment per ruined-weapon loot roll, in percent
EnableTreasureHunterOffers bool true Allow treasure hunter traders to sell blade fragments
TreasureHunterStockAvg float 1 Average stock per fragment offer on the treasure hunter trader
TreasureHunterStockVar float 0 Stock variation per fragment offer on the treasure hunter trader
TreasureHunterPriceAvg float 50 Average price in rusty gears per fragment offer on the treasure hunter trader
TreasureHunterPriceVar float 10 Price variation in rusty gears per fragment offer on the treasure hunter trader
LineageLootWeights object {} Relative selection weights by lineage code for ruin and trader fragments. Populated from installed packs on startup. Higher weights make a lineage more common; these weights do not change the overall fragment drop chance

Known issues:

  • To be added

Creative commands:

Note that you need to have controlserver privilege to use them:

  • /eol give edge lineage metal
  • /eol parchment lineage
  • /eol fragment lineage piece fidelity
  • /eol unlockname

Packs:

Lineage packs add weapons, fitting styles, and finishes to Core. Select an image to visit its pack

Special Thanks:

  • Anego Studios: For the game we all enjoy
  • DanaCraluminum and every contributor: For making ARL
  • Pixnop: For making Atlas

AI Disclosure:

AI assistance was used in general code implementation, prototyping, and mocking features. Every implementation was reviewed. No AI was used in making Shapes, Textures, Icons, Lang files, or this very page and every picture and sentence on it.

Tested with Atlas

Mod Version Mod IdentifierFor Game version Downloads Released Changelog Download 1-click mod install*
0.3.1 eolcore 40 12 hours ago eolcore_0.3.1.zip 1-click install

Fixes:

  • Removed null fallback for fragment shapes
  • Proper validation of creative commands
0.3.0 eolcore 11 14 hours ago eolcore_0.3.0.zip 1-click install

Features:

  • Naming functionality added: Added custom weapon names and descriptions with support for VTML formatting, colors, fonts, and inline icons


Fixes:

  • Material-fitting rules when multiple packs installed
  • Pack-defined animations and two-handed restrictions
0.2.0 eolcore 60 2 days ago eolcore_0.2.0.zip 1-click install

Features:

  • Quenching mechanic added: Vanilla implementation of quenching and tempering now supports EoL weapons
  • On-ground placement transforms: Added support for ground placement of weapons

 

Tweaks:

  • Changed grip layer application: You can now only choose between wrap or cloth finish. Weapons should update on relog or after placing them on the dresser, with the cloth layer being removed


Fixes:

  • Removed legacy /eol give weapon command
  • Reorganized codebase directory structure
0.1.0 eolcore 78 4 days ago eolcore_0.1.0.zip 1-click install

Initial release

Disclaimer

By downloading a mod you consent to our Terms of Use.

We tell you this specifically because we want to make sure you are aware that we cannot validate every mod, and you are responsible for any damages you might incur by installing or loading mods.

This prompt will not be shown to you again (for the current browser session) if you proceed.


11 Comments (oldest first | newest first) (threaded | flat)

GodfreyLettuce, 8 hours ago (modified 8 hours ago)

For some reason quenching buffs miningspeed, and gold bits cannot be used, only native gold bits, which could lead to inconveniences possibly

JuiceFruit , 8 hours ago
@GodfreyLettuce: For some reason quenching buffs miningspeed, and gold bits cannot be used, only native gold bits, which could lead to inconveniences possibly

Pretty sure mining speed is from vanilla. I'll add gold bits support, but I rarely seen those used in 2 years of playing this game in multiplayer. It's more involved to get them than native gold

GodfreyLettuce, 13 hours ago

I tried to create a Saga fragment using commands, my game instantly crashed, here is the log. Also, can you please put the fragments in the creative inventory? Its really hard to test your mods without easy access. 

Crash Report
System.Exception: Error while rendering item in slot Vintagestory.API.Common.ItemSlotSurvival (1x Item Id 14242, Code eolcore:bladefragment)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at AttributeRenderingLibrary.ShapeExtensions.CheckIfExists(CompositeShape compositeShape, ICoreAPI api, Shape& shape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\Utility\ShapeExtensions.cs:line 18
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetShape(ItemSlot slot, Variants variants, CompositeShape overrideShape, CompositeShape& originalShape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 301
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetOrCreateMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas, CompositeShape overrideShape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 249
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetOrCreateMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 241
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GenMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas, BlockPos atBlockPos) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 534
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.OnBeforeRender(ICoreClientAPI clientApi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 360
   at Vintagestory.API.Common.CollectibleObject.OnBeforeRender_Patch1(CollectibleObject this, ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo)
   at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo_Patch2(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt)
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui_Patch2(InventoryItemRenderer this, ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize)
Crash Report
System.Exception: Error while rendering item in slot Vintagestory.API.Common.ItemSlotSurvival (1x Item Id 14242, Code eolcore:bladefragment)
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at AttributeRenderingLibrary.ShapeExtensions.CheckIfExists(CompositeShape compositeShape, ICoreAPI api, Shape& shape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\Utility\ShapeExtensions.cs:line 18
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetShape(ItemSlot slot, Variants variants, CompositeShape overrideShape, CompositeShape& originalShape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 301
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetOrCreateMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas, CompositeShape overrideShape) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 249
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GetOrCreateMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 241
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.GenMesh(ItemSlot slot, ITextureAtlasAPI targetAtlas, BlockPos atBlockPos) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 534
   at AttributeRenderingLibrary.CollectibleBehaviorShapeTexturesFromAttributes.OnBeforeRender(ICoreClientAPI clientApi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo) in C:\Users\dana_\Source\Repos\AttributeRenderingLibrary\AttributeRenderingLibrary\CollectibleBehavior\CollectibleBehaviorShapeTexturesFromAttributes.cs:line 360
   at Vintagestory.API.Common.CollectibleObject.OnBeforeRender_Patch1(CollectibleObject this, ICoreClientAPI capi, ItemStack itemstack, EnumItemRenderTarget target, ItemRenderInfo& renderinfo)
   at Vintagestory.Client.NoObf.InventoryItemRenderer.GetItemStackRenderInfo_Patch2(ClientMain game, ItemSlot inSlot, EnumItemRenderTarget target, Single dt)
   at Vintagestory.Client.NoObf.InventoryItemRenderer.RenderItemstackToGui_Patch2(InventoryItemRenderer this, ItemSlot inSlot, Double posX, Double posY, Double posZ, Single size, Int32 color, Single dt, Boolean shading, Boolean origRotate, Boolean showStackSize)
JuiceFruit , 13 hours ago
@GodfreyLettuce: I tried to create a Saga fragment using commands, my game instantly crashed, here is the log. Also, can you please put the fragments in the creative inventory? Its really hard to test your mods without easy access. Crash Report System.Exception: Error whi

I haven't put fragments, edges, or weapons into creative inventory because all of those tend to make inventory take ages to load and make the game slower. Can i get details on which command exactly triggered this error?

GodfreyLettuce, 12 hours ago
@JuiceFruit: It might be an issue of incorrect names: the actual code names of lineages are different. vikingsword, beardedaxe, daneaxe and wingedspear

I typed in the lineage as "Saga" so maybe thats why it didnt like it, but it still shouldnt crash from an incorrect command

Zackmadness, 20 hours ago

Watching your work closely Juice! looking forward to see what else you add

grinning_serpent, 2 days ago

Damn, this is a really great concept. Add your mod to the pile of "ones to watch," for sure!

JuiceFruit , 2 days ago
@grinning_serpent: Damn, this is a really great concept. Add your mod to the pile of "ones to watch," for sure!

Thanks! I'm working on both new mods and some small additions to functionality right now, so hopefully there will be some more updates and releases in the near future