Create your AI Cum Slut -70% for Mother's Day
x

Mod RPGM Sana Revamped [v0.1 Test, v0.1 Light Version] [WIP] [DevLog Thread]

5.00 star(s) 3 Votes

tygct

Member
Jun 6, 2017
154
816
I haven't shared any devlogs yet because what I've been doing isn't too big either.

Still working on integrating all components into the game, on top of that I have been sick in early April which has slowed down development a bit.

Integration checklist as for now ((y) done, (n) not done)
(y) Evaluators (data transfer) module
(y) Localization module
-- NEW: Added a Localization Manager
---- Merges all translation data (from base game and mods)
---- Scans and replaces recursively nested translations inside a translation (avoiding infinite loops)
---- Provides a list of language IDs for the language setting dinamically (english, spanish, spanish (latam), portuguese, etc...), allows modders to just create a translation file instead of creating a script to insert the language ID into the settings
---- Builds translation data automatically everytime the database is built/changed in any way (no need to restart the game)
(n) Configuration module (FKA Settings module)
-- Integrated the configuration module into the global scope
---- Allows to set/get config values anywhere in the code
-- NEW: Game settings have been separated into individual files determined by their context
---- Instead of having a single JSON file, settings are now saved into individual JSON files determined by their context
---- Simplifies the JSON file, since mods also stores settings, it could get way too big and bothersome to maintain
-- NEW: Configuration menu JSON files
---- Allows to build the settings menu using JSON files
-- Simplified config creation
---- Moved the creation of the menu into JSON files
---- You can compare for yourselves checking these examples below:
You don't have permission to view the spoiler content. Log in or register now.
You don't have permission to view the spoiler content. Log in or register now.
-- NEW: Configuration value verification
---- Allows to verify a value when changing the configuration into another value
---- For example, the multiplier value can only go from 0.1 to 2.0 or the difficulty being 'easy', 'normal' or 'hard'
-- NEW: On setting change handler
---- Adds a handler to execute when the setting value changes
---- Example: The audio manager uses this to apply the volume to currently playing audio tracks
(y) Console commands module
-- Integrated the console module into the global scope
---- Allows to create/call/alias commands anywhere in the code
-- Simplified console command creation
---- Example:
Code:
console_create(
  'help',
  'Console Command Help',
  "help [COMMAND_NAME]\nman [COMMAND_NAME]",
  "Provides information about a command that matches the given argument\n" \
  'In case no arguments are given it shows a list of all commands'
) do |args|
  # Gets command name
  name = args.shift
  # Determines help behavior
  if name.nil?
    # Print list of all commands
    console_write('Available commands: ')
    Engine::Console.commands.each do |command|
      console_write("#{command} - #{Engine::Console.command_header(command)}")
    end
  else
    # A name was given, search info about the command
    info = Engine::Console.command_info(name)
    if info.empty?
      console_write("Unknown command: \"#{name}\"")
    else
      info.each do |str|
        console_write(str)
      end
      console_write('--------------------------')
    end
  end
end
# Creates an alias for help
console_alias('help', 'man')
The configuration module is not finished because, in the attempt to simplify the creation of settings, I have moved the creation of settings menus into JSON files, so I need to parse it and build the menu with this data, also, I have created a new type of record for the configuration menus inside the mods system, so it will be detected automatically by the mod system, you won't need to register them manually through code, unfinished example of the game's configuration menu:
JSON:
{
    "menu_id": "sana",
    "menu_display_name": "$MENU_CFG_GAME_NAME",
    "menu_description": "$MENU_CFG_GAME_DESC",
    "menu_pages": [
        {
            "page_display_name": "$MENU_CFG_GAME_GENERAL",
            "page_description": "$MENU_CFG_GAME_GENERAL_DESC",
            "page_entries": [
                {
                    "entry_type": "list",
                    "entry_display_name": "$MENU_CFG_GAME_GENERAL_LANG",
                    "entry_description": "$MENU_CFG_GAME_GENERAL_LANG_DESC",
                    "entry_options": {
                        "list_dynamic": "Game::Localization.get_locales"
                    },
                    "entry_config_context": "sana",
                    "entry_config_name": "language"
                }
            ]
        },
        {
            "page_display_name": "$MENU_CFG_GAME_AUDIO",
            "page_description": "$MENU_CFG_GAME_AUDIO_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_VISUAL",
            "page_description": "$MENU_CFG_GAME_VISUAL_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_ADVANCED",
            "page_description": "$MENU_CFG_GAME_ADVANCED_DESC",
            "page_entries": []
        }
    ]
}
Config menus also supports localized strings as you can see in the display name attributes.

