Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Strive for Power

Fantasy Slave Management/RPG Erotic Game · By Strive4Power

USB - Unofficial Strive Bugfix v0.6 - v0.5.23.b

A topic by starscraper1337 created Feb 28, 2019 Views: 5,308 Replies: 15
Viewing posts 1 to 9
(3 edits)

Greetings!

This is a small collection of common known/unknown bugs and their fixes, that first started as a personal endeavour to make the game more enjoyable but as it grew I figured that it should be shared with the community. I hope it helps the devs in future updates and the community to appreciate their game as I do, as it has immense potential, both base and modded. I opted for this topic in "Mods" instead of "Bugs" section since this is unoffical and my own way of supporting the devs.

Every feedback is welcome and appreciated so please share your thoughts :)

EDIT: Links removed due to issues fixed with new version, will reupload in case any new/old issues persist. Thank you! 

And a big thanks to devs for quick update, cheers!

Installation: Copy folder "files" into your game folder and merge/overwrite when prompted.

Removal: Copy folder "files" from "Original Backup" into your game folder and merge/overwrite when prompted.


Unofficial Strive Bugfix "USB" v0.06 Changelog:

-Version 0.6

*Fixed Ayda recruitment bug in Sandbox mode

-Version 0.5

*Fixed Gnome racial trait, "Study" assignment double effective

*Bunny racial trait correctly cuts all stress penalty on all prostitution jobs in half

*Fixed Sexual jobs missing stress/loyalty penalties, Spec bonuses, Trait bonuses, "U-Fucktoy" missing mental deterioration

*Fixed incorrect gold bonus on "Sex-crazed" trait, moved to trait "Fickle" as stated in description

*Fixed incorrect SJobs bonus on "Sex-crazed" trait, now correctly negates penalty on all SJobs as stated in description

*"Mind Read" now displays slaves "Role Preference" value, used in sex interactions and guild requests

-Version 0.4

*Fixed broken/missing UI in "Frostford" when reputation was high

*Fixed Zoe recruitment in "Sandbox" mode

-Version 0.3

*Fixed "Merchant" specialisation not giving a bonus (25%) to items sold while in party as stated by decription (ONLY in party, and ONLY one, no stacking as stated in decription)

**Optional fix:

*Reintegrated "Elixir of Regression" recipe present in game, can be made in alchemy lab only after asking Ayda about it and she gives it to you ("Topic - Ask about monster races") - Author note: "Optional because I'm unsure whether it is intended or a minor oversight, given that Regression pots can be found in other spawn pools."

-Version 0.2

*Fixed broken tattoo "Derogatory" (+5/10/15/20 lust & obedience on end day)

*Fixed broken tattoo "Animalistic" (+8/16/24 energy recovered on end day)

*Fixed missing "Monstergirl" spawn in region "Mountains" causing none of the local races to appear as an encounter.

-Version 0.1

*Fixed missing damage bonus in combat on "Assassin" specialisation

*Fixed Drow racial trait not increasing mana gain (20%) in sex interactions

**All fixes have been tested and working as intended.**

(+1)

Thanks for posting this here like this!! I've been following you over at F95 and appreciate your work putting this together.

(+1)

Good stuff, I hope this gets merged into the game at some point.

Thank you for your feedback,  I'm glad you like it. There will be future updates so look forward to it :)

I've fixed a few things while doing other mods and you can add them to your pack if you like.

Some story characters do not receive the stats coded for them (Ayneris is obviously short of stats). This replacement gallery file gives those stats. https://mega.nz/#!SvphHYoK!aU_4XvEl4lta-Y7Nk1Qsrp7EkokftDYjuH37ks-Bt00

In my Gorn Frostford mod are fixes for

  • Enemies (such as captured bandits) no longer get 2 extra attribute points . I'm assuming this was a bug where the enemies are given their level 1 points in creation and in level up . In the same section of code I suspect excess attribute points can be lost when all stats are fully assigned but I never tried to fix/test that.
  • Sebastian to give the basic solutions for Melissa's potion (only important if your Mansion is in Gorn).
  • Chloe will talk to gnomes in the forest instead of always telling you that you have insufficient mana for that.
  • The forest bandits fight in Cali's quest has two conditions that essentialy never trigger in real play. One of them is never met if the mage is party scout. I reworked this a bit more to make the two conditions achievable. At the end of the fight there is an option to take Tia to Shaliq and it returns you to mansion instead (which I always found a pain in the neck). It's an easy fix to jump to Shaliq instead.

I tracked down the flickering screen when entering locations such as Shaliq and I think is the main.animationfade() command. It looks to me like a line of code that fixed one problem and then was copied into lots of places where it isn't needed. Someone could spend a lot of time looking into that.

Hey thats great! I'll be sure to include it and check your mod too :) Thank you for pointing those out.

I'll look into the  animationfade if its running loose somewhere needlessly

The Gorn/Forstford mod probably won't work under latest version, I now know it has no survivability, so check the code directly.

