Monmusu Quest! Paradox RPG 3.06
-
Oh by all means
19 hours is a bit much I think 
It is said that the actual effective hours per day in system development is from 4 to 6 of intense work
And the stable branch works, so that's great

-
Ok, so did some more testing
One thing that I'm very confused about is - I initially thought that even the base version of the game crashes, and I could have swore that it did, but after posting the initial report I can no longer reproduce that
So for the sake of sanity, let's assume I just did something wrong and the base 3.06 v does not crash under any circumstancesNow once you apply the ArzorX translation patch (and it does more then just translate the game) something changes that when you use the new version of MTool and load in a translation on top of it, it causes the crash, but the old version of MTool does not do that
And the particular script that crashes is this - or rather the block of script inside the file ...画面/153 - 転職編集.rb
#--------------------------------------------------------------------------
● ジョブ説明の描画 #Drawing Job Description edited in translation to adjust description font size and text space
#--------------------------------------------------------------------------
def draw_job_desc(y, num)
lht = 24
desc_text = NWConst::JobChange::JOB_DESC_TEXT[@class_id]
desc = desc_text[num] if desc_text
return y + lht unless desc
lht -= (desc.size - 4) * 2 if desc.size > 4
lht = 16 if lht < 16
rect = Rect.new(4, y, contents.width - 4, lht * desc.size)
r = Rect.new(rect.x, rect.y, rect.width, lht)
desc.each_with_index do |text, _i|
draw_text_job_desc(r, text, lht)
r.y += lht
end
rect.y + rect.height
endAs far as I could understand it's the
desc.each_with_index do |text, _i|
draw_text_job_desc(r, text, lht)
r.y += lht
end
with the each_with_index do loop expecting to get only 2 arguments, but getting three when you go to the Jobs (Occupation) and Races (Species) viewAdding the crash text
*Error - v3.06.00 - 2025-11-08 17:37:32 (Saturday)
Exception : ArgumentError
wrong number of arguments (3 for 2)
trace:
["( 画面/転職編集 ):923:inblock in draw_job_desc'", "( 画面/転職編集 ):922:ineach'", "( 画面/転職編集 ):922:ineach_with_index'", "( 画面/転職編集 ):922:indraw_job_desc'", "( 画面/転職編集 ):871:indraw_status'", "( Plugins/JobRaceInfoPlus ):160:indraw_status'", "( 画面/転職編集 ):738:inrefresh'", "( トリス情報表示関連 ver8 ):255:innow_tribe_refresh'", "( トリス情報表示関連 ver8 ):226:incall'", "( トリス情報表示関連 ver8 ):226:inrefresh'", "( 改造/ステータス画面 ):154:inindex='", "( Window_Selectable ):110:inselect'", "( Window_Selectable ):233:incursor_up'", "( Window_Selectable ):285:inprocess_cursor_move'", "( Window_Selectable ):275:inupdate'", "( ベース/Scene ):389:ineach'", "( ベース/Scene ):389:inupdate_all_windows'", "( ベース/Module ):1956:inupdate_all_windows'", "( ベース/Scene ):353:inupdate_basic'", "( Scene_Base ):41:inupdate'", "( ベース/Module ):2643:inupdate'", "( ベース/Module ):1939:inupdate'", "( ベース/Scene ):2701:inupdate'", "( Scene_Base ):14:inmain'", "( ベース/Module ):2458:inrun'", "( ▼ メイン【WF-RGSS】Exit-EX 終了処理 ):118:inrun'", "( ▼ メイン【WF-RGSS】Exit-EX 終了処理 ):127:inblock in <main>'", ":1:inblock in rgss_main'", ":1:inloop'", ":1:inrgss_main'", "( ▼ メイン【WF-RGSS】Exit-EX 終了処理 ):127:in<main>'", "ruby:ineval'"]I will currently use the stable branch version of MTool, and hopefully this will help if anymore similar issues arise to at least have something to start from when debugging
If you need more information or help to test something - let me know
P.S.: what also is a bit messy - the initial crash screenshot specified a different error (bad value for size) but not sure currently why I got that error initially
-
A bit more follow up
I've modified the script's loop so it's inside a try...catch... segment, so that even if an error occurs it does not close the game
Also added logging of what exact string is being put through the loop to see if it gives me any hints of what is happening and checked if those strings are different between different MTool versionsThe modified script code snippet
#-------------------------------------------------------------------------- # ● ジョブ説明の描画 #Drawing Job Description edited in translation to adjust description font size and text space #-------------------------------------------------------------------------- def draw_job_desc(y, num) lht = 24 desc_text = NWConst::JobChange::JOB_DESC_TEXT[@class_id] desc = desc_text[num] if desc_text return y + lht unless desc lht -= (desc.size - 4) * 2 if desc.size > 4 lht = 16 if lht < 16 rect = Rect.new(4, y, contents.width - 4, lht * desc.size) r = Rect.new(rect.x, rect.y, rect.width, lht) file2 = File.open("debug_log.txt", "a") file2.write(desc) file2.close unless file2.nil? begin desc.each_with_index do |text, _i| draw_text_job_desc(r, text, lht) r.y += lht end rescue Exception file = File.open("log_crash.txt", "a") file.write(desc) ensure file.close unless file.nil? end rect.y + rect.height endAnd the string that is processed when going into the Status -> Basic Information -> Job
["A hero-in-training who has not received the blessing of the Goddess. Aims to be a true hero, wields a sword but without experience. Average stats, poor at magic. Has personal sword skills and minor divine protection.", "", "", "", ""]["Equip: Dagger,Sword,Rapier,Spear,Axe,Club,Scythe,Boomerang", " Armor,Helmet,Shield", "Skills: Dagger,Sword,Heroism", "Passive: None", ""]
What is interesting, that the string is the same in both MTool branch versions, but for whatever reason this string causes a crash on the latest branch, but not in the stable one
So at least I've managed to make the latest MTool version work by "ignoring" the error. The Job and Race windows are then mostly empty, but the game does not crash