Here's a more completed example:
JSON:
{
    "menu_id": "jane_doe_side_stories_cfg_menu",
    "menu_display_name": "Side Stories",
    "menu_description": "Side Stories Mod Settings",
    "menu_pages": [
        {
            "page_display_name": "General",
            "page_description": "General Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Global Switch"
                },
                {
                    "entry_type": "switch",
                    "entry_display_name": "Status",
                    "entry_description": "Enables/Disables the mod",
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "status"
                },
                {
                    "entry_type": "space",
                    "entry_options": {
                        "space_lines": 2
                    }
                },
                {
                    "entry_type": "section",
                    "entry_display_name": "General"
                },
                {
                    "entry_type": "list",
                    "entry_display_name": "Difficulty",
                    "entry_description": "Sets the difficulty",
                    "entry_options": {
                        "list_fixed": {
                            "Easy": "easy",
                            "Normal": "normal",
                            "Hard": "hard"
                        }
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "difficulty"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Progression Multiplier",
                    "entry_description": "Sets the progression multiplier value",
                    "entry_options": {
                        "slider_min": 0.1,
                        "slider_max": 2.0,
                        "slider_step": 0.1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "multiplier"
                },
                {
                    "entry_type": "input",
                    "entry_display_name": "Childhood Friend Name",
                    "entry_description": "Sets the NPC name",
                    "entry_options": {
                        "input_max_length": 10
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "childhood_friend"
                }
            ]
        },
        {
            "page_display_name": "Debug",
            "page_description": "Debug Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Debug"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Debug Level",
                    "entry_description": "Sets the mod's debug level",
                    "entry_options": {
                        "slider_min": 0,
                        "slider_max": 2,
                        "slider_step": 1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "log_level"
                }
            ]
        }
    ]
}
I fixed some bugs on the audio manager too, when changing the volume value it was not applied to audio tracks that were already playing.

Like I said, configuration values are now stored into specific config values, example:
Config/sana.json
JSON:
{
  "language": "english",
  "master_volume": 0,
  "bgm_volume": 100,
  "bgs_volume": 100,
  "me_volume": 100,
  "se_volume": 100,
  "sex_pleasure_tick": 2.5,
  "sex_min_speed": 1,
  "sex_max_speed": 10,
  "sex_menu_status": true,
  "sex_difficulty": "normal"
}
Config/jane_doe_side_stories.json
JSON:
{
  "status": false,
  "difficulty": "easy",
  "childhood_friend": "Bob",
  "multiplier": 1.0,
  "log_level": 1
}
Config/john_doe_my_first_mod.json
JSON:
{
  "enabled": false,
  "extra": false
}
This not only simplifies maintaining configuration files but also makes it easier to share (or backup) a configuration file for one mod or several mods.

Also the configuration files persist even if you delete the mod and reinstall it, to save your settings in case you reinstall it.

Hopefully next devlog will be about the sex framework, thank you for y'all patience with this project tho lol
 

Bluesent

Member
Jul 23, 2020
385
526
I haven't shared any devlogs yet because what I've been doing isn't too big either.

Still working on integrating all components into the game, on top of that I have been sick in early April which has slowed down development a bit.