For me, the two biggest bugs in the game are (1) the autocombat glitches in the next battle when you kill the final enemy using autocombat and (2) no save/load of guild contracts (or slaves) allows exploiting. The autocombat thing looks seriously hard to track down and it might involve UI files we can't mod. I'm assuming the save/load problems will require a undesirable change to the save file format.

There's another frequent display bug where the group panel is not updated after you buy or discard items. It could also happen at other times, such as after combat. It might be hard to pin down all the occassions but this is fixable.

(2 edits)

The autoattack bug starts in "combat.gd" on line 1011 "yield(self, 'skillplayed')" in enemyturn().

Yield is a coroutine command which pauses code execution, runs the first argument(combat.gd object in this case, not sure, but probably just resumes updates), and resumes when the second argument is given as a signal. The 'skillplayed' signal is given near the end of useskills(), but after checking if the player has won. Thus if the player wins during autoattack, then the current attack execution is paused until a skill(attack is a skill) finishes in the next battle. The double attack is the completion on the previous battle's unfinished attack cycle.

A proper fix would be probably be a comprehensive re-write, but a quick fix is possible. First, add "if period != 'enemyturn':" before "endcombatcheck()" in useskills(), line 917, and add a tab before the next 5 lines. Second, after the yield add "if endcombatcheck() != 'continue':" with "break" on next line (with one more tab before it). Though this change allows updates once more for any combatants still in fight. Adding the complete 5 line endcombatcheck from useskills() before "for i in enemygroup + playergroup:"(just below the yield), with "return" after "playerwin()" should prevent the additional update. I've verified that this works for some basic combat.

The autocombat glitch may be partially my fault, depending on what exactly you're talking about. I spent a long time stepping through memory dumps and reverse engineering how the autocombat stuff works to finally find a race condition involving the animation handling -- ref: https://itch.io/t/300782/bug-linux-x86-64-multiple-versions-race-condition-cause... 

The animation actually gets run with autocombat, but it's set to a small value. Autocombat can apply all the moves and end the battle, but since the coroutines are interdependent, on a fast machine one thread can terminate before the other is serviced; here, this meant the battle was ended and characters were removed from the arena prior to the animation completing.

My fix does allow the last move to always complete instantaneously without animation, but I wanted to change as little code as possible -- I didn't exactly have a lot to work with. I would advise extreme caution, because 'here be dragons'. Any complete fix that were to work 100% consistently is very likely going to be quite a bit more work than a check here or there: the combat loop code is kind of a mess (though it actually does approximately work) and needs to be fully decoupled from rendering. If it were chunked into an event dispatch model marshalled by the animation handler, any battle glitches would be solved.

(1 edit)

I should clarify the intent of my post is mostly just a heads-up that addressing combat isn't going to be the easiest thing, nothing more. That said, two thumbs up for putting together fixes for other various annoyances in the game. I quite like this game and feel it's definitely worth attempting to maintain!

I've skimmed your issue, and indeed moving "emit_signal("skillplayed")" lower down seems like it would have caused this issue. But I tested reversing your fix and this autoattack bug still happened, so I think coroutine race conditions are definitely at play. I think that the reason I gave for why my fix works was incomplete. My fix works because it limits possible outcomes by using a variable which is not likely to be subject to a race condition.(accidental success)
I am uncertain, but I think that my fix will inadvertently undo your fix, so it can only be applied safely to non-linux games. As both of us have pointed out a proper fix involves a significant rewrite of combat.

I spotted a few more potential bugs while modding some code. Escorts are only receiving their work stress if they lose their virginity (indent on if clause).  Slaves suffering a mental breakdown are only becoming rebellious if they are rebellious (missing not).

I agree that Escort job stress appears to be wrongly indented. However, on mental breakdown, the captured effect is removed from a slave. "func add_effect(effect, remove = false):" It's confusing because the author reused code in a weird way, but add_effect() is used to add and remove effects.
I have updated the wiki for traits, occupations, and specializations. Though, I didn't bother labeling them as bugs, there are a large number of differences between stated effects and actual effects.

I've looked further in the bugs in enemylevelup. At the moment the person constructor assigns a caste with possible extra levels and ability points assignment. This is ignored in enemylevelup which sets a new level and assigns ability points again. Ideally the constructor would take level as a parameter and construct the slave correctly so there is no issue of levelling up (or down) elsewhere.

If this is fixed though all random characters would have 2 points per level and some of the excitement of finding unique characters is lost. Putting an intentional +/-1 low chance variance onto total ability points could be preferable to both fixed generation and random bugginess.

With further digging, it seems it is very easy to fix the saving of repeatable guild quests. The guild quests are initialized in mansion.ready()  but this resets them with every load as well. The quests can be initialized at the end of the mainmenu sequence instead. This fix prevents an infinite money exploit.

I am trying to get the bugfix, but the link is gone for the bugfix. I'd like to add the fixes for remaining bugs to a new bugfix. It would be great if someone could send me the files, through Strive's Discord or gmail.