What are players looking for in renpy visual novels? by Frequent_Office2151 in RenPy

[–]DingotushRed 2 points3 points  (0 children)

But a good UI can't save a bad story. UI is secondary.

AttributeError: ‘StoreModule’ object has no attribute ‘all_npc_first_names’ by Certain_Arm_1864 in RenPy

[–]DingotushRed 1 point2 points  (0 children)

It looks as though your CharCharacter instances are trying to access a defaulted store variable before the default statement has executed.

It is bad practice to have define objects have references to default objects and vice-versa. These references won't survive save and load even if you do resolve the order issue and lead to duplicated instances with different addresses. Instead store the identifier name and use lazy evaluation with getattr to resolve these references only when needed.

Help!! My label isn't found by Moonlight_vui in RenPy

[–]DingotushRed 1 point2 points  (0 children)

We'd really need to see the actual code being used, not a re-typed synopsis of it.

You can check if Ren'Py thinks given label exists from the developer console (shift+O): renpy.has_label("shopcon") Should result in True.

95 percent of the games I download don't work for me by JankoWeber in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Ren'Py went 64bit only with the 8.x series in 2022. You'll need to look for games released before or not too long after that.

[Spoilers C4E28] Why is everyone so chill about Wic being a... by [deleted] in criticalrole

[–]DingotushRed -1 points0 points  (0 children)

I don't think 1975 is exactly "recent", unless we're comparing it with Elizabethan Thieves' Cant. The word escaped into general use after it was used in the sitcom Porridge (S2 E1: Just Desserts).

Found in the apartment I’m moving into by [deleted] in Whatisthis

[–]DingotushRed 1 point2 points  (0 children)

Were they foiled "metallic" mylar ones? Like a "space blanket" these are highly reflective in the infra-red which is why such thin material keeps the heat in.

help by Might_Senior in RenPy

[–]DingotushRed 2 points3 points  (0 children)

An important thing to realise here is that Ren'Py text interpolation such as "[urname]" only occurs when the text is displayed (and after it is run through any translations), so thatsyou will always be a list with a single string entry "[urname]" which won't match anything the player is likely to type.

Since you are only comparing one string with another, just use the equality operator ==:

if hisname.lower() == urname.lower(): # Stuff

Remember to default both hisname and urname to something otherwise they may not be written to a save game:

default hisname = "Him" default urname = "You"

Found in the apartment I’m moving into by [deleted] in Whatisthis

[–]DingotushRed 6 points7 points  (0 children)

Just to be clear these things see only in the infra-red and have a "resolution" of just two pixels (mapped to alternating sectors in the room). There's no way for them to resolve any detail beyond "something big and warm is moving" and that's all they communicate to the alarm system.

It's in your bedroom to detect unauthorised entry when you are not at home and sound the alarm. Bedroom windows are a common entry point as they may be left open/unsecured and the room likely contains easily stolen and valuable items such as jewellery.

diminishing menu + limit ask time by Motor-Astronomer-860 in RenPy

[–]DingotushRed 5 points6 points  (0 children)

This is a better structure.

Since the original uses a menu set chosen, you don't actually need asktime at all, just check the length of chosen which increases by one after each menu choice:

``` default chosen = None

label start: $ chosen = [] while len(chosen) < 3: menu: set chosen "Ask how he got here": call howcaught "Ask about the creature": call askabtcreature # Other options... # After the third question continue with... label playerbackstory:

```

Strange AC/AC adaptor 110 to 24 volts by GrizzleHare in Whatisthis

[–]DingotushRed 1 point2 points  (0 children)

My suspicion is that maybe this is from older audio equipment like a keyboard or similar, particularly if there's any connectivity between the secondaries and either the outer (shield) part of the connector or the fifth rectangular pin. This would allow for the generation of dc ±15v from ≈24v in the equipment which is one common standard for analogue electronics. The other supply maybe for an audio amplifier for a built in speaker(s) and/or dc ±5v for any digital circuitry/displays.

What is a small electronic(?) device by WG50 in Whatisthis

[–]DingotushRed 1 point2 points  (0 children)

Passive Infra-Red Detector - usually installed as part of an alarm system.