Integration checklist as for now ((y) done, (n) not done)
(y) Evaluators (data transfer) module
(y) Localization module
-- NEW: Added a Localization Manager
---- Merges all translation data (from base game and mods)
---- Scans and replaces recursively nested translations inside a translation (avoiding infinite loops)
---- Provides a list of language IDs for the language setting dinamically (english, spanish, spanish (latam), portuguese, etc...), allows modders to just create a translation file instead of creating a script to insert the language ID into the settings
---- Builds translation data automatically everytime the database is built/changed in any way (no need to restart the game)
(n) Configuration module (FKA Settings module)
-- Integrated the configuration module into the global scope
---- Allows to set/get config values anywhere in the code
-- NEW: Game settings have been separated into individual files determined by their context
---- Instead of having a single JSON file, settings are now saved into individual JSON files determined by their context
---- Simplifies the JSON file, since mods also stores settings, it could get way too big and bothersome to maintain
-- NEW: Configuration menu JSON files
---- Allows to build the settings menu using JSON files
-- Simplified config creation
---- Moved the creation of the menu into JSON files
---- You can compare for yourselves checking these examples below:
You don't have permission to view the spoiler content. Log in or register now.
You don't have permission to view the spoiler content. Log in or register now.
-- NEW: Configuration value verification
---- Allows to verify a value when changing the configuration into another value
---- For example, the multiplier value can only go from 0.1 to 2.0 or the difficulty being 'easy', 'normal' or 'hard'
-- NEW: On setting change handler
---- Adds a handler to execute when the setting value changes
---- Example: The audio manager uses this to apply the volume to currently playing audio tracks
(y) Console commands module
-- Integrated the console module into the global scope
---- Allows to create/call/alias commands anywhere in the code
-- Simplified console command creation
---- Example:
Code:
console_create(
  'help',
  'Console Command Help',
  "help [COMMAND_NAME]\nman [COMMAND_NAME]",
  "Provides information about a command that matches the given argument\n" \
  'In case no arguments are given it shows a list of all commands'
) do |args|
  # Gets command name
  name = args.shift
  # Determines help behavior
  if name.nil?
    # Print list of all commands
    console_write('Available commands: ')
    Engine::Console.commands.each do |command|
      console_write("#{command} - #{Engine::Console.command_header(command)}")
    end
  else
    # A name was given, search info about the command
    info = Engine::Console.command_info(name)
    if info.empty?
      console_write("Unknown command: \"#{name}\"")
    else
      info.each do |str|
        console_write(str)
      end
      console_write('--------------------------')
    end
  end
end
# Creates an alias for help
console_alias('help', 'man')
The configuration module is not finished because, in the attempt to simplify the creation of settings, I have moved the creation of settings menus into JSON files, so I need to parse it and build the menu with this data, also, I have created a new type of record for the configuration menus inside the mods system, so it will be detected automatically by the mod system, you won't need to register them manually through code, unfinished example of the game's configuration menu:
JSON:
{
    "menu_id": "sana",
    "menu_display_name": "$MENU_CFG_GAME_NAME",
    "menu_description": "$MENU_CFG_GAME_DESC",
    "menu_pages": [
        {
            "page_display_name": "$MENU_CFG_GAME_GENERAL",
            "page_description": "$MENU_CFG_GAME_GENERAL_DESC",
            "page_entries": [
                {
                    "entry_type": "list",
                    "entry_display_name": "$MENU_CFG_GAME_GENERAL_LANG",
                    "entry_description": "$MENU_CFG_GAME_GENERAL_LANG_DESC",
                    "entry_options": {
                        "list_dynamic": "Game::Localization.get_locales"
                    },
                    "entry_config_context": "sana",
                    "entry_config_name": "language"
                }
            ]
        },
        {
            "page_display_name": "$MENU_CFG_GAME_AUDIO",
            "page_description": "$MENU_CFG_GAME_AUDIO_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_VISUAL",
            "page_description": "$MENU_CFG_GAME_VISUAL_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_ADVANCED",
            "page_description": "$MENU_CFG_GAME_ADVANCED_DESC",
            "page_entries": []
        }
    ]
}
Config menus also supports localized strings as you can see in the display name attributes.

Here's a more completed example:
JSON:
{
    "menu_id": "jane_doe_side_stories_cfg_menu",
    "menu_display_name": "Side Stories",
    "menu_description": "Side Stories Mod Settings",
    "menu_pages": [
        {
            "page_display_name": "General",
            "page_description": "General Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Global Switch"
                },
                {
                    "entry_type": "switch",
                    "entry_display_name": "Status",
                    "entry_description": "Enables/Disables the mod",
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "status"
                },
                {
                    "entry_type": "space",
                    "entry_options": {
                        "space_lines": 2
                    }
                },
                {
                    "entry_type": "section",
                    "entry_display_name": "General"
                },
                {
                    "entry_type": "list",
                    "entry_display_name": "Difficulty",
                    "entry_description": "Sets the difficulty",
                    "entry_options": {
                        "list_fixed": {
                            "Easy": "easy",
                            "Normal": "normal",
                            "Hard": "hard"
                        }
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "difficulty"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Progression Multiplier",
                    "entry_description": "Sets the progression multiplier value",
                    "entry_options": {
                        "slider_min": 0.1,
                        "slider_max": 2.0,
                        "slider_step": 0.1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "multiplier"
                },
                {
                    "entry_type": "input",
                    "entry_display_name": "Childhood Friend Name",
                    "entry_description": "Sets the NPC name",
                    "entry_options": {
                        "input_max_length": 10
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "childhood_friend"
                }
            ]
        },
        {
            "page_display_name": "Debug",
            "page_description": "Debug Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Debug"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Debug Level",
                    "entry_description": "Sets the mod's debug level",
                    "entry_options": {
                        "slider_min": 0,
                        "slider_max": 2,
                        "slider_step": 1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "log_level"
                }
            ]
        }
    ]
}
I fixed some bugs on the audio manager too, when changing the volume value it was not applied to audio tracks that were already playing.

