Moderator: OpenTTD Developers
RVG is a Game Script that manages towns growth in a new and balanced way, making growth depend on varied cargo delivery (passengers, food, goods, ...) and sustained transportation of passangers and mails. The script supports any Industry NewGRF set. It is born as a combination of keoz's Renewed City Growth GS and Sylf's City Growth Limiter GS.
How this works:
The script only triggers growth in the towns which are already exchanging passengers. Its growth rate is calculated (non linearly) on the basis of the degree of achievement for cargo requirements. If there is more cargo than necessary, it is stockpiled for later use.
The growth will be completely stopped when insufficient amount of limited cargo types (usually passangers and mails) are transported from the city, limiting its growth when the infrastructure is not maintained.
Cargo requirements are not defined for individual cargo types, but for cargo categories. Depending on the used industry set, there are 3 to 5 categories. It doesn't matter which type of cargo you deliver to achieve category goals. The cargo must be delivered to a station accepting that cargo which is also close to the town. The cargo categories are described in StoryBook, for example FIRS 3 Extreme is defined as below:
Each town decides monthly on a best contributor, who contributed the most to fulfilling the town categories. The contributor then receives points for the towns for growing them over their previous maximum population.
The game script also contains other useful additions:
- Industry NewGRFs - explicit support for more than 30 different economies - Baseset, FIRS, ECS, YETI, NAIS, ITI, XIS, NAIS, OTIS, IOTC, LJI
- Randomization - chose between 13 types of cargo/industry randomization
- Eternal love - maintain good relations with town autorities even after committing atrocities
- Industry stabilizer - maintain a set amount of raw industries on the map, useful for creating maps with only raw industries
- ToyLib - allow toy AI to survive no matter what they do
For more information, read the readme file:
If you are interested in providing a translation, you can do it by modifying this translation template and posting it to the forum topic, direct message or by creating a new issue in RVG github with the modified file included.
By sending the translation file you agree that the translation will be used for RVG game script and be released under GPLv2 license.
Currently available languages:
- French (rmnvgr)
- Simplified Chinese (SuperCirno)
- Polish (qamil95)
- OpenTTD, v. 1.10.x or newer.
- GS SuperLib, v. 40, ToyLib, v. 1, Script Communication for GS v. 45 (you can find it on BaNaNaS, also accessible through OTTD's "Online Content").
- Industry sets: you can use any industry NewGRF
- these are specifically supported industry NewGRFs: Baseset (all climates), FIRS 1.4, 2, 3, 4.3 (all economies), ECS 1.2 (any combination), YETI 0.1.6 (all except Simplified), NAIS 1.0.6, ITI 1.6, ITI 2, XIS 0.6, IOTC 0.1, LJI 0.1, OTIS 03, WRBI 1200.
- using RVG with any other unsupported industry set will contain proceduraly generated categories, which may not be optimal
The latest version can be downloaded from BaNaNaS or from the changelog below.
The development with source codes can be found in github: https://github.com/F1rrel/RenewedVillageGrowth.
Changelogs and download links:
Version 8.1 (2022/05/08)
- download link
- new: ITI v2 support (2TallTyler)
- fix: ECS industries discovery causing procedural cargo generation to fail (2TallTyler)
- fix: Industry ascending randomization loading
Version 8.0 (2022/03/13)
- download link
- new: Welcome page with description of how the GS works and where to find information
- new: Options to change minimum population for unlocking categories. Sorts categories based on selected values
- new: Option to allow zero days growth rate
- new: Randomization ascending and descending
- new: WRBI 1200 predefined cargo categories
- new: Custom story page usefull for server rules and other
- new: Better handling of warnings that cause GS to stop by showing story page with the warning
- modified: OTIS 03 support (audunmaroey)
- modified: Minimum supply percentage option is now minimum fulfilled percentage (lower is easier)
- fix: FIRS4 Steeltown cargo categories (qamil95)
- fix: Global goal list not removing bankrupt/merged company growth points
- fix: Consider cargo list length to determine correct economy
I like the idea, it is a bit like TF2 works. I wanted to do something similar. It can be done by storing a uint32 number with one bit per cargo type, so it is not too demanding for saving and it is easily reconstructed. The cargo types selected for specific town can be displayed as third page of town info. There can be 1-3 cargos per category (limited by displayed parameters).
Will try to work on it for the next release, but don't expect it to be very soon.
I think the current setup is nice with food being a second level as a processed form of a pure stock like fish, fruit, livestock or milk.
You need to have a factory (brewery, dairy or stovkyard etcetera) in or near the town (the factory starts with the towns name) that you can supply to make it count towards the growth goal. You do not need to bring the raw ingredients to the town buildings themselves.
Having a raw material go into an industry that produces food in the same town area means I do not need to build a big network. I.e. a plantation to cider mill will provide two categories. Having the goals just be what you can deliver to the town or at least having options to configure the cargos would be nice.
Btw, the readme states food in cat 2, not in the later category.
Additional q: why are the requirements so low? I’m at 800 ppl and it says for general food 5/100/120 for the required/supplied/stocked. This means it only requires 5 units of general food per month? And it’s storing way more than 10x that amount
It works a bit differently - in this script (similar to the base RCG), counted are delivery to stations assigned to a specific city, not to enterprises with the city's name.Boukev wrote: ↑21 May 2020 08:07 You need to have a factory (brewery, dairy or stovkyard etcetera) in or near the town (the factory starts with the towns name) that you can supply to make it count towards the growth goal. You do not need to bring the raw ingredients to the town buildings themselves.
Changing the station name will not change the city to which it is assigned. If the factory is located near two cities, you need note attention to which city the station will be assigned during construction.
and fix/help with that?
EDIT: I edited the script, changed option to CONFIG_INGAME, seems to have worked, started scenario, saved, restored the script from bananas and it looks ok
As Boukev said, I considered the food and goods as processed and I wanted to have enought diversity in each category.
You can change the categories yourself, it is easy:
1. Start game with the industry you want to modify and Debug log: Cargo. This will print you into AI/GS Debug all cargo types and their indexes.
2. Go to (on Windows) /Documents/OpenTTD\content_download\game and uzip the RVG game script.
3. Open cargo.nut, find the industry you want to modify in function DefineCargosBySettings().
::CargoCat - each array represents one cargo category and numbers represent cargo indexes.
::CargoCatList - names associated with the category
::CargoMinPopDemand - at which population a category will be enabled
::CargoPermille - cargo demand per thousand population
::CargoDecay - percentage of cargo to be decayed per month
4. Save file and create new game with these settings
I will need to look into it. I changed the minimum TGR to 880 and as it seems it broke some calculations. You can adjust the required amount by adjusting the difficulty level. With the stockpiling, it seems that sometimes it will limit it to 10x and sometimes not.
Before creating scenario, you want to have game script active and setup correctly, because all game script parameters are saved with the scenario as well as information about the game script.
The parameter "Which industry set is being used" is supposed to be grayed out. As well as you cant change FIRS for NAIS GRF mid game, because it would break the game, you cant do it in a GS. The industry information is used during game script initialization. You may see correct categories in the story book, because that is rewritten on game load, but towns are not reinitialized, so might happen the categories inside the script are still of the old format or something is broken.
The script showed "Baseline: Temperate" and it couldn't been changed there
and when starting the game script was complaining that industry set does not match Temperate when starting the game but it was not possible to change at any time.
Forcing it (through script editing) to "NARS 1.0.6: North America" in the Scenario Editor seems to have worked though,
playing the scenario now and so far not having any issues
Also I am heavily editing the script, for example make the passengers transported limiter to be a rolling average, instead of the last month, because my cities stopped growing because my transportation was mostly ship based, so a ship would come, carry off 100% of passengers, next month would be 0, then another arrive... the way the script worked was resulting in city never growing, because it would start growing some days before month end, but then stop because transported last month was 0 again.
I understand what you did there and you are free to modify the script. I gave it a thought and I will not change it to moving average or to have a grace period, because it would almost remove its meaning. If you want to have the city growing, you have to provide regular service. If you achieve at least 1 ship per month, which should not be that difficult, the citizens will be happy with your service and the city will grow.speeder wrote: ↑30 May 2020 23:11 Also I am heavily editing the script, for example make the passengers transported limiter to be a rolling average, instead of the last month, because my cities stopped growing because my transportation was mostly ship based, so a ship would come, carry off 100% of passengers, next month would be 0, then another arrive... the way the script worked was resulting in city never growing, because it would start growing some days before month end, but then stop because transported last month was 0 again.
If you feel like the town is too small for that many ships, you can always increase the number for "Minimum size of town before the limit rules kicks in" parameter.
I'm not sure how the cargo distribution works, though.
I've been supplying food to this city but for some reason it's always saying 43/0/0. Is there a specific place within the city I need to supply? I'm just dropping it off at the train station in the city - which accepts it.
Here's the other view in case it matters:
(I decreased the passenger and mail requirements to 55% while I learn how to play with this GS).
It seems like the town nearby is stealing the food... I think.
I'm not supplying food to this town.
It's also quite far and it's not receiving the passengers from the same train station.
For FIRS 3, I put food and goods in Transformed industrial goods category to make it more interesting. So supplying food will not make it grow but for example livestock will. You can find the required cargo types for each category in the Story Book. Here is FIRS 3 Extreme as an example.
For the town to receive the cargo that the town houses do not accept, like the livestock, you need to supply a factory that is close to that town and accepts the cargo type. That is why the other town receives some cargo in food category, it is supplied by a cargo from that category.
For more information on how the script works please read the supplied README file. You can find it on first post of this thread or in game where you select game scripts.
The only thing that's missing is the competitive mode that City Builder script had. With that, this would be perfect.
This script is about building all cities on the map, not only one selected city as the city builders work. So the competitive style of city builder is not suitable for this script. This script is more suited for cooperative gameplay, you can set a goal for example to reach million population on a map and try to achieve it together.
If you have an idea on how to implement the competitive aspect, you are free to suggest it or fork it.
Users browsing this forum: No registered users and 3 guests