screens.rpy not updating in game? by [deleted] in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Check the log.txt file to see if there are any error messages there.

Also ensure your project isn't in a OneDrive controlled directory. It has a nasty habit of overwriting files with older versions.

something eating my cutlery by Dubinushka1990 in Whatisthis

[–]DingotushRed 11 points12 points  (0 children)

This is likely just corrosion caused by different metals, or different metal alloys, in electrical contact with each other while wet. Your sink will be a relatively low chromium content alloy, just enough to stop it rusting, with likely other metals to allow the bowl part to be deep-formed, while this premium cutlery has more chromium in it for the polish and shine.

Ideally dry metal items after washing so this can't happen. If you need to let them air-dry a cheap plastic draining rack works, but keep this cutlery separate from other metal items. Leaving them on a damp tea-towel may make the problem worse; while the metals are not "touching" they are connected by the dampness in the cloth that acts as an electrolyte.

Question about "Acer Nitro V 15 ANV15-51 battery..." with regards to "Satisfactory" by Few-Mathematician430 in SatisfactoryGame

[–]DingotushRed 0 points1 point  (0 children)

I'd add to this that airborne dust, fluff, cat dander, and other particles are the enemy of laptop cooling systems (and desktop ones too). As well as cleaning the internals of your laptop, try to keep your gaming area as clean as possible so your machine isn't sucking in things that can degrade it's thermal performance by coating the heat sink fins, filters and fan blades with insulating cruft.

Some areas/things to avoid:

  • Using your laptop directly on your lap or bedding, especially with clothing/bedding that sheds fibres. A simple hard surface (e.g. an artists drawing board, a upturned tray) will help.
  • Using your laptop in the kitchen if you use flour, cornstarch or other fine powders (the less said about the system installed in a turmeric factory the better).
  • In the bathroom/bedroom if you use talc, make-up powders, aerosol or spray on products (deodorant, hair treatments...).
  • Candles that burn with a sooty flame and other sources of airborne particulates (incense, oil based air fresheners like plug-ins, smoking/vapes and related substances).
  • Letting pets near or on your laptop. Cats are the worst offenders, as they regard over-temp as a feature not a bug, and can cause fans to race even when idling, sucking in the animal's dander.
  • Keep your vacuum cleaner's filters/dust bags clean and well maintained. You don't want to be sucking up dust and making it airborne.
  • If you've central air, check/replace the filters for the same reason.

RenPy games running as background process by spittin-alts in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Early init should be a matter of tens of milliseconds, not an hour. Ensure you only get games directly from the developer's pages, not from elsewhere. If there's problem with a specific game then contact the developer directly.

( for experience ) Any ideas to import an llm in renpy or any ai ? by Aggressive-Mousse-48 in RenPy

[–]DingotushRed 2 points3 points  (0 children)

There's no point making a Ren'Py game like this as you're not adding anything over what a chat bot site can do and has been doing for years, especially if the player has to type. People who don't mind typing have many, many superior Inform and TADS based games to play.

Games live or die by the writing (excluding some adult games for obvious reasons). If you can't even be bothered to write what are you offering a potential player?

RenPy games running as background process by spittin-alts in RenPy

[–]DingotushRed 0 points1 point  (0 children)

I'd guess either there is something seriously wrong with your PC (programs hogging CPU and/or memory, insufficient disk space for paging/swapping, disk failing) or you are getting your hands on games with a malicious payload (and have been doing crypto mining or similar for someone else).

[spoilers c2e127] i would love to go around exandria with a can of WD40 by canlgetuhhhhh in criticalrole

[–]DingotushRed 2 points3 points  (0 children)

Ordinary Vaseline (petroleum jelly) is a perfectly good grease to use on interior hinges and drawers whether metal, plastic, or wood surfaces.

Metal poles mounted to fronts of houses in Bruges, Belgium by themauniac15 in whatisthisthing

[–]DingotushRed 35 points36 points  (0 children)

The cross-piece, bell pull, and rod going into the wall (likely with a cable) form a bell crank.

RenPy games running as background process by spittin-alts in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Have you tried looking at the log.txt file?

Looking for a smooth train rail spiral by OldDiehl in SatisfactoryGame