Like I said, configuration values are now stored into specific config values, example:
Config/sana.json
JSON:
{
  "language": "english",
  "master_volume": 0,
  "bgm_volume": 100,
  "bgs_volume": 100,
  "me_volume": 100,
  "se_volume": 100,
  "sex_pleasure_tick": 2.5,
  "sex_min_speed": 1,
  "sex_max_speed": 10,
  "sex_menu_status": true,
  "sex_difficulty": "normal"
}
Config/jane_doe_side_stories.json
JSON:
{
  "status": false,
  "difficulty": "easy",
  "childhood_friend": "Bob",
  "multiplier": 1.0,
  "log_level": 1
}
Config/john_doe_my_first_mod.json
JSON:
{
  "enabled": false,
  "extra": false
}
This not only simplifies maintaining configuration files but also makes it easier to share (or backup) a configuration file for one mod or several mods.

Also the configuration files persist even if you delete the mod and reinstall it, to save your settings in case you reinstall it.

Hopefully next devlog will be about the sex framework, thank you for y'all patience with this project tho lol
gonna be honest chief. i understood exactly 0% of that, glad to see you active though!
 

Hyde Onedead

Newbie
May 3, 2024
84
60
I haven't shared any devlogs yet because what I've been doing isn't too big either.

Still working on integrating all components into the game, on top of that I have been sick in early April which has slowed down development a bit.

Integration checklist as for now ((y) done, (n) not done)
(y) Evaluators (data transfer) module
(y) Localization module
-- NEW: Added a Localization Manager
---- Merges all translation data (from base game and mods)
---- Scans and replaces recursively nested translations inside a translation (avoiding infinite loops)
---- Provides a list of language IDs for the language setting dinamically (english, spanish, spanish (latam), portuguese, etc...), allows modders to just create a translation file instead of creating a script to insert the language ID into the settings
---- Builds translation data automatically everytime the database is built/changed in any way (no need to restart the game)
(n) Configuration module (FKA Settings module)
-- Integrated the configuration module into the global scope
---- Allows to set/get config values anywhere in the code
-- NEW: Game settings have been separated into individual files determined by their context
---- Instead of having a single JSON file, settings are now saved into individual JSON files determined by their context
---- Simplifies the JSON file, since mods also stores settings, it could get way too big and bothersome to maintain
-- NEW: Configuration menu JSON files
---- Allows to build the settings menu using JSON files
-- Simplified config creation
---- Moved the creation of the menu into JSON files
---- You can compare for yourselves checking these examples below:
You don't have permission to view the spoiler content. Log in or register now.
You don't have permission to view the spoiler content. Log in or register now.
-- NEW: Configuration value verification
---- Allows to verify a value when changing the configuration into another value
---- For example, the multiplier value can only go from 0.1 to 2.0 or the difficulty being 'easy', 'normal' or 'hard'
-- NEW: On setting change handler
---- Adds a handler to execute when the setting value changes
---- Example: The audio manager uses this to apply the volume to currently playing audio tracks
(y) Console commands module
-- Integrated the console module into the global scope
---- Allows to create/call/alias commands anywhere in the code
-- Simplified console command creation
---- Example:
Code:
console_create(
  'help',
  'Console Command Help',
  "help [COMMAND_NAME]\nman [COMMAND_NAME]",
  "Provides information about a command that matches the given argument\n" \
  'In case no arguments are given it shows a list of all commands'
) do |args|
  # Gets command name
  name = args.shift
  # Determines help behavior
  if name.nil?
    # Print list of all commands
    console_write('Available commands: ')
    Engine::Console.commands.each do |command|
      console_write("#{command} - #{Engine::Console.command_header(command)}")
    end
  else
    # A name was given, search info about the command
    info = Engine::Console.command_info(name)
    if info.empty?
      console_write("Unknown command: \"#{name}\"")
    else
      info.each do |str|
        console_write(str)
      end
      console_write('--------------------------')
    end
  end
