AE7777

Newbie
Aug 9, 2017
68
15
you got a missing event where alice doing a sunbathing at the pool in the matt with Ann - suggesting to put sunblock with here, actually its just an max cunniling alice while Ann watch them.
but why is the yoga side quest not finished???
check your earlier save and finished it before doing Big Brother quest to trigger the latest update.
if not it will lock the yoga event unfinished.
Both events are endless
This is my problem and I do not know how to do two events
 

AE7777

Newbie
Aug 9, 2017
68
15
View attachment 568608

Important: Starting with Glamour 0.27 savegames no longer need to be decrypted and thus this tool no longer works. If you want to import your old savegames to 0.27 check this post.

Presenting Glamour Edit. A savegame editor for Glamour.

After countless hours of reverse engineering the glamour-server I was finally able to understand how savegame decryption and encryption in the game work. Since the server application is embedded into a patched node binary (using pkg) and transformed into tokenized V8 compilations it really was a pain in the ass to debug. Turns out, however, the encryption isn't really that special (decompile the SaveGameCipher class inside this binary to see what's happening under the hood).

As has been mentioned plenty times before, savegames are bound to your windows installation since the encryption and decryption keys are derived from your machine GUID. So in order to share savegames (without altering your machine guid) you can use this utility to export the decoded savegame as a json file. Other players can then import your json and have it encoded properly so the game recognizes it.

I added a JSON editor (based on ace) to the program for easier editing. Hit Ctrl+F while inside the editor if you want to search for specific strings. For the editor to show up and work properly you'll want to have at least Internet Explorer 10 installed on your system. If it's not working or if you don't like to use the built-in version you can export your save to a json file, edit it in a JSON editor of your liking and import it back.

Tested on Win7 SP1 64 and Win10 64 v1903 with Glamour saves from v0.21 and v0.22. Requires .NET Framework 4.6. This program was written in managed code, namely C# and thus its source code is readily available via the binary itself.

Let me know if you run into any problems. Any feedback is appreciated.

PS: Since you will be asking this: each character in the characters array holds a money value. Find the character you're playing right now and edit the money property to your liking.

PPS: Make a backup of your save game before tinkering with it. Editing the wrong values might lead to a broken game state. Values are only checked for syntax but not plausibility before saving.

Update: You'll now find the source code including solution files attached to this post. Not all files in this archive are necessary to compile the program. Some things remained there even after refactoring earlier code (e.g. a proper Save class, which is no longer used).

Cheers,

Update 1.0.5
  • You can now resize the tree view on the left
  • Removed old/unneccesary code from several classes
  • Added the possibility to import binary savegames from other machines.
To expand a little on the last point: if the editor finds a file in the savegame folder it can't decrypt (excluding JSON files) it will now show up in the list as Unknown save:
View attachment 583478

Clicking on it now gives you the option to add a machine ID for decrypting this file:
View attachment 583479

If the machine ID provided is valid and the file can be decoded it will appear in the save list just like any other savegame. No further adjustments are neccessary to make the savegame work.
View attachment 583490

Press "Save" to write the new save to your folder overwriting the old one. The save will now appear ingame.
Important: Starting with Glamour v0.27 savegames don't need to be decrypted anymore and thus GlamourEdit is neither working nor needed any longer on newer versions.

How to import old save games into Glamour 0.27