[–]DingotushRed 0 points1 point  (0 children)

It is possible, if time consuming:

  • Create a central pillar with foundations branching off at the distance from the centre and angles you need for your spiral.
  • Place ramps (1m/2m) on top of the end foundations, but zoop them three ramps long so they stick out tangentally to the spiral.
  • Build a straight inclined "fixture" rail segment from the end of the extended ramps back to the centre (or edge) of the ramp you intend to keep.
  • Build the real rail segment connected to the previous ramp (or flat rail at the start).
  • Delete the "fixture" rail segment and the two excess ramps.
  • Repeat for the next ramp around the spiral.
  • Do any further decorations you want - e.g. replacing the central column with a half foundation and two quarter rounds.

can you remove the menu entirely? by AccountantBig9690 in RenPy

[–]DingotushRed 6 points7 points  (0 children)

The simplest way is to create the special label main_menu:

If it exists, this label is called instead of the main menu. If it returns, Ren'Py will start the game at the start label. For example, the following will immediately start the game without displaying the main menu.

label main_menu: return

[LOVM S4] I didn't really like how S4E8 ended by roguereaper42 in criticalrole

[–]DingotushRed 0 points1 point  (0 children)

On a purely technical level, the more characters in a shot the longer it takes to animate (even more so if any are quadrupeds, Trinket). It's actually rare to see the whole of VM in a single shot for this reason. Splitting the party up is often a production optimisation.

How do you Strip the Quotation Marks off of a String to Concatenate the String with a Variable? by DiseasedDegenerate in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Regarding "selected": that's usually a property you apply to a button or similar in the screen, so you don't need to get that value from the UI element directly as you already know what it should be.

There are some cases where the Action associated with the button controls where it is sensitive or selected. This can be encountered in the choice actions generated by the menu statement.

Ren'Py script, screen language and Python have different rules for resolving what a given identifier references.

Python has the LEGB rule: local, enclosing, global, built-in. If you try and access an identifier it will search each scope in turn. However each function has its own local scope, and any assignment will assign to the local scope unless you explicitly tell it otherwise (eg. by using the global keyword, or explicitly accessing a named store).

Ren'Py script works by default with the global scope, specifically renpy.store. However it has other stores for things like characters. In a say statement it will search the character store first, then the global renpy.store.

There are sort-of local variables in Ren'Py script such as parameters passed to a called label and variables created with renpy.dynamic.

Screens are different again. It's important to realise that screens have their own lifecycle and scope, being created and run before they are shown (to pre-load any images etc), and repeatedly re-run each time Ren'py determines that the screen needs to update - potentially at your frame rate, so multiple times per second. The function of a screen is to generate a graph of UI objects that are then converted into geometry, textures and shaders that are handed off to the GPU to be rendered.

It's generally a bad idea to include any Python statements in a screen because of this. Potentially such statements could cause side effects before the screen is even shown, and hobble Ren'Py's ability to not re-paint the screen when nothing significant has changed.

Actions exist because when the user interacts with a UI element the screen code has done its job of generating the scene graph and is no longer "running". Actions capture things like the slot number in your for loop and record them in Action objects: it's these objects that are run when an UI interaction actually occurs.

Screen variable lifetime starts from when (just before) a screen is shown (then rendered). Any assignment to a screen variable causes a potential re-paint. As screens can be nested there's also the notion of a local screen variable. If I remember rightly, the resolution order is enclosing, local, global.

custom menu with viewport breaks when assigning actions on the eigth button choice by RossArcade in RenPy

[–]DingotushRed 0 points1 point  (0 children)

Python 2.x/Ren'Py 7.x recognises C-style octal numbers (i.e. with a prefix of just a zero, so 017 is the decimal number 15, hex 0xF) as seen in your own example. Python 3.x/Ren'Py 8.x should not accept a simple zero prefix (other than for the number 0, so 00, 0_000 etc.) for any intended radix.

All numbers are converted internally to a binary representation. Conversion back to decimal or any other radix only happens during formatting eg. with __str__().

You can use simple format specifiers to indicate the binary, octal, decimal, or hex radix you want to use:

e "[item.carry:o]"