end
# Creates an alias for help
console_alias('help', 'man')
The configuration module is not finished because, in the attempt to simplify the creation of settings, I have moved the creation of settings menus into JSON files, so I need to parse it and build the menu with this data, also, I have created a new type of record for the configuration menus inside the mods system, so it will be detected automatically by the mod system, you won't need to register them manually through code, unfinished example of the game's configuration menu:
JSON:
{
    "menu_id": "sana",
    "menu_display_name": "$MENU_CFG_GAME_NAME",
    "menu_description": "$MENU_CFG_GAME_DESC",
    "menu_pages": [
        {
            "page_display_name": "$MENU_CFG_GAME_GENERAL",
            "page_description": "$MENU_CFG_GAME_GENERAL_DESC",
            "page_entries": [
                {
                    "entry_type": "list",
                    "entry_display_name": "$MENU_CFG_GAME_GENERAL_LANG",
                    "entry_description": "$MENU_CFG_GAME_GENERAL_LANG_DESC",
                    "entry_options": {
                        "list_dynamic": "Game::Localization.get_locales"
                    },
                    "entry_config_context": "sana",
                    "entry_config_name": "language"
                }
            ]
        },
        {
            "page_display_name": "$MENU_CFG_GAME_AUDIO",
            "page_description": "$MENU_CFG_GAME_AUDIO_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_VISUAL",
            "page_description": "$MENU_CFG_GAME_VISUAL_DESC",
            "page_entries": []
        },
        {
            "page_display_name": "$MENU_CFG_GAME_ADVANCED",
            "page_description": "$MENU_CFG_GAME_ADVANCED_DESC",
            "page_entries": []
        }
    ]
}
Config menus also supports localized strings as you can see in the display name attributes.