* updated version *

  • Use GlamourEdit to export your savegame to a JSON file.
  • Open Glamour 0.27 and press CTRL+Shift+I
  • A new window will open, on the bottom half you should now see a console where you can enter text. (Click on the Console tab at the top if you can't see it).
  • Paste the following code in there (make sure you copy all of it):
  • JavaScript:
    const uploadElement = document.createElement("input");
    const prepareDom = () => {
    uploadElement.type = "file";
    uploadElement.addEventListener("change", () => {
    const reader = new FileReader();
    let file = uploadElement.files[0];
    reader.addEventListener("load", function () {
    importSavegame(reader.result);
    }, false);
    reader.readAsText(file);
    });
    document.body.appendChild(uploadElement);
    };
    const importSavegame = (savegame) => {
    try {
    character = JSON.parse(savegame).currentCharacterId;
    if (character === undefined) {
    showInfo("Could not detect character of the provided save game. Exiting...");
    return;
    }
    console.log(character);
    insertNewSave(character, savegame);
    } catch (error) {
    showInfo("Something went wrong. Make sure you selected an unencrpyted version of your save game");
    }
    };
    const insertNewSave = (character, savegame) => {
    let highestSlot = Object.keys(localStorage).filter(n => n.startsWith("save:" + character)).map(item => parseInt(item.split(":")[3]));
    let freeSlot = Math.max(-1, ...highestSlot);
    let currentTime = Math.round((new Date).getTime() / 1000);
    localStorage[`save:${character}:${currentTime}:${++freeSlot}`] = savegame;
    showInfo("Your savegame should be imported now.");
    document.body.removeChild(uploadElement);
    };
    const showInfo = alert;
    prepareDom();
  • Press ENTER. If everything went well you will now see a file picker at the top left of your screen labeled "Choose File". If the game is hanging or not responding, close the game and repeat the steps.
  • Click on that button and select the JSON file you exported earlier.
  • You will get a success message if your savegame was imported properly. If not, make sure you selected the right file.
  • The Choose File button will now vanish. Close the developer tools by pressing CTRL+Shift+I again (you can also just restart the game, but it's not necessary)
  • Go to the "LOAD GAME" screen. Your savegame should now appear in that list granted you have the correct character selected.



* alternative version *
  • Use GlamourEdit to export the savegame you want to play to a JSON file.
  • Open Glamour 0.27 and start a new game and choose the same character your old savegame uses.
  • Once inside the game, click the cog wheels, select SAVE GAME and save your game. You will be redirected back to the main menu.
  • Open the JSON file you exported earlier in a text editor of your choice and copy its content to your clipboard
    • Alternatively just select the save in GlamourEdit, click on the editor on the right, press CTRL+A to select all and CTRL+C to copy to clipboard.
  • Do whatever way you prefer but the result must be that your old unencrypted save game is now in your clipboard.
  • Back in the game press CTRL+Shift+I to open the Chrome Developer Tools.
  • Select the tab "Application" at the top (if you dont see it, try resizing the new window that opened and make it bigger or click on », then Application.
  • On the left side click on the arrow next to Local Storage to expand it, then click on file://.
  • In the list that showed up check the Key column and look for a string that starts with save. For example: save:kate:1593106068:0. If you selected max it will save max instead. Pick the the one with the highest number at the end after the last colon :)). (The format of this string is always save:<maincharacter>:<unixtimestamp>:<slotid>)
  • Doubleclick on the text in the "Value" column and you'll notice the whole text will be selected. Press CTRL+V to paste and overwrite this text.
  • Press CTRL+Shift+I again to close the Chrome Developer Tools. Back in the game click on Load Game.
    You should now see your old save. You should load it and save it again ingame to make sure it stored it correctly.


TL;DR: DS included the developer tools in this release for whatever reason which makes it very easy to access the browser that's powering the game. Replace a value in the local storage with your save contents and the game will recognize it.

To make it easier in the future we should probably implement a modified loading system in the game. I attached the (somewhat) unobfuscated source code of the game in case anyone feels like doing that. Relevant code starts at line 5624.

Cheers,
Hello bro
This is not work for me
My windows 10 -64bit build is: 19043.1348
Installed last version of Dotnetframework in my PC
001.png

Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Array cannot be null.
Parameter name: bytes
   at System.Text.Encoding.GetString(Byte[] bytes)
   at GlamourEdit.Util.GetClientId()
   at GlamourEdit.Util.SaveGamesLocation()
   at GlamourEdit.MainForm.OpenInExplorer_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
GlamourEdit
    Assembly Version: 1.0.5.0
    Win32 Version: 1.0.5.0
    CodeBase: file:///D:/Games-H/Installer/Glamour/SAVE_EDITOR/GlamourEdit.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.mshtml
    Assembly Version: 7.0.3300.0
    Win32 Version: 7.0.3300.0
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll
----------------------------------------
Microsoft.CSharp
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Dynamic
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
    Assembly Version: 0.0.0.0
    Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 

tall tale

Member
Dec 27, 2017
188
150
While i prefer Max story line i am missing Kiras involvement, in BB she was the enabler of the whole Max story, here she is just a statist with a minor role.
 
  • Like
Reactions: kalezito

Reneboy80

Newbie
Aug 4, 2020
49
14

Hello bro
This is not work for me
My windows 10 -64bit build is: 19043.1348
Installed last version of Dotnetframework in my PC
View attachment 1531574

Code:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ArgumentNullException: Array cannot be null.
Parameter name: bytes
   at System.Text.Encoding.GetString(Byte[] bytes)
   at GlamourEdit.Util.GetClientId()
   at GlamourEdit.Util.SaveGamesLocation()
   at GlamourEdit.MainForm.OpenInExplorer_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
GlamourEdit
    Assembly Version: 1.0.5.0
    Win32 Version: 1.0.5.0
    CodeBase: file:///D:/Games-H/Installer/Glamour/SAVE_EDITOR/GlamourEdit.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4400.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.mshtml
    Assembly Version: 7.0.3300.0
    Win32 Version: 7.0.3300.0
    CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll
----------------------------------------
Microsoft.CSharp
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
System.Dynamic
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll
----------------------------------------
Anonymously Hosted DynamicMethods Assembly
    Assembly Version: 0.0.0.0
    Win32 Version: 4.8.4420.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
so you try editing your save it with console???
no mode required by doing it just press "crtl+shift+i" ingame to pop-up console menu and look for local save location to edit your save files
 
  • Like
Reactions: AE7777

majorlink

Member
Jan 26, 2018
212
77
is there a point to the extra lessons in max's pc after finishing all the classes? do i need to do them to progress the story or are they there just to waste money on?
 

Reneboy80

Newbie
Aug 4, 2020
49
14
is there a point to the extra lessons in max's pc after finishing all the classes? do i need to do them to progress the story or are they there just to waste money on?
yep not really required even for kate route, just do the communication skill for persuasions.
 

Slagmoth

Member
Jan 26, 2019
118
58
I need help i have done everything except for consequences with Alice punishing it doesn't complete
Likewise. I can get everything except force Max to get punished by Alice...

If Kate's arc had a way to force some of the random events it would make it so much less of a grind to play.
 

majorlink

Member
Jan 26, 2018
212
77
is there a way to stop lisa from having panties on anymore like at all(at home and school)? i remember that she stopped having them on in the original big brother game
 

StyleHG

Member
Mar 12, 2021
467
233
is
so is that a yes or a no?
this is a bug
or an improvement
or ......
which was partially, according to ingame images implemented but never activated
because the dev his mistakes are shit and you as a player always have to bother with the bug

bug counter +1 pro new version

I know the pictures are implanted.
only as a player you do not get the activated, without further
 
2.60 star(s) 183 Votes