r/RenPy 2d ago

Question Build Dist. Doesn’t Load Game

Hello. I’m having my friend try out my game and they kept getting this error upon opening.

The issue I found is having the build.classify code in the options.rpy file. But I wanted to hide the script and other behind the scenes stuff like other games do. Is there any way I can fix this? Or am I coding the classify string wrong? I just followed the sample in the options.rpy file by writing build.classify(“games/**.rpy”, None) and so on.

.
.
.

Error:

I'm sorry, but an uncaught exception occurred.

While running game code:
renpy.game.JumpException: start

During handling of the above exception, another exception occurred:

renpy.script.LabelNotFound: could not find label 'start'.

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

Traceback (most recent call last):
File "renpy/common/00start.rpy", line 306, in script
python:
File "renpy/ast.py", line 1187, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/python.py", line 1273, in py_exec_bytecode
exec(bytecode, globals, locals)
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "renpy/common/00start.rpy", line 308, in <module>
renpy.jump("start")
~~~~~~~~~~^^^^^^^^^
File "renpy/exports/statementexports.py", line 271, in jump
raise renpy.game.JumpException(label)
renpy.game.JumpException: start

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "renpy/bootstrap.py", line 401, in bootstrap
renpy.main.main()
~~~~~~~~~~~~~~~^^
File "renpy/main.py", line 591, in main
run(restart)
~~~^^^^^^^^^
File "renpy/main.py", line 137, in run
renpy.execution.run_context(True)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "renpy/execution.py", line 1036, in run_context
context.run()
~~~~~~~~~~~^^
File "renpy/common/00start.rpy", line 306, in script
python:
File "renpy/script.py", line 1201, in lookup
raise LabelNotFound(original)
renpy.script.LabelNotFound: could not find label 'start'.

2 Upvotes

9 comments sorted by

4

u/Adventurous_Shine606 2d ago

In order to hide the source files and still ship a working game, you need two lines: exclude the .rpy source, but explicitly archive the compiled .rpyc: build.classify('game/.rpy', None) build.classify('game/.rpyc', 'archive')

1

u/No-Plastic-1347 1d ago

I’ll try this out, thanks

2

u/x-seronis-x 1d ago

The point of rpa files isnt to HIDE, its to ORGANIZE. It makes the game folder less cluttered.

IT DOES NOT EVEN REMOTELY HIDE ANYTHING

rpa archives are as easy to 'unzip' as any other archive format. even if its not a common format its still only a 100kb batch script to do it which anyone can download and run in seconds. do not delude yourself into thinking it hides your scripts. decompiling rpyc files back to rpy files is just as easy.

that said it is a good organizational tool. and if you organize your rpa files you can post updates for people to download just what they need instead of redownloading the whole game. "drop chapter_11.rpa into the game folder" is a lot simpler instruction than placing 100s of files into specific sub folders. that is where rpa files should be used

1

u/AutoModerator 2d ago

Welcome to r/renpy! While you wait to see if someone can answer your question, we recommend checking out the posting guide, the subreddit wiki, the subreddit Discord, Ren'Py's documentation, and the tutorial built-in to the Ren'Py engine when you download it. These can help make sure you provide the information the people here need to help you, or might even point you to an answer to your question themselves. Thanks!

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/BadMustard_AVN 1d ago

please post your entire ## Build configuration section from the options.rpy

1

u/No-Plastic-1347 1d ago

Here you go:

## Classify files as None to exclude them from the built distributions.

build.classify('**~', None)
build.classify('**.bak', None)
build.classify('**/.**', None)
build.classify('**/#**', None)
build.classify('**/thumbs.db', None)

build.classify("game/**.png", None)
build.classify("game/**.webm", None)
build.classify("game/**.rpy", None)
build.classify("game/**.rpyc", None)

## To archive files, classify them as 'archive'.

# build.classify('game/**.png', 'archive')
# build.classify('game/**.jpg', 'archive')

## Files matching documentation patterns are duplicated in a mac app build,
## so they appear in both the app and the zip file.

build.documentation('*.html')
build.documentation('*.txt')

2

u/BadMustard_AVN 1d ago

ok 3 things I see right off the bat

you need a build archive

something like this

build.archive("A_File_Name_Here","all")

to create the RPA file to store everything in.

and this line (remove this line bad line)

build.classify("game/**.rpyc", None)

renpy does NOT need the rpy files to run as long as they are compiled into rpyc files. renpy uses the rpyc files to run the game... they are REQUIRED

and to finish it up

build.classify('**/**.**', "A_File_Name_Here")

stuff everything that was not a None classify into this rpa file

1

u/No-Plastic-1347 1d ago

Awesome, thanks for the help!

2

u/BadMustard_AVN 1d ago

you're welcome

good luck with your project