Will mess around with the code a bit more and see if there's a better option
-
A quick follow up
Managed to fix the crashing completely, but have no idea why it happens in the first place
So the current fix is that you have to rename the method being called inside the code snippet I showed
This is the method that causes the issue -> draw_text_job_desc(r, text, lht)
And renaming it into anything else fixes the problem
#-------------------------------------------------------------------------- # ● ジョブ説明の描画 #Drawing Job Description edited in translation to adjust description font size and text space #-------------------------------------------------------------------------- def draw_job_desc(y, num) lht = 24 desc_text = NWConst::JobChange::JOB_DESC_TEXT[@class_id] desc = desc_text[num] if desc_text return y + lht unless desc lht -= (desc.size - 4) * 2 if desc.size > 4 lht = 16 if lht < 16 rect = Rect.new(4, y, contents.width - 4, lht * desc.size) r = Rect.new(rect.x, rect.y, rect.width, lht) desc.each_with_index do |text, _i| draw_text_job_desc2(r, text, lht) r.y += lht end rect.y + rect.height end #-------------------------------------------------------------------------- # ● ジョブ説明用テキスト描画 #-------------------------------------------------------------------------- def draw_text_job_desc2(rect, text, lht) reset_font_settings text = convert_escape_characters(text) pos = { :x => rect.x, :y => rect.y, :new_x => rect.x, :height => lht } contents.font.size -= 6 #Sets font size to force word-wrapping and prevent a crash process_character(text.slice!(0, 1), text, pos) until text.empty? endAs far as I understand Ruby does not allow overloads of methods like in C# or VB (or some other languages as well) and if someone declares a method with the same name, that method then gets overwritten - so perhaps that's why the original name of draw_text_job_desc causes the issues with the new versions of MTool
Attaching the modified script file just in case - though it's really simple to modify it yourself -> 153 - 転職編集.rb
The path to this files inside the translation folder from ArzorX is ...\Translated Files\Scripts\画面\
-
A quick follow up
Managed to fix the crashing completely, but have no idea why it happens in the first place
So the current fix is that you have to rename the method being called inside the code snippet I showed
This is the method that causes the issue -> draw_text_job_desc(r, text, lht)
And renaming it into anything else fixes the problem
#-------------------------------------------------------------------------- # ● ジョブ説明の描画 #Drawing Job Description edited in translation to adjust description font size and text space #-------------------------------------------------------------------------- def draw_job_desc(y, num) lht = 24 desc_text = NWConst::JobChange::JOB_DESC_TEXT[@class_id] desc = desc_text[num] if desc_text return y + lht unless desc lht -= (desc.size - 4) * 2 if desc.size > 4 lht = 16 if lht < 16 rect = Rect.new(4, y, contents.width - 4, lht * desc.size) r = Rect.new(rect.x, rect.y, rect.width, lht) desc.each_with_index do |text, _i| draw_text_job_desc2(r, text, lht) r.y += lht end rect.y + rect.height end #-------------------------------------------------------------------------- # ● ジョブ説明用テキスト描画 #-------------------------------------------------------------------------- def draw_text_job_desc2(rect, text, lht) reset_font_settings text = convert_escape_characters(text) pos = { :x => rect.x, :y => rect.y, :new_x => rect.x, :height => lht } contents.font.size -= 6 #Sets font size to force word-wrapping and prevent a crash process_character(text.slice!(0, 1), text, pos) until text.empty? endAs far as I understand Ruby does not allow overloads of methods like in C# or VB (or some other languages as well) and if someone declares a method with the same name, that method then gets overwritten - so perhaps that's why the original name of draw_text_job_desc causes the issues with the new versions of MTool
Attaching the modified script file just in case - though it's really simple to modify it yourself -> 153 - 転職編集.rb
The path to this files inside the translation folder from ArzorX is ...\Translated Files\Scripts\画面\


