Skip to main content

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

Achievements for Ren'Py

In-depth ingame achievement support for Ren'Py that plugs into the Steam backend. · By Feniks

Need Support? Post here! Sticky

A topic by Feniks created Sep 14, 2023 Views: 1,810 Replies: 74
Viewing posts 21 to 27 of 27 · Previous page · First page

Can the achievements code work with steam?

Developer

Yes it works with Steam, provided you download the Steam library support from the Ren'Py launcher and set up your Steam achievements with the same IDs.

Ok thanks!

How to make the notify frame into down right like the steam notification when you get a achievement?

Developer

Hello! You'll need to use screen language to adjust the popup screen. Unfortunately that's out of the scope of what I can help with on the forums here, but you can check out my website for some tutorials on screen language.

Hello! Thank you so much for your work. Is there a way to make it so that an achievement has a hidden description by default, but that description gets unhidden once a condition is reached or that another given achievement is granted? This would be a useful way to, let's say, give hints on how to unlock it without being too spoilery if the player hasn't completed the main story yet. Thanks in advance for your help!

Developer

Heya! That functionality isn't currently included, but it's relatively simple to add a condition property in the constructor (__init__) and update the description property method to account for what's in the condition. Just remember you'll need to use eval() on the condition, and the condition will need to be a string, so it can be evaluated in real-time and not just when the game is launched. Hope that helps get you started!

Thanks so much for the quick response, I'll see what I can do!

Just curious, how could I go about making the achievements change the story? Specifically, how could I make it so something like the Platinum achievement results in unlocking a special ending that you can only get through having the Platinum achievement?

Developer

I'd just check if they have the achievement (i.e. if platinum_achievement.has()) as a condition like you would use anywhere else - you can use it to wrap screen language too to show a button only if the player has the platinum achievement, for example.

(1 edit)

Ah, I'm kind of new at coding especially within Python. I attempted to type "if platinum_achievement.has()" and it ended up just showing an error.
Code itself : 
"

if platinum_achievement.has()

    e "This is a Test"
"
Then the error code

```

I'm sorry, but errors were detected in your script. Please correct the

errors listed below, and try again.

File "game/script.rpy", line 74: reached end of line when expecting ':'.

    if platinum_achievement.has()

                                 ^

Ren'Py Version: Ren'Py 8.3.6.25022803

Tue Mar 11 22:06:59 2025

```


I apologize if this might be a stupid question

Developer

You need a colon at the end of every conditional statement to start a block e.g.

if platinum_achievement.has():
    # stuff

You may want to check out feniksdev.com for some tutorials on conditional statements if you're having trouble!

Different question, just curious but is there a way to hide the progress bar from view? A few achievements i have i want to keep hidden.  i read over the stuff provided but i didn't see any mention of hiding it. unless im blind which happens much too often

Developer

There isn't a built-in option for it, but you're welcome to edit the code. That said, it sounds like you just want a regular achievement and you can track progress yourself via a persistent variable, and grant the achievement when it meets your threshold. 

When I click on an achievement in the achievement menu that hasn't been received yet, it gets unlocked. But if I click it again, it gets removed. How can I fix this?

Developer

Yeah that's intentional! It's this bit:

if config.developer:
    action a.Toggle()

so it only happens during development, not in a built game. It's to help with testing. You can just delete those lines from the achievement_gallery screen to get rid of that.

Okey thanks

Viewing posts 21 to 27 of 27 · Previous page · First page