Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Strive: Conquest

A successor to first Strive For Power game, currently at alpha stage 路 By Strive4Power

Slave request error report

A topic by Firesparq created 34 days ago Views: 378 Replies: 14
Viewing posts 1 to 15

  • How the bug can be encountered/replicated
    • The bug occurs when attempting to select a slave for a slave request quest
      I believe it is caused by CharacterClass.valuecheck attempting to access the status of the character, however based on the error report, I believe that some character passed into the check doesn't contain a status value, so its attempting to access something which doesn't exist

      I ran some tests based on the clues, and determined the below output (see crashlog) based on this code:

      'has_status':
              if not "status" in i:
                      print("No status value detected for " + get_short_name())
              check = has_status(i.status) == i.check

      Was there a change in how character data was generated / stored between 0.11.0e and 0.12.0? Whilst this is a fresh save, I'm wondering if perhaps there is left over code from an old access method, and you had changed the access logic but missed that?
  • Your OS
    • Windows 10
  • Your crash log - Stored in same place as saves
    • Godot Engine v3.5.1.stable.official.6fed1ffa3 - https://godotengine.org
      OpenGL ES 3.0 Renderer: NVIDIA GeForce RTX 3080/PCIe/SSE2
      Async. shader compilation: OFF  
      Game Version: 0.12.0
      OS: Windows
      Generating portrait attribute cache took 0 minutes and 0 seconds.
      Mod Loader: 4.0
      faster combat animations
      No status value detected for Daisy
      SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').    at: valuecheck (res://src/character/CharacterClass.gd:1479) - Invalid get index 'status' (on base: 'Dictionary'). No status value detected for Lera 
    •  SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').    at: valuecheck (res://src/character/CharacterClass.gd:1479) - Invalid get index 'status' (on base: 'Dictionary'). No status value detected for Jann 
    •  SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').    at: valuecheck (res://src/character/CharacterClass.gd:1479) - Invalid get index 'status' (on base: 'Dictionary'). No status value detected for Trisstina 
    •  SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').    at: valuecheck (res://src/character/CharacterClass.gd:1479) - Invalid get index 'status' (on base: 'Dictionary').

Perhaps status isn't being generated with an empty dictionary value, and so without it being stored in the base character object, the access code fails because of it not existing.  I am uploading one of the characters from the save file for you to review. 

https://filebin.net/3xsskglfhdsbifzz

Following up on this as I had a thought which made me want to explore further. I decided to do a dump of the dictionary being passed into CharacterClass.valuecheck(), and returned this:

{check:True, code:has_status, value:tr_obedience}

SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').

   at: valuecheck (res://src/character/CharacterClass.gd:1480) - Invalid get index 'status' (on base: 'Dictionary').

{check:True, code:has_status, value:tr_obedience}

SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').

   at: valuecheck (res://src/character/CharacterClass.gd:1480) - Invalid get index 'status' (on base: 'Dictionary').

{check:True, code:has_status, value:tr_obedience}

SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').

   at: valuecheck (res://src/character/CharacterClass.gd:1480) - Invalid get index 'status' (on base: 'Dictionary').

{check:True, code:has_status, value:tr_obedience}

SCRIPT ERROR: Invalid get index 'status' (on base: 'Dictionary').

   at: valuecheck (res://src/character/CharacterClass.gd:1480) - Invalid get index 'status' (on base: 'Dictionary').


Which suggests the issue lies with the following code in MansionJournalModule.selecter_character_for_quest():

statreqs.append({code = 'has_status', value = 'tr_obedience', check = true})


And if that is true, then the issue is when reqs is used in input_handler.ShowSlaveSelectPanel() ->SlaveSelectMenu.open() during the checkreqs step.

Hope this helps.

it was stealthfixed recently, please redownload the game

Haha, would you look at that. Thanks! Looks like you stealth updated about an hour after I downloaded 0.12.0.

Interesting. The already-generated characters aren't able to be submitted to this quest from the previous version. I suspect I will need to forfeit it, or simply use freshly generated slaves for submission to it. I will let you know when I have an answer

Yeah okay, so that patch has just made it so that slaves can't be selected anymore

This is a new slave request quest, but the same issue was occurring for the two previous open requests I had running

I'll be waiting and watching for your updates. I'm excited to play the new update when everything is kosher. 馃挏

(1 edit)

I see you stealth updated again xD

I was about to report that the issue seems to be this line of code:
statreqs.append({code = 'has_status', status = 'tr_obedience', check = true})

However, it looks like you modified the underlying trait and replaced the name being checked for this:
statreqs.append({code = 'has_status', status = 'tr_obed_donate', check = true})

I ran some tests on the shadow-patched version of the game with the above code. I tested both previously valid, and freshly generated slave characters, as well as both on a fresh generated quest. It seems that existing slave request data is broken, but upon testing both with a fresh slave request, it works. Thanks!


Fixed in v0.12.0a for those interested

I spoke too soon. Some characters show up on lists, and some don't. Removal of the line of code here enables all slaves that match the reqs

statreqs.append({code = 'has_status', status = 'tr_obed_donate', check = true})


Out of curiosity, what were you trying to do with the inclusion of this line (and its predecessor)?

Having this issue as well on version 157 (July 30, 2025) from the downloads page, not sure what game version that is. Where did you delete that line of code to fix it?