Introduction to Ren'Geon
Hey folks, hope you are all doing well. I'd actually intended to post this back in March but...well. It was delayed until now (October 2020.) I've been working on this off and on for a while. The first iteration you can see of it is in a LemmaSoft post from March 2017 when I was bumbling my way through stuff. I'm the first to admit that I'm not great at coding stuff, but I try to get better as time goes on. That is to say, I'm not great at Python or Ren'Py but they're the closest I can get to doing any code despite years of trying to learn it.
So the aforementioned thread helped me get to this result:
init python: # this will run before the game loads def roll_stats(): # the name of the function a = renpy.random.randint(1, 6) # first roll of d6 b = renpy.random.randint(1, 6) # second roll of d6 c = renpy.random.randint(1, 6) # third roll of d6 d = renpy.random.randint(1, 6) # fourth roll of d6 list = [a, b, c, d] # list the resulting rolls list.sort() # sort the rolls from larger to smaller add = sum(list[1:3]) # add the three highest rolls return add # return sum of add default physical = 0 # define default strength stat label start: $ physical = roll_stats() # determine physical stat by using roll_stats() function
What the above function does is roll four die (d6), drop the lowest result and add the remaining for an output, as one might do for rolling their base stats at the beginning of character creation. This makes use of renpy.random, which is different from the standard Python random module.
Later in April 2017 I posted the following thread on Lemmasoft, expanding the original concept.
The following would be placed in options.rpy
init python: def roll_stats(): a = renpy.random.randint(1, 6) b = renpy.random.randint(1, 6) c = renpy.random.randint(1, 6) d = renpy.random.randint(1, 6) list = [a, b, c, d] list.sort() add = sum(list[1:4]) return add default physical= 0 default agility = 0 default endurance = 0 default charm = 0 default mental = 0 default perception = 0 default movement = 0 default ability = 0
To roll your initial stats in the script.rpy file:
$ physical = roll_stats() $ agility = roll_stats() $ endurance = roll_stats() $ charm = roll_stats() $ mental = roll_stats() $ perception = roll_stats() "Your physical is [physical]. Your Agility is [agility]. Your endurance is [endurance]. Your charm is [charm]. Your mental is [mental]. Your perception is [perception]."
To choose a race from the core races in the species_select.rpy file:
label species_select: menu: dm "Now let's pick a species." "Dragonfriendos": $ race = "Dragonfriendos" $ language_Humanish = True $ language_draconic = True $ physical += 2 $ charm += 1 $ movement += 30 "You chose Dragonfriendos! You speak Humanish and Draconic languages. Your physical has increased by two to become [physical]. Meanwhile your charm has increased by one, becoming [charm]. Your movement is [movement]." jump job_select "Dwarf": $ race = "Dwarf" $ language_Humanish = True $ language_dwarvish = True $ endurance += 2 $ movement += 25 $ alteredvision += 60 #$ size = medium #advantage on saving throws against poison #resistance against poison #proficiency with battleaxe, handaxe, light hammer, warhammer #tool proficiency of choice: smith, brewer, or mason #Stonecunning: Whenever you make an mental (History) check related to the origin of stonework, you are considered proficient in the History skill and add double your proficiency bonus to the check, instead of your normal proficiency bonus. "You chose Dwarf! You speak Humanish and Dwarvish languages. Your endurance has increased by two to become [endurance]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select "Fae": $ race = "Fae" $ language_Humanish = True $ language_Fae = True $ agility += 2 $ movement += 30 $ alteredvision += 60 "You chose Fae! You speak Humanish and Faerish languages. Your agility has increased by two to become [agility]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select "Gnome": $ race = "Gnome" $ language_Humanish = True $ language_gnomish = True $ mental += 2 $ movement += 25 $ alteredvision += 60 "You chose Gnome! You speak Humanish and Gnomish languages. Your mental has increased by two to become [mental]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select "Fae-touched": $ race = "Fae-touched" $ language_Humanish = True $ language_Fae = True #one extra language of choice $ charm += 2 #choose two other ability scores to increase by 1. $ movement += 30 $ alteredvision += 60 "You chose Fae-touched! You speak Humanish and Faerish languages. Your charm has increased by two to become [charm]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select "Tusked": $ race = "Tusked" $ language_Humanish = True $ language_orc = True $ physical += 2 $ endurance += 1 $ movement += 30 $ alteredvision += 60 "You chose Tusked! You speak Humanish and Tusky languages. Your physical has increased by two to become [physical]. Meanwhile your endurance has increased by one to become [endurance]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select "Weefriendos": $ race = "Weefriendos" $ language_Humanish = True $ language_Weefriendos = True $ charm += 2 $ movement += 25 "You chose Weefriendos! You speak Humanish and Weefriendos languages. Your charm has increased by two to become [charm]. Your movement is [movement]." jump job_select "Human": $ race = "Human" $ language_Humanish = True $ physical += 1 $ agility += 1 $ endurance += 1 $ charm += 1 $ mental += 1 $ perception += 1 $ movement += 30 "You chose Human! You speak Humanish language. Each of your ability scores has increased by 1. Your physical is now [physical]. Your agility is now [agility]. Your endurance is now [endurance]. Your charm is now [charm]. Your mental is now [mental]. Your perception is now [perception]. Your movement is now [movement]." jump job_select "Demon-touched": $ race = "Demon-touched" $ language_Humanish = True $ language_demonic = True $ charm += 2 $ mental += 1 $ movement += 30 $ alteredvision += 60 "You chose Demon-touched! You speak Humanish and demonic languages. Your charm has incrased by two to become [charm]. Meanwhile your mental has increased by one to become [mental]. Your movement is [movement]. You have Dark Vision up to [alteredvision] feet." jump job_select
In the current version I've moved the species script bits from script.rpy to species_select.rpy and have been trying to make some quality of life improvements. Progress has been slow due to 2020 being the way it is and my poor health also being the way it is.
I hope this has provided some insight into the process of making this tool and I hope that I'll be able to add to it and make improvements as time goes on.
Thank you for reading.
Important: I've updated this page as of January 17, 2023 to make temporary adjustments in response to recent news about the OGL. I will update to further polish and make this project distinct from any D20 OGL to prevent issues in the future.
Files
Get Ren'Geon
Ren'Geon
A d20-based OGL tool made in Ren'Py
Status | In development |
Category | Assets |
Author | MysteryCorgi |
Genre | Visual Novel |
Tags | Ren'Py |
Leave a comment
Log in with itch.io to leave a comment.