Here's a more completed example:
JSON:
{
    "menu_id": "jane_doe_side_stories_cfg_menu",
    "menu_display_name": "Side Stories",
    "menu_description": "Side Stories Mod Settings",
    "menu_pages": [
        {
            "page_display_name": "General",
            "page_description": "General Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Global Switch"
                },
                {
                    "entry_type": "switch",
                    "entry_display_name": "Status",
                    "entry_description": "Enables/Disables the mod",
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "status"
                },
                {
                    "entry_type": "space",
                    "entry_options": {
                        "space_lines": 2
                    }
                },
                {
                    "entry_type": "section",
                    "entry_display_name": "General"
                },
                {
                    "entry_type": "list",
                    "entry_display_name": "Difficulty",
                    "entry_description": "Sets the difficulty",
                    "entry_options": {
                        "list_fixed": {
                            "Easy": "easy",
                            "Normal": "normal",
                            "Hard": "hard"
                        }
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "difficulty"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Progression Multiplier",
                    "entry_description": "Sets the progression multiplier value",
                    "entry_options": {
                        "slider_min": 0.1,
                        "slider_max": 2.0,
                        "slider_step": 0.1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "multiplier"
                },
                {
                    "entry_type": "input",
                    "entry_display_name": "Childhood Friend Name",
                    "entry_description": "Sets the NPC name",
                    "entry_options": {
                        "input_max_length": 10
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "childhood_friend"
                }
            ]
        },
        {
            "page_display_name": "Debug",
            "page_description": "Debug Settings",
            "page_entries": [
                {
                    "entry_type": "section",
                    "entry_display_name": "Debug"
                },
                {
                    "entry_type": "slider",
                    "entry_display_name": "Debug Level",
                    "entry_description": "Sets the mod's debug level",
                    "entry_options": {
                        "slider_min": 0,
                        "slider_max": 2,
                        "slider_step": 1
                    },
                    "entry_config_context": "jane_doe_side_stories",
                    "entry_config_name": "log_level"
                }
            ]
        }
    ]
}
I fixed some bugs on the audio manager too, when changing the volume value it was not applied to audio tracks that were already playing.

Like I said, configuration values are now stored into specific config values, example:
Config/sana.json
JSON:
{
  "language": "english",
  "master_volume": 0,
  "bgm_volume": 100,
  "bgs_volume": 100,
  "me_volume": 100,
  "se_volume": 100,
  "sex_pleasure_tick": 2.5,
  "sex_min_speed": 1,
  "sex_max_speed": 10,
  "sex_menu_status": true,
  "sex_difficulty": "normal"
}
Config/jane_doe_side_stories.json
JSON:
{
  "status": false,
  "difficulty": "easy",
  "childhood_friend": "Bob",
  "multiplier": 1.0,
  "log_level": 1
}
Config/john_doe_my_first_mod.json
JSON:
{
  "enabled": false,
  "extra": false
}
This not only simplifies maintaining configuration files but also makes it easier to share (or backup) a configuration file for one mod or several mods.

Also the configuration files persist even if you delete the mod and reinstall it, to save your settings in case you reinstall it.

Hopefully next devlog will be about the sex framework, thank you for y'all patience with this project tho lol
I don't understand anything, but it's very interesting. By the way, what new characters are we talking about, if I may ask?
 
Jul 30, 2018
296
341
Fair enough haha! That's why I did not post any devlogs for this because this info is not intended for end users, prolly only modders, at least it helps to show that I am still working on the project!
i start studying coding stuff as a hobby because i like how you did all those and it pique my interest.
my knowledge about all this is as good as anyone, 0% xD
i hope with more time and experience, i can understand all of those technical back door to our beloved game.
thanks for the update!
 

tygct

Member
Jun 6, 2017
154
816
I don't understand anything, but it's very interesting. By the way, what new characters are we talking about, if I may ask?
Ryuna_the_2nd did manage to replicate Breast Mafia art and has drawn a few new girls that could have been in the game perfectly and does not seem out of place at all, they are planned for v1.0 as side girls with a side quest so they won't appear on test releases.

I have already the backstory written for some of them too, but I'd rather not talk about them until late in development, just in case one of them does not make the cut for some reason.

EDIT: Just to clarify, some of them are new girls, and others will be replacing girls on the base game (for example: Margaret), because their CGs are very inconsistent through the game.
 

tygct

Member
Jun 6, 2017
154
816
i start studying coding stuff as a hobby because i like how you did all those and it pique my interest.
my knowledge about all this is as good as anyone, 0% xD
i hope with more time and experience, i can understand all of those technical back door to our beloved game.
thanks for the update!
Good luck! Hopefully the game ends up being good enough to turn it into a modders playground, I can assure you that I am doing my best to make it easy to mod it.
 

Hyde Onedead

Newbie
May 3, 2024
84
60
Ryuna_the_2nd did manage to replicate Breast Mafia art and has drawn a few new girls that could have been in the game perfectly and does not seem out of place at all, they are planned for v1.0 as side girls with a side quest so they won't appear on test releases.

I have already the backstory written for some of them too, but I'd rather not talk about them until late in development, just in case one of them does not make the cut for some reason.

EDIT: Just to clarify, some of them are new girls, and others will be replacing girls on the base game (for example: Margaret), because their CGs are very inconsistent through the game.
Is it possible to add your own heroes and not modify the models of existing ones? You seem to have a real talent if you are really capable of this. It's a pity that you didn't take up Nanpa Beach with such zeal, but I sincerely wish you success and will wait for the release and news. Good luck in development.
 
  • Like
Reactions: tygct

tygct

Member
Jun 6, 2017
154
816
Is it possible to add your own heroes and not modify the models of existing ones? You seem to have a real talent if you are really capable of this. It's a pity that you didn't take up Nanpa Beach with such zeal, but I sincerely wish you success and will wait for the release and news. Good luck in development.
As for now, the modding system supports adding new actors and modify/overwrite existing ones, so let's say that you want to add a new companion to the game to fight with you on battles, you could open the game's project in RPG Maker VX Ace and create a new actor in the database, copy and paste the modified data file into your mod's folder and it will be automatically added to the game if the mod is enabled.

Still, RPG Maker was never made to be moddable, so as for v0.2 when you reference the new actor it will always be assumed you are referencing an actor from the base game, the only way to add this actor to the player's party is through ruby code, but later on development I plan simplify this with the ability to set a package context when running an event at any point during execution, since RPG Maker uses an interpreter to execute all events (map events, battle events and common events) I could modify the intepreter's behavior to have a package context, so when you use the command to add a new member to the party, this member will be fetched using the package context (which represents a mod in the database), now repeat this for every other command that needs a package context, for example: adding a new weapon, teleporting the player to a new map, etc...

The same goes for any image file (CGs) located inside the Graphics folder, but I have worked on this already and it is easier to manage since they are always referenced correctly whether it comes from a mod or the base game, so no need to set a package context for this.

I know it is kinda complicated to understand for now, specially since you guys cannot see the source code currently, but it will make sense down the line haha.

TL;DR
Yep, you can add new actors (male, female, etc...) and CGs, you can also add new sex animations for the sex framework, since they operate the same way as other data.

The quest system in v0.3 will be designed the same way I have done in v0.2, making it possible for modders to add new questlines with new characters or existing ones.

My plan is to allow modders to add new characters, create new quests for them, and allow them to participate in sex scenes through existing sex animations or new animations added by the modder.

Thank you for your wishes!
 

Hyde Onedead

Newbie
May 3, 2024
84
60
As for now, the modding system supports adding new actors and modify/overwrite existing ones, so let's say that you want to add a new companion to the game to fight with you on battles, you could open the game's project in RPG Maker VX Ace and create a new actor in the database, copy and paste the modified data file into your mod's folder and it will be automatically added to the game if the mod is enabled.

Still, RPG Maker was never made to be moddable, so as for v0.2 when you reference the new actor it will always be assumed you are referencing an actor from the base game, the only way to add this actor to the player's party is through ruby code, but later on development I plan simplify this with the ability to set a package context when running an event at any point during execution, since RPG Maker uses an interpreter to execute all events (map events, battle events and common events) I could modify the intepreter's behavior to have a package context, so when you use the command to add a new member to the party, this member will be fetched using the package context (which represents a mod in the database), now repeat this for every other command that needs a package context, for example: adding a new weapon, teleporting the player to a new map, etc...

The same goes for any image file (CGs) located inside the Graphics folder, but I have worked on this already and it is easier to manage since they are always referenced correctly whether it comes from a mod or the base game, so no need to set a package context for this.

I know it is kinda complicated to understand for now, specially since you guys cannot see the source code currently, but it will make sense down the line haha.

TL;DR
Yep, you can add new actors (male, female, etc...) and CGs, you can also add new sex animations for the sex framework, since they operate the same way as other data.

The quest system in v0.3 will be designed the same way I have done in v0.2, making it possible for modders to add new questlines with new characters or existing ones.

My plan is to allow modders to add new characters, create new quests for them, and allow them to participate in sex scenes through existing sex animations or new animations added by the modder.

Thank you for your wishes!
But wait, my friend. It's not just a matter of adding. Can you imitate Capone's own style in terms of new heroines?
 

Ryuna_the_2nd

Newbie
Aug 16, 2024
23
135
Ryuna_the_2nd did manage to replicate Breast Mafia art and has drawn a few new girls that could have been in the game perfectly and does not seem out of place at all, they are planned for v1.0 as side girls with a side quest so they won't appear on test releases.

I have already the backstory written for some of them too, but I'd rather not talk about them until late in development, just in case one of them does not make the cut for some reason.

EDIT: Just to clarify, some of them are new girls, and others will be replacing girls on the base game (for example: Margaret), because their CGs are very inconsistent through the game.
Margarets new design is my favorite one if anyones wondering ;)
 
  • Like
Reactions: Hyde Onedead

Hyde Onedead

Newbie
May 3, 2024
84
60
I can tell you haven't checked the thread fully lol, but yes i can replicate the Sana artist style, my job for the mod is to update the CGs i wasnt too satisfied with
If so, you are a great talent. I would like proof, of course, but it is impolite of me and I take your word for it if you said so. There is no hope for Capone and it looks like he is again in creative stagnation or depression. I hope everything will work out for you and even better than the original author. I will eagerly await updates.
 

Ryuna_the_2nd

Newbie
Aug 16, 2024
23
135
Thanks for the patience everyone! So far the CG updates have been going well
I know i dont show enough, BUT its cuz i don't want to share ALL the goodies

For now heres a example of what the uncensored dick will look like (WIP example for the NTR route, ill make sure to give Sana a more fearful look for this one specifically)
1000012893.jpg

And i remember alot of you folks loved small dick choice for the MC too (WIP example)
1000012894.jpg

Hope i dont disappoint on these CGs, what do yall think so far
 
5.00 star(s) 3 Votes