4.60 star(s) 45 Votes

MrHatIsHere

Member
Jan 18, 2022
392
601
I'm a fan on convenience mods, and they tend to be the kinds of mods I like to create myself, but I'm not sure how to create mods here. So there are certain mod ideas I have:

1. Tutorials showing how each part works (possibly just examples that explain the different parts of the different JSON data structures)
2. A mod that sorts the storage by rate and model (possibly a mission mod, but I'm not sure how to pull that off) It could be done by an action that cost AP.
3. A mod that causes random events to happen based on success. For example, if I have more money, someone will try to steal at least part of it, and I will have to have a certain level of security (bots with certain combat and social requirements, for example) to prevent theft. There might be a scaling difficulty based on the amount of money needed to be guarded.
4. Bot missions designed to get approval from certain groups. For example, if I am currently in the "Freelancer" mission, I can do bot missions for to gain enough clout with Mitsutachi. Also, in general, I might be able to do jobs for local gangs that could decrease the chances of random events where they try to rob me or interfere with me when I travel to seedy locations, but failure would lead to legal difficulties which increase my debt.
5. If I have enough clout with Mitsutachi, they offer me access to new locations where I can, for example, access better bots more often, but at higher prices.

This should give a decent idea of the kinds of mods I'm thinking of. If I understood how the different JSONs worked (I can figure out most of it reasonably well, but I'm not sure about what all the variables are or what all the numerical values mean), I might be able to design a number of these mods myself, but I don't really know. These might be a bit ambitious, but I'm trying to figure out what could be done with the current variables and framework.
 

Mr_Shaky

Member
Nov 6, 2017
219
205
You don't have permission to view the spoiler content. Log in or register now.
I've got an unfinished modding guide/help but it pretty much only covers some basics and bot/part mods not the new missions etc.
A mission to sort bot storage might be possible. I'm not sure though since I've not even looked at the storage code. And it might require more than a pure json mod.
 

Thaimas

Newbie
Sep 10, 2021
33
48
For ladies and some gentleman:

Male framework + A-model quite feminine twink bot Link-2.
Mod requires Mr.Shaky's bot parts mod to be installed. Take it here.

Framework includes SABCDEF penises and also sets additional part slots.
Link-2 bot is A-class model. Mod has avatar and 3D modeled videos (oral, anal). Link-2 has sex_smart_inherent trait.


Download:

You don't have permission to view the spoiler content. Log in or register now.


S-model more masculine twink bot Link-5
Mod requires Male framework mod above + Mr.Shaky's bot parts mod, take it here

Link-5 is a S-class bot. Mod includes 3D modeled video (anal, oral, footjob). Link-5 has sex_smart_inherent and social_smart_inherent traits.

Download:

You don't have permission to view the spoiler content. Log in or register now.


MOD: male-centered Grey Market business and off-topics.
It is standalone mod.

It will show offers of some parts to buy and to sell, also some requests from different clients for bodyguards, escorts, bartenders and so on. There are also some announces in "off-topic" section just for the flavor.

Download:
 
Last edited:
  • Like
Reactions: Joshua J and Radnor

Radnor

Member
Game Developer
Nov 9, 2021
365
942
I'm a fan on convenience mods, and they tend to be the kinds of mods I like to create myself, but I'm not sure how to create mods here. So there are certain mod ideas I have:

1. Tutorials showing how each part works (possibly just examples that explain the different parts of the different JSON data structures)
2. A mod that sorts the storage by rate and model (possibly a mission mod, but I'm not sure how to pull that off) It could be done by an action that cost AP.
3. A mod that causes random events to happen based on success. For example, if I have more money, someone will try to steal at least part of it, and I will have to have a certain level of security (bots with certain combat and social requirements, for example) to prevent theft. There might be a scaling difficulty based on the amount of money needed to be guarded.
4. Bot missions designed to get approval from certain groups. For example, if I am currently in the "Freelancer" mission, I can do bot missions for to gain enough clout with Mitsutachi. Also, in general, I might be able to do jobs for local gangs that could decrease the chances of random events where they try to rob me or interfere with me when I travel to seedy locations, but failure would lead to legal difficulties which increase my debt.
5. If I have enough clout with Mitsutachi, they offer me access to new locations where I can, for example, access better bots more often, but at higher prices.

This should give a decent idea of the kinds of mods I'm thinking of. If I understood how the different JSONs worked (I can figure out most of it reasonably well, but I'm not sure about what all the variables are or what all the numerical values mean), I might be able to design a number of these mods myself, but I don't really know. These might be a bit ambitious, but I'm trying to figure out what could be done with the current variables and framework.
1. Some sort of Codex is planned some day. Tutorials/explanations likely will go there. Don't want to have any long texts in normal gameplay.
2. With rpy mod it may be possible i guess. Either hooking workshop storage choices or making bot mission, again using rpy mod function to do heavy lifting.
3. You can check variables change event weight during event listing.
Code:
  @random_event("home_sleep")
  def home_sleep_some_event():
    return "home_sleep_some_event_init",20+(mc.money//10000)
4. Rewards can be pretty much anything, especially if you use call_label/exec result entries.
5. This is planned. Eventually. This was main reason factions relations were added initially.

Probably best way to learn about modding is to get sources and check related files. Also using console to check stuff in game will help to understand what is what/when/where.
Until there are proper modding guides.
 

MrHatIsHere

Member
Jan 18, 2022
392
601
1. Some sort of Codex is planned some day. Tutorials/explanations likely will go there. Don't want to have any long texts in normal gameplay.
I could have been more clear, but I was referring to all the different parts of the JSON files. What value means what, what are the different variables, what are the proper "is a"/"has a" relationships for programming the actual files for missions, bot models, etc.
 

Mr_Shaky

Member
Nov 6, 2017
219
205
I could have been more clear, but I was referring to all the different parts of the JSON files. What value means what, what are the different variables, what are the proper "is a"/"has a" relationships for programming the actual files for missions, bot models, etc.
Give it some time. I'll probably release my guides some time this weekend if I have time to finish the missions section of it.
 
  • Like
Reactions: Radnor

saneulae

Member
Sep 18, 2020
115
62
hey Radnor, what is the proper definition to use to generate a bot? I was never successful when I tried to create a bot as reward in the grey market. I also tried to replicate the market vendors to create more vendors with higher stats, but it never worked right.
 

atomicp

Member
Feb 25, 2018
364
875
I've just noticed there are stats for "warranty seals" on bots; I was thinking if couldn't there a way to create counterfeit seals, or even "reseal" them with new parts.

Maybe a bbs event / quest?

With that said, one thing i've noticed when trentrentren's Nympho event gets triggered, the seals don't get broken - which kinda allows Sex exp to be gathered by the bot even with the seals intact.

Also... will there be any relevance to that stats, or is it just for fluff purposes and I'm sorta spergin too much?
 

Radnor

Member
Game Developer
Nov 9, 2021
365
942
hey Radnor, what is the proper definition to use to generate a bot? I was never successful when I tried to create a bot as reward in the grey market. I also tried to replicate the market vendors to create more vendors with higher stats, but it never worked right.
There is no normal/official way to generate bot from bbs offer or as mission result.
With mission it may be possible with rpy file and call_label/exec property, but best would be waiting for v0.5.
As for creating new marker vendors, if you talk about stuff like flea market, you generally call generate_bot label few times with appropriate tables/parameters. Once you have table of bots available you show them.
I guess i really need to create some sort of universal/generic shop template. Again, likely v0.5.

I've just noticed there are stats for "warranty seals" on bots; I was thinking if couldn't there a way to create counterfeit seals, or even "reseal" them with new parts.

Maybe a bbs event / quest?

With that said, one thing i've noticed when trentrentren's Nympho event gets triggered, the seals don't get broken - which kinda allows Sex exp to be gathered by the bot even with the seals intact.

Also... will there be any relevance to that stats, or is it just for fluff purposes and I'm sorta spergin too much?
This is mostly flavor thing for virginity kink people :D So it is unlikely i will add sort of "re-sealing" mechanics.
For seals to be broken event need to call break_warranty_seals functions/label.
game\modules\0010_dscs_base\game\common\warranty_seals.rpy

It could be used/checked by some events or offers/missions, maybe changing price, i guess. But for now it is just fluff.
 
  • Red Heart
  • Like
Reactions: cflash and atomicp
Apr 3, 2019
116
47
This is mostly flavor thing for virginity kink people :D So it is unlikely i will add sort of "re-sealing" mechanics.
For seals to be broken event need to call break_warranty_seals functions/label.
game\modules\0010_dscs_base\game\common\warranty_seals.rpy

It could be used/checked by some events or offers/missions, maybe changing price, i guess. But for now it is just fluff.
I utilized virginity in some of my mod bots because the source material made it impossible to get around and ya I also realize it's a kink to "break the seal"
 

mineride

Newbie
Apr 14, 2019
28
30
@mineride's mods
Contains 2 mission mods at the time I post this.
Author stated they would post future mods there.

update of all my mods :
  • Missions
The studio :
- Nerf all reward to make it more balance between loss/win in each results + be more reasonable by looking at how much you win by working
- Change how much results have the BD system.
- repair broken English
- Balance weight to have a ratio 11/30/59 on death/mission failed/mission success
the fight club:
- Balance result with nerf and upgrades to be as attractive as the studio but differently : (fight club have more bot damage and death than the studio, which is also logical, but have more reward)
- New results.
- repair Broken English
- Balance weight to have a ratio 25/25/50 on death/mission failed/mission success
the repair bot:
- Balance results with nerf and upgrade and add new results.
- Repair broken english
- Balance Weight to have a ratio 07/30/63 on death/mission failed/mission success (modifié)
  • Bots
MR-bot collection :
- add some bots to go from around 20 to 38 bots.
- fix broken english
- Balance some bots in their caracteristic
- Add and modified detail about my 'alternative but follow the vanilla lore in the game' lore
  • Modules
New_mission_result :
- new BD system which let choose what type of content you want to watch.

New modules :
-new_mission_results_slaanesh_version :
Rpy script which give new result possibilities to use in Json files with the function Call_label. The possibility is around 'content' still not possible to have with the two label available by the vanilla game without breaking the immersion/sense of the game (MC is white and only video with one bot only).
A bot and a mission is available with all the possible contents to give examples.

New Missions pack :
MR - Mission Pack - Slaanesh Version :
Pack of all missions that have result which do not use the classic video tags. Of course, it's not the level of the god of lust but it push a little further the 'possibilities of content'
- The Underground Artists : Send your bots into the deep underground of the leisure district which have some nasty desire and kinks. (all of them need the new_mission_results and the Slaanesh version file too)
 
Last edited:
  • Like
Reactions: pian and Radnor

Radnor

Member
Game Developer
Nov 9, 2021
365
942
Update release - 0.4.1!

Offline/downloadable versions (Windows, Mac, Linux and Android):
- Windows
- Mac
- Linux
- Android

- Windows
- Mac
- Linux
- Android

- Windows
- Mac
- Linux
- Android

Game project sources (requires RenPy 7.4.11):




Changelog 0.4.1 in no particular order:
Code:
- quality-of-life: added warranty seals information to bot_preview screen
- internal: allow random events with rolled parameters
- internal: return dummy false object from bot.chassis[invalid_slot_id] to use in mod formulas
- internal: sort asset packs by id, longer first
- internal: rework wchoice to handle floats by normalizing all weights to ints, w=int(w*1000)
- internal: accept strings for more mission related entries
- modding: add "mc_xp_change" entry to mission results
- modding: actually use missions "costs" entry
- internal: allow bypassing "effective_xp" processing, give_xp ("skill",("raw",500)) or ("skill",500,raw=True) or ("skill_raw",500)
- modding: add xp gain mults to tunings.json, for mc and bots
- modding: add difficulty hardcore mode setting to tunings.json
- quality-of-life: add "Always" to "Repeat action buttons" settings, overriding difficulty hardcore mode
- quality-of-life: play movie audio on sound channel when maximized, with settings option
- modding: // style comments in json files, only working with leading comment markers
- internal: give_xp accepts "next"/"prev"/"zero"/"<eval>" as xp value to give/take exact raw xp
- internal: move scavenge bot/parts generation to random events
- modding: add more random event/finalization hooks to roaming and common interactions
- fix: various minor issues/tweaks
 

Mr_Shaky

Member
Nov 6, 2017
219
205
Here's my new modding guides. Currenty covers making bots, parts, slots, defects, namelists, missions and tuning/difficulty adjustments. (Links also in mod list post just above the list iteslf)
Structured mosty as actual mods explaining what things do. Although I wouldn't recommend actually using them in-game. Though you could :p


I strongly recommend downloading a better text editor if you're looking to create mods. Try one or both of these and pick your favourite (or both):

 
Last edited:

pian

New Member
Feb 8, 2019
12
5
Man, you guys are on fire! Checked this out last evening - suddenly three wild updates appear! o_O

I have to say, that I find this game strangly addictive. Still a little on the bare-bonish side content wise, though there are renpy-games that have less when they are completed. But other parts, like UI , scenery, performance and modding implementation - thats all spot on. Now even I can frankenstein some cool robotic galls to my liking, both in the game as well as modding them right into.

I guess screwing on your own toys... Maybe the manliest game since Duke Nukem 3D :cool:
 

atomicp

Member
Feb 25, 2018
364
875
Damn, Nekofreak443840 's "My Bitches" mod is sadly, crashing when I try to use the "Look at Bot" event during work.

Gonna remove it out for now. Gonna miss my Quiet-Bot.
 

Mr_Shaky

Member
Nov 6, 2017
219
205
atomicp
Checked json from it, it seems it requires Shaky's parts mod. Do you have it in new dscs mods folder?
I just tried it. Even with my part mod installed I get this:
1655131501226.png
I'm curious because I've never seen this error before. Only "TypeError: 'NoneType'" errors.
Only happens when working seems like. Not when buying at flea market or dump.
 

Radnor

Member
Game Developer
Nov 9, 2021
365
942
Checked. I believe reason is there are no "cheap" bot models.

DSCS\game\modules\0020_dscs\game\locations\home\home_work_events.rpy
This part:
Code:
label home_work_preview_repair_task:
  python:
    notify.disable()
    bot=generate_bot("repair_task","cheap")
    while not bot.chassis.is_disabled:
      for slot in bot.outfit_slots:
        bot.chassis[slot].apply_damage(randint(5,50))
    notify.enable()
So bot tries to generate cheap bot (as it is supposed). No cheap bots are available, so result bot is None. So None.chassis is crashing game.
Reason why there are no cheap bots is next part of MyBitches_Bots.json:
Code:
{"model_id": "-agmx_9",
},
{"model_id": "-agrx_10",
},
{"model_id": "-agptech",
},
{"model_id": "-akira",
},
{"model_id": "-jkb_12",
},
And no bots listed as cheap.

So it is partly my error for not thinking about this scenario when reworking work events. But if you plan to remove default bots, please keep some bots for every tag, cheap/nice/good/luxury. At least until next version when i get more permanent fallback solution.

As it may take quite some time to release it, i suggest next solution.

Edit MyBitches_Bots.json in your mods folder so at least one bot will have
Code:
            "list_target_tag_chances": {
                "all": 3,
                "cheap": 1,
                "nice": 4,
                "good": 6,
                "luxury": 10,
            },
"cheap": 1 line. This fixed it on my side.
 
  • Like
Reactions: atomicp

Ronin13

Newbie
Jul 21, 2017
33
5
Getting errors when trying to send bots on missions (not all bots)
Code:
I'm sorry, but an uncaught exception occurred.

While processing text tag {u'type': u'money', u'value': 10000} in u"{size=-8}{color=#6D8}{u'type': u'money', u'value': 10000}{/}{/}".:
  File "renpy/common/000statements.rpy", line 569, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
Exception: Unknown text tag u"u'type': u'money', u'value': 10000"

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "modules/0005_core/core/main_loop.rpyc", line 79, in script call
  File "modules/0005_core/core/main_loop.rpyc", line 19, in script
  File "renpy/ast.py", line 2015, in execute
    self.call("execute")
  File "renpy/ast.py", line 2003, in call
    return renpy.statements.call(method, parsed, *args, **kwargs)
  File "renpy/statements.py", line 278, in call
    return method(parsed, *args, **kwargs)
  File "renpy/common/000statements.rpy", line 569, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "renpy/exports.py", line 3136, in call_screen
    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
  File "renpy/ui.py", line 298, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "renpy/display/core.py", line 3325, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
  File "renpy/display/core.py", line 3839, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "renpy/display/core.py", line 2565, in draw_screen
    renpy.config.screen_height,
  File "render.pyx", line 492, in renpy.display.render.render_screen
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transition.py", line 368, in render
    top = render(self.new_widget, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/screen.py", line 688, in render
    child = renpy.display.render.render(self.child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 987, in render
    surf = render(d, rw, height - y, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1264, in render
    st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/viewport.py", line 257, in render
    surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1264, in render
    st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/text/text.py", line 2096, in render
    virtual_layout = Layout(self, width, height, renders, drawable_res=False, size_only=True)
  File "renpy/text/text.py", line 610, in __init__
    self.paragraphs = self.segment(text.tokens, style, renders, text)
  File "renpy/text/text.py", line 1259, in segment
    raise Exception("Unknown text tag %r" % text)
Exception: Unknown text tag u"u'type': u'money', u'value': 10000"

Windows-10-10.0.19041
Ren'Py 7.4.11.2266
DSCS 0.4.1
Mon Jun 13 19:09:01 2022
Till now it's the bots from Mineride's pack.
Thx
 

Radnor

Member
Game Developer
Nov 9, 2021
365
942
Getting errors when trying to send bots on missions (not all bots)
Code:
I'm sorry, but an uncaught exception occurred.

While processing text tag {u'type': u'money', u'value': 10000} in u"{size=-8}{color=#6D8}{u'type': u'money', u'value': 10000}{/}{/}".:
  File "renpy/common/000statements.rpy", line 569, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
Exception: Unknown text tag u"u'type': u'money', u'value': 10000"

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "modules/0005_core/core/main_loop.rpyc", line 79, in script call
  File "modules/0005_core/core/main_loop.rpyc", line 19, in script
  File "renpy/ast.py", line 2015, in execute
    self.call("execute")
  File "renpy/ast.py", line 2003, in call
    return renpy.statements.call(method, parsed, *args, **kwargs)
  File "renpy/statements.py", line 278, in call
    return method(parsed, *args, **kwargs)
  File "renpy/common/000statements.rpy", line 569, in execute_call_screen
    store._return = renpy.call_screen(name, *args, **kwargs)
  File "renpy/exports.py", line 3136, in call_screen
    rv = renpy.ui.interact(mouse="screen", type="screen", roll_forward=roll_forward)
  File "renpy/ui.py", line 298, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "renpy/display/core.py", line 3325, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, **kwargs)
  File "renpy/display/core.py", line 3839, in interact_core
    self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn)
  File "renpy/display/core.py", line 2565, in draw_screen
    renpy.config.screen_height,
  File "render.pyx", line 492, in renpy.display.render.render_screen
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/transition.py", line 368, in render
    top = render(self.new_widget, width, height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/screen.py", line 688, in render
    child = renpy.display.render.render(self.child, w, h, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 987, in render
    surf = render(d, rw, height - y, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 826, in render
    surf = render(child, width, height, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1264, in render
    st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/viewport.py", line 257, in render
    surf = renpy.display.render.render(self.child, child_width, child_height, st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1264, in render
    st, at)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1768, in render
    cwidth, cheight = sizeit('c', width, height, 0, 0)
  File "renpy/display/layout.py", line 1765, in sizeit
    rend = renpy.display.render.render_for_size(pos_d[pos], width, height, st, at)
  File "render.pyx", line 315, in renpy.display.render.render_for_size
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/display/layout.py", line 1029, in render
    surf = render(d, width - x, rh, cst, cat)
  File "render.pyx", line 170, in renpy.display.render.render
  File "render.pyx", line 263, in renpy.display.render.render
  File "renpy/text/text.py", line 2096, in render
    virtual_layout = Layout(self, width, height, renders, drawable_res=False, size_only=True)
  File "renpy/text/text.py", line 610, in __init__
    self.paragraphs = self.segment(text.tokens, style, renders, text)
  File "renpy/text/text.py", line 1259, in segment
    raise Exception("Unknown text tag %r" % text)
Exception: Unknown text tag u"u'type': u'money', u'value': 10000"

Windows-10-10.0.19041
Ren'Py 7.4.11.2266
DSCS 0.4.1
Mon Jun 13 19:09:01 2022
Till now it's the bots from Mineride's pack.
Thx
When reporting bugs with modded game, provide link to mod in question, please. Also it may be good idea to ping mod author, so they know there is an issue. And it is really helpful if you can tell how to reproduce error, step by step, like pick this bot, send it on this mission, wait for return, error happens etc.

Looking at error, i guess it is part of loot table, but i don't think there is anything in vanilla code directly displaying loot as is. On the other hand there are size/color tag used to display mission costs. Need (link to) mod json to tell for sure.
 
4.60 star(s) 45 Votes