ruiner189 / promethium Goto Github PK
View Code? Open in Web Editor NEWPeglin Mod that tweaks and adds new mechanics
Peglin Mod that tweaks and adds new mechanics
I had a few Stones ( at least one of each level and an Orbelisk) in my Pouch.
I threw all my Orbs and got damage to the point where all armor was gone.
Pouch reloaded -> no new armor
Below is the error output from startup to newgame
I get a strange behaviour from a fresh install (cleared peglin dir and let Steam re-download using verify)
Sequence leading up to issue:
====Start of console====
[Message: BepInEx] BepInEx 5.4.21.0 - Peglin (12/08/2023 13:01:14)
[Info : BepInEx] Running under Unity v2021.3.16.4200023
[Info : BepInEx] CLR runtime version: 4.0.30319.42000
[Info : BepInEx] Supports SRE: True
[Info : BepInEx] System platform: Bits64, Windows
[Message: BepInEx] Preloader started
[Info : BepInEx] Loaded 1 patcher method from [BepInEx.Preloader 5.4.21.0]
[Info : BepInEx] 1 patcher plugin loaded
[Info : BepInEx] Patching [UnityEngine.CoreModule] with [BepInEx.Chainloader]
[Message: BepInEx] Preloader finished
[Message: BepInEx] Chainloader ready
[Message: BepInEx] Chainloader started
[Info : BepInEx] 3 plugins to load
[Info : BepInEx] Loading [ProLib 1.3.0]
[Warning: HarmonyX] AccessTools.DeclaredMethod: Could not find method for type Battle.TargetingManager and name HandlePegHit and parameters
[Error : Unity Log] ArgumentException: Undefined target method for patch method static void ProLib.Relics.CustomRelicManager+HandlePegHit::Prefix(Battle.TargetingManager __instance)
Stack trace:
HarmonyLib.PatchClassProcessor.PatchWithAttributes (System.Reflection.MethodBase& lastOriginal) (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.PatchClassProcessor.Patch () (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
Rethrow as HarmonyException: Patching exception in method null
HarmonyLib.PatchClassProcessor.ReportException (System.Exception exception, System.Reflection.MethodBase original) (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.PatchClassProcessor.Patch () (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.Harmony.b__11_0 (System.Type type) (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.CollectionExtensions.Do[T] (System.Collections.Generic.IEnumerable1[T] sequence, System.Action
1[T] action) (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.Harmony.PatchAll (System.Reflection.Assembly assembly) (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
HarmonyLib.Harmony.PatchAll () (at <474744d65d8e460fa08cd5fd82b5d65f>:0)
ProLib.Plugin.Awake () (at <2153de126a4841bb804939abadea4949>:0)
UnityEngine.GameObject:AddComponent(Type)
BepInEx.Bootstrap.Chainloader:Start()
UnityEngine.Application:.cctor()
ToolBox.Serialization.DataSerializer:GetFilePath(Int32, SaveType)
ToolBox.Serialization.DataSerializer:LoadFile(SaveType)
ToolBox.Serialization.DataSerializer:Setup()
[Info : BepInEx] Loading [Promethium 1.5.2]
[Info :Promethium] Sprites loaded! Took 7ms
[Info : BepInEx] Loading [PeglinCore 1.0.2]
[Info :PeglinCore] Plugin peglin.core.Core is loaded!
[Message: BepInEx] Chainloader startup complete
[Info : Unity Log] Odin Serializer ArchitectureInfo initialization with defaults (all unaligned read/writes disabled).
[Info : Unity Log] Odin Serializer detected whitelisted runtime platform WindowsPlayer and memory read test succeeded; enabling all unaligned memory read/writes.
Setting breakpad minidump AppID = 1296610
SteamInternal_SetMinidumpSteamID: Caching Steam ID: 76561197964108079 [API loaded no]
[Info : Unity Log] Verifying local achievement data against the remote...
[Error : Unity Log] MissingMethodException: Method not found: !!0 ToolBox.Serialization.DataSerializer.Load<!0>(string)
Stack trace:
(wrapper dynamic-method) Saving.PersistentPlayerData.DMDSaving.PersistentPlayerData::InitFromSaveFile()
Saving.PersistentPlayerData.get_Instance () (at :0)
PeglinUI.MainMenu.CharacterSelectController+d__25.MoveNext () (at :0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <008a787f2823430aae87e927a51ccf8d>:0)
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
I2.Loc.LanguageSourceData+<Import_Google_Coroutine>d__65.MoveNext () (at :0)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <008a787f2823430aae87e927a51ccf8d>:0)
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
ProLib.Relics.CustomRelicManager+RelicManagerReset.Prefix (Relics.RelicManager __instance) (at <2153de126a4841bb804939abadea4949>:0)
(wrapper dynamic-method) Relics.RelicManager.DMDRelics.RelicManager::Reset(Relics.RelicManager)
Relics.RelicManager.AttemptUseRelic (Relics.RelicEffect re) (at :0)
(wrapper dynamic-method) RegularPeg.DMDRegularPeg::DoPegCollision(RegularPeg,PachinkoBall,Peg/CollisionType)
RegularPeg.OnCollisionEnter2D (UnityEngine.Collision2D collision) (at :0)
UnityEngine.PhysicsScene2D:Simulate(Single)
PredictionManager:FixedUpdate()
[Info : Unity Log] Verifying local achievement data against the remote...
[Error : Unity Log] MissingMethodException: Method not found: !!0 ToolBox.Serialization.DataSerializer.Load<!0>(string)
Stack trace:
(wrapper dynamic-method) Saving.PersistentPlayerData.DMDSaving.PersistentPlayerData::InitFromSaveFile()
Saving.PersistentPlayerData.get_Instance () (at :0)
PeglinUI.MainMenu.Cruciball.CruciballLevelSelector.ClassChanged (Peglin.ClassSystem.Class newClass, System.Boolean unlocked) (at :0)
PeglinUI.MainMenu.Cruciball.CruciballLevelSelector.Init () (at :0)
PeglinUI.MainMenu.Cruciball.CruciballLevelSelector.Start () (at :0)
[Info : Unity Log] Verifying local achievement data against the remote...
[Error : Unity Log] MissingMethodException: Method not found: !!0 ToolBox.Serialization.DataSerializer.Load<!0>(string)
Stack trace:
(wrapper dynamic-method) Saving.PersistentPlayerData.DMDSaving.PersistentPlayerData::InitFromSaveFile()
Saving.PersistentPlayerData.get_Instance () (at :0)
PeglinUI.MainMenu.Cruciball.CruciballLevelSelector.ClassChanged (Peglin.ClassSystem.Class newClass, System.Boolean unlocked) (at :0)
PeglinUI.MainMenu.Cruciball.CruciballLevelSelector.ClassChanged (PeglinUI.MainMenu.SelectableCharacter character) (at :0)
PeglinUI.MainMenu.CharacterSelectController.ChangeClass (System.Int32 index) (at :0)
PeglinUI.MainMenu.CharacterSelectController.ChangeClass (PeglinUI.MainMenu.SelectableCharacter character) (at :0)
PeglinUI.MainMenu.SelectableCharacter.OnMouseDown () (at :0)
UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)
[Error : Unity Log] NullReferenceException: Object reference not set to an instance of an object
Stack trace:
ProLib.Relics.CustomRelicManager+RelicManagerReset.Prefix (Relics.RelicManager __instance) (at <2153de126a4841bb804939abadea4949>:0)
(wrapper dynamic-method) Relics.RelicManager.DMDRelics.RelicManager::Reset(Relics.RelicManager)
(wrapper dynamic-method) GameInit.DMDGameInit::Start(GameInit)
Speed up sets the speed of the game back to normal speed once finished. Also, when the speed up starts, it sets the speed to the 1x speed before increasing speed.
Ideally, the speed up would work based off of what you currently have the speed set to, and return it to the original speed you had it set to at the end.
Promethium 1.3.3
ProLib 1.1.0
Thank you! Love this mod!
Every few runs I run into a ? encounter that freezes the game on a black screen. Did some digging in the player log with a few of the freezes and found this around the freeze point in each encounters.
Unloading 9 Unused Serialized files (Serialized files now loaded: 0)
UnloadTime: 2.259300 ms
NullReferenceException: Object reference not set to an instance of an object
at Promethium.Extensions.RelicManagerExtension.RelicEffectActive (Relics.RelicManager relicManager, Promethium.Patches.Relics.CustomRelicEffect effect) [0x00001] in <b36dba12991749deb31e644d11030502>:0
at Promethium.Patches.Relics.AddAttackPerPeg.Postfix (Relics.RelicManager ____relicManager, System.Int32 critCount, System.Single& __result) [0x00006] in <b36dba12991749deb31e644d11030502>:0
at (wrapper dynamic-method) Attack.DMD<Attack::GetModifiedDamagePerPeg>(Attack,int)
at Peglin.PegMinigame.OrbReward..ctor (UnityEngine.GameObject orb, DeckManager deckManager, UnityEngine.GameObject orbInfoPrefab) [0x00060] in <e0449e389fc840ffb5693fa4de82e46f>:0
at Peglin.PegMinigame.MapDataPegMinigameOrbs.PopulateRewards () [0x00025] in <e0449e389fc840ffb5693fa4de82e46f>:0
at Peglin.PegMinigame.PegMinigameManager.Initialize () [0x0005e] in <e0449e389fc840ffb5693fa4de82e46f>:0
at Peglin.PegMinigame.PegMinigameManager.OnEnable () [0x00040] in <e0449e389fc840ffb5693fa4de82e46f>:0
(Filename: <b36dba12991749deb31e644d11030502> Line: 0)
Unloading 64 unused Assets to reduce memory usage. Loaded Objects now: 64532.
Total: 52.325700 ms (FindLiveObjects: 2.446000 ms CreateObjectMapping: 4.696900 ms MarkObjects: 44.840300 ms DeleteObjects: 0.342000 ms)
Unloading 0 Unused Serialized files (Serialized files now loaded: 0)
Unloading 0 unused Assets to reduce memory usage. Loaded Objects now: 64532.
Total: 50.651200 ms (FindLiveObjects: 1.972000 ms CreateObjectMapping: 5.175500 ms MarkObjects: 43.437000 ms DeleteObjects: 0.066100 ms)
AimSim Could not be created, pegboard is null!
(Filename: C:\buildslave\unity\build\Runtime/Export/Debug/Debug.bindings.h Line: 39)
I love ? encounters but having the run end randomly on them is upsetting. Hope this stuff helps, love what you're doing here.
having a mirrorb in your deck and reloading makes the reloading animation freeze up and not allow you to play the videogame.tried with both shuffle toggles in the config
The multipliers for the Poker Chip appear to remain the same when I have the mod installed. I have the latest version of Peglin and BepInEx and no other mods installed. The mod is loading, and all the other stuff in it seems to work fine.
Hello Ruiner189,
I'm trying to make small mods by myself. I want to create a new Keyword with its characteristic orbs and relics.
I'm using dnSpy to create this mods. I've no idea about modding or coding, so it will be challenging for me, but I'm good understanding new stuff and creative, so maybe, I can do something. That's why I wanted to ask someone, who has experience in this specific area.
What I'm trying to do: "The Multishot Mod"
Keyword - Multishot X (Roundrel specific mechanic):
Orbs
Repeatorb:
Multiorbs:
Relics
I thought, that this would be as easy as copy-pasting already exiting items and tweak around but I couldn't even find them with the Search function by searching "Daggorb" for example, which was kinda frustrating.
My questions to get started:
I think, what I need, is to know, where to find the snippets "shot orb", multiball, "crit damage active?" "confusion", "all orbs in satchel", "target enemy", "Random target" and create conditionals (just saying by pure logical thinking).
I would appreciate it a lot, if you could help me out!
I wish you a nice day :)
P.S,: Maybe I haven't made the right questions or forgot to ask things, but for now, that would help me a lot to start modding in Peglin. If this content is balanced enough has to be tested, because I just wanted a cool mechanic that exploits more Roundrels started relic.
Accidentally put the orb in the hold slot instead of discarding, doing this soft locks the run completely if you can't be attacked whilst reloading.
Easily replicated.
Alright so, I know how to hold orbs and it works just fine but how do I know what an orb does when held? Could you make a list or something so we know what orbs do when held?
Make it so that the unicorn horn takes the electropegnet into account
btw, really great mod, thanks for your work!
See picture:
https://i.imgur.com/VT4CAlR.png
I found something called a Polus Test Orb, I think, and it's description was all in some kind of Germanic language. Dealt 22 Normal and Crit Damage and had something to do with causing confusion.
Same playthrough, I upgraded a stone to test the Armor effect, but the armor effect did not show on the upgrade, and on my next fight, I spawned in with armor, but the orbs did not load in and a Roman 2 was sitting in the middle of my screen, soft locking the run.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.