Ark Save Engine 2.5.1 FINAL + Addons

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
Terms of Use


This plugin is free to use for both free and commercial games as long as I'm credited in your game by name: 

 

Leonardo Misseno Justino  
 

If you think that I deserve any kind of reward for making this plugin (I accept donations :guffaw: ) , contact me in my e-mail or via PM. I would be glad!  *-* (leomjusto at hotmail.com)

 

And don't forget to let me know the game you are making, send me pictures and everything. I would like to play it.
 

Version: 2.5.1 FINAL - https://dl.dropboxusercontent.com/u/110216365/PLUGINS/HELP/ArkDG_SaveScreen.js

 

I'll not release anymore updates for this plugin. To me this plugin is complete and all the bugs I could fix are fixed.
Enjoy this plugin and don't forget to thank me. I would be very happy.
 

ATENTION: If you are using a custom menu, there would be some conflicts or you might do not get the screenshot data for the save file. What is very bad! You have to call this line in a script box before the menu is openned if you want to fix this problem:  Scene_File.generateFileData(); Or maybe you just want to take a picture in a special situation. Example: if you are about to use the "Call Save Menu" event command from the RPG Maker MV. If you don't call this line there will be no picture or the picture that the save file will show will not be the correct one! Again, the line is: Scene_File.generateFileData(); Good luck! ^^

 

//What's new?

 

//2.5.1 - Fixed a bug in the command and confirmation windows. And now erasing a file will emit a proper sound (actor damage sound).

//2.5 - Fixed the loading time problems of the SV Actors images and the Map Thumbnail.

//2.4 - Made a Scene_Name overwriting for the purposes of the slot name function.

//2.3 - New Feature: Now it's possible to give a name to the save slots.

//2.3 - Added to the parameters the possibilitty to change the name of your fisical save files. To change the name of your game's save files is not an obligation, but if you wanna publish your game as a browser game, use the default name can cause some "conflicts" with the save files of others RPG Maker MV browser games if they are using the same save file name.

//2.2 - Added configurable icons in the Save Status Window as Yuudai asked me to do. They are off by default, you must activate them to use;

//2.1 - Just a little test with aliasing. I declared one alias variable in public domain. If no problems comes from this, I will start to declare every old method alias I do in public domain so people can have access to the original methods of the functions I alias;

//2.1 - Improved the windows call codes, so it's now easier to make addons and fixes for this plugin;

//2.0 - Fixed the loading lag issue. Now the files aren't stored in the "global save file info", but in it's own save files. This way I eliminated the loading lag before the save screen reducing it to the load of just one thumbnail per time/index, not more all the save files thumbnails at once;

//1.2.1 - Now it's possible to change the action and confirmation windows positions;

//1.2.1 - Improved the way the higher level is checked and text positioning;

//1.2.1 - Corrected the problem with the level info that was breaking the script;

//1.2.1 - Corrected a problem with the "is any save" checking feature;

//1.2 - Added the "imported" variable. Now it's viable to do addons for this plugin;

//1.1 - Now it shows the party's higher level;

//1.02 - Corrected as erasing issue where the old data of the erased save games were not erased with them from the info file;

//1.02 - Corrected the popscene/callscene methods used after saving new games. Now it will only happen if it's your first save game;

//1.01 - Corrected the action window transparency problems;

//1.00 - Plugin Completed;

 

Pictures:







How to Use:

THE PLAYER NAME ON THE SAVE SLOT FEATURE:

 

 Activating this feature you'll make it possible to give unique names to your

 games' save slots. These names are chosen by the player himself and can be

 the player's own name or anything he or you wants. With some knowledge you

 can even force the change of this name if you want to. 

 

>> How will this feature change the display name of my save slot?

 

First you'll have to determine an input engine for the save slot name:

 

default  = The default way is by using this plugin version of the RMMV Actor

Name Input. This mode stores the name in a internal variable;

 

protagonist = Uses the name of an Actor from your game database as the slot

namer. If your player is allowed to change the game protagonist's name, this

should be your choice.

 

cmdinp = Uses variables to store names. For this mode you will have to

download and install the "Darkkitten's Command Input System" (CmdInp.js)

plugin;

 

location = In this mode you determine that the save slot name will

be the name of the map where the player saved.


It's highly recommend you to download the Darkkitten's Text Input System if you need not only a way to define your game slot name, as a dedicated input text system for your game.
 

The other features are easy to understand. Just plug it in and configure the parameters as you like.

What it does:

  • Change the appearance of the file scene;
     
  • More than just Character sets or Faces! Now you can even choose to show your SV_actor's grafics in the File Scene! (thanks Jeremy Cannady for the sv_actors snippet);
     
  • You can show a thumbnail of the actual map where the player were when he decided to save (thanks to Hudell's and Iavra's help);
     
  • Shows Money, Location and Time Information about the save;
     
  • Now you can Save, Load and Erase a file from the Scene_Save. I decided that  Scene_Load would be just to Load files. When you push "Continue" on the title screen you should call the Scene_load by default, but you can change it in the parameters;
     
  • Unactivate the Save command when the developper do not want the player to be capable of saving. Do it with switchs;
     
  • This script is fully configurable: you can set the number of rows, collums, savefiles, names, verbs, icon numbers, grafics' positions and the switch Id to active the save game habilitty.
     
  • You can totally disable or manage the compression quality of the screenshot feature of the script in the parameters. This will make your save files smaller if you need it.
     
  • Now you can change your fisical save files name. Read the help if you have any doubts. Everything are done inside the parameters.

     
Known Bugs:

  • There seems to have an incompatibillity between the  yanfly class core plugin and this plugin Actor SV Miniatures. The miniatures won't update together with the class change fo yanfly's plugin. Just change the miniature mode to Face or Charset in the parameters and the problem desapears. Or ask yanfly to check and fix it for you.

     
  • If you activate the cmdinp or the default mode of the save slot name  feature, please, remember to store a name inside your choosen variable or to call the input function in the start of the game, or the save files will be name as "0 ID".  How to input a name in a variable?

    $gameVariables.setValue(Variable ID, 'Name you want')

    In the "Name you want" you  CAN just type TextManager.file. 
     
  • No more known bugs. This is the final update for this plugin. I might not release anymore versions, but let me know if you find any other bugs. Maybe... I will fix it for you.
 

This is my first Plugin.

 I had a game in RMVXA, and started to port it to RMMV because I wanted to make it playable in mobile devices.

It was easy, until I noticed that I would have to readapt all the scripts I was using before to the new system...   :(  One of these scripts was Yanfly's YEA Save Engine, that was the inspiration for my plugin. I'm not a experienced scriptter and I'm learning as I try to do things.

After a long road of problems and corrections, with the help of a lot of awesome friends of this community, the puglin is ready to be released and enjoyied by everyone. Please, do good use of it in your game and don't forget to give me credits! ^^

 

 

Special thanks to:

  •  Yanfly for the inspiration (RMVXA YEA Save Engine);
     
  •  Yoji Ojima (from Kadokawa) for the AltSaveScreen.js plugin, that served me as the basis for my plugin;
     
  •  Hudell for the method to create the screenshots and the idea of saving them inside the save file header (and the patience too); 
     
  • Hudell again, for being so awesome. Thanks to his compression method hint the save files are much more softer!
     
  •  Iavra for the method to load the screenshots from the save file  and the solution for the action window problem (another awesome patient guy!);
     
  •  SoulPour777, for the tutorials on youtube that helpped me a lot;
     
  •  Jeremy Cannady, for the sv_actors snippet;
     
  •  doranifoku, for the help with a listener method to load pictures.

Addons:

I'll be posting my addons for this plugin below. If you want to make your own addons and share them with the community, send me them and then I will post them here too.  (them then them then them aaaaaah ><)

//=============================================================================

// Ark_SaveEngine_Confirmation.js // version 1.3

//=============================================================================

 

* Add a confirmation window after the action window. Requires the Ark_SaveScreen.js plugin and must be plugged below it.

* Author: ArkDG // Version 1.3

 

 * 1.3 - Corrected a problem where the confirmation window is hidden, but do not deactivates;

 * 1.2 - Changed some important lines to mantian compatibilitty with the version 2.0 of the "Ark_SaveScreen.js" plugin.

 * 1.0.1 - Now you can define the positions for the confimartion window (through the "Ark_SaveScreen.js" plugin) and the confirmation

  help window.

 * 1.0.1 - Updated the commands to fit the new version of the "Ark_SaveScreen.js" plugin. 

 

 

//============================================================================

// ** Terms of Use

// This plugin is free to use for both free and commercial games as long as I'm credited in your game as this plugin writer.  ;)

// My full name is Leonardo Misseno Justino.

//============================================================================

 

 Plug it in your game, configure the parameters properly and be happy.

 This addon just adds a new confirmation window after the command action one.

 

 Credits to: Me, ArkDG (Leonardo...)

 Thanks to: Roguedeus, that asked me to do this, and Rito that teached me what is and how to do the "imported" thing.



>>>>>>>>>>>>>>>>>>>>>>>DOWNLOAD OF THE LASTEST VERSION 1.3CLICK HERE <<<<<<<<<<<<<<<<<<<<<<<<<<<
 Pictures:

 
/=============================================================================

// Ark_SaveEngine_VariablesWindow.js // version 1.0

//=============================================================================

/*:

 * A new window called VariablesBox that will show any info that you want with the help of a few $gameVaribles.

 

 * author: ArkDG // Version 1.0

//============================================================================

// ** Terms of Use

// This plugin is free to use for both free and commercial games as long as

// I'm credited in your game as this plugin writer. ;)

// My name full name is Leonardo Misseno Justino.

//============================================================================
 

YOU MUST READ THE HELP FILE OF THIS PLUGIN.

Thanks.

 

DOWNLOAD: https://dl.dropboxusercontent.com/u/110216365/PLUGINS/HELP/Ark_SaveEngine_VariablesWindow.js

 

Pictures:



 
Last edited by a moderator:

LuLight

Veteran
Veteran
Joined
Oct 20, 2015
Messages
30
Reaction score
4
First Language
Thai
Cool thank you

+ Can you make it don't remember choice please, because when select Erase it remember Erase in the other slot, player maybe accident to delete save file.

+ And my game crashed when load T T

Untitled.jpg
 
Last edited by a moderator:

Aidensmercy

Veteran
Veteran
Joined
Oct 29, 2015
Messages
121
Reaction score
24
First Language
english
I actually like this one alot.

Can you make it so

*it doesnt have the "save" option when you are loading from the title screen though.

and

*make it support a 6 man party PLEASE!
 

Yuudai

Burritoman!
Veteran
Joined
Dec 16, 2014
Messages
39
Reaction score
16
First Language
German, English
Primarily Uses
Really really cool plugin I like it!

and nice idea with the map location.

I would love if we could customize icons for Gold, Playtime and maybe Location too  BD

also is it possible to add variables to show ? for example lets say you could find 100 secrets in a game so you could show how much the player already has found.

that would be awesome :p

anyway great save scene so far keep up the good work!
 

Torqus

Veteran
Veteran
Joined
Aug 2, 2015
Messages
169
Reaction score
26
First Language
English
Primarily Uses
Could you tell me how did you manage to show the screenshot of the saved game in the background? I'm really interested in that.
 

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
Cool thank you

+ Can you make it don't remember choice please, because when select Erase it remember Erase in the other slot, player maybe accident to delete save file.

+ And my game crashed when load T T

Untitled.jpg
 You are having a conflict. You should do two thing to solve that:

1. You can't load files tahat you saved before installing this plugin, so you will have to start a new one.

2. If that don't fix the problem (and I think that maybe it will not) you are having a conflcit with another plugin... My plugin aliases some methods, so if someone is overwriting these methods, I think it could break everything. You will have to put this plugin below any other one that overwrites the data manager methods "makesavefileinfo" and "makesavecontents".

Try the first one... If not, try the second too. If not too, please, I will need to know what plugin you are using, the order they are put in the manager, and you will have to give me a better picture of the console. I'm new in this plugin scrippting thing, so maybe I didn't notice yet what is happening.

And about eh remembering thing... I didn't set the game to remember the last id when you erase a file. To be truth, I will make it remember that now! Because I think that it would be much more confusing if you just don't let the game remember.

Think about it: If you delete a file and save a new one above this deleted one (now) clean slot, you don't have any issues. It's a new file, you haven't losed nothing. But if you delete a file that is not the last you saved at, goes out of the menu, comes back to save in the slot you cleaned, but press the button as a crazy dude unaware of what you are doing... You will save above a slot that you don not wanted to overwrite.... This would be a real problem. hehe

But just wait for an update. I'll make it configurable. (almost everything in this script is configurable by parameters :p )

But for every problem, you can use the Save Confirmation addon to put one more step before the saving, laoding or erasing thing.

I actually like this one alot.

Can you make it so

*it doesnt have the "save" option when you are loading from the title screen though.

and

*make it support a 6 man party PLEASE!
The plugin do support these two things. You can set how it works on the parameters. By default the plugin don't even shows the save option on the title screen, you have to activate and option to it happens. Unless you are having some conflict with another plugin. Maybe another plugin is using the same variable I use to configure this feature. What I think is very hard to happen, but...

Please, look and read all the parameters configurations to see if there is nothing setted wrong.

Gimme a picture of the parameters configuration of the plugin in your game. More specifically, one that show the "Title_Screen" variable. If it's diferent from 0, that's why the game is showing you the save option on the title screen.

Really really cool plugin I like it!

and nice idea with the map location.

I would love if we could customize icons for Gold, Playtime and maybe Location too  BD

also is it possible to add variables to show ? for example lets say you could find 100 secrets in a game so you could show how much the player already has found.

that would be awesome :p

anyway great save scene so far keep up the good work!
I will work on it. This is not a hard thing to do, I just didn't thought about it hehe. I was focusing on what I wanted on the system. Wait for an update.

 

Could you tell me how did you manage to show the screenshot of the saved game in the background? I'm really interested in that.

 
Well, you might get a look at the code. I get a screenshot data of the screen when the player goes into the menu, so I have a picture of the game before he goes inside it. Then when you save, I get the screenshot information and store it in the save file. Third, I extract the image information from the save file to a variable so I can show it in the status window.

These lines do the trick:

    var ark_urlData = undefined;          ////////////////////////////////MAKE THE FILE DATA////////////////////////////////       Scene_File.generateFileData = function () {                  var snap = SceneManager.snap();          var resized = new Bitmap(ark_thumbnail_w, ark_thumbnail_h);          resized.blt(snap, 0, 0, snap._canvas.width, snap._canvas.height, 0, 0, ark_thumbnail_w, ark_thumbnail_h);          ark_urlData = resized._canvas.toDataURL('image/jpeg', ark_thumbnail_qlt);        };                          /////////////////////////////////////////////////////////////////    Scene_Map.prototype.callMenu = function() {           Scene_File.generateFileData(); // NEW METHOD TO GENERATE THE SCREENSHOT          SoundManager.playOk();    SceneManager.push(Scene_Menu);    Window_MenuCommand.initCommandPosition();    $gameTemp.clearDestination();    this._mapNameWindow.hide();    this._waitCount = 2;};        var originalMakeSaveContents = DataManager.makeSaveContents;    DataManager.makeSaveContents = function() {    var contents = originalMakeSaveContents.call(this);         if (ark_showThumbnail == 0) {      contents.thumbnail = ark_urlData;    } //METHOD 2.0   Window_SavefileStatus.prototype.saveReader = function(id) {    var json;    try {        json = StorageManager.load(id);    } catch (e) {        console.error(e);        return [];    }    if (json) {        var globalInfo = JSON.parse(json);                    if (!StorageManager.exists(id)) {                delete globalInfo;            }                return globalInfo;    } else {        return [];    }} var brokenID = undefined;    Window_SavefileStatus.prototype.drawFileId = function(id, x, y) {                brokenID = id;        this.drawText(TextManager.file + ' ' + id, x + ark_fileId_x, y + ark_fileId_y, 180); //FILE ID POSITION    };indow_SavefileStatus.prototype.drawScreenshot = function(id, x, y) {var dataUrl = this.saveReader(brokenID).thumbnail;var bitmap = new Bitmap(ark_thumbnail_w, ark_thumbnail_h);        bitmap._image = new Image();                bitmap._image.src = dataUrl; // The "ark_urlData" content in the save file header.                    bitmap._onLoad();                               this.contents.blt(bitmap, 0, 0, bitmap._canvas.width, bitmap._canvas.height, Graphics.boxWidth + ark_thumbnail_x, ark_thumbnail_y, ark_thumbnail_w, ark_thumbnail_h);     };
But now that you said that, there is one thing I must do..... 

I hope you got it hehe
 
Last edited by a moderator:

Aidensmercy

Veteran
Veteran
Joined
Oct 29, 2015
Messages
121
Reaction score
24
First Language
english
The plugin do support these two things. You can set how it works on the parameters. By default the plugin don't even shows the save option on the title screen, you have to activate and option to it happens. Unless you are having some conflict with another plugin. Maybe another plugin is using the same variable I use to configure this feature. What I think is very hard to happen, but...

Please, look and read all the parameters configurations to see if there is nothing setted wrong.

Gimme a picture of the parameters configuration of the plugin in your game. More specifically, one that show the "Title_Screen" variable. If it's diferent from 0, that's why the game is showing you the save option on the title screen.
here's some picture of what i was talking about.

when i have a game saved, i can go to continue, and when i choose a saved game, i have the option to save.

don't think i should be able to save while im still on the title screen.

on a side note, is there any way to use this for a 6 man party instead of just 4? if not, I can't use this on my game.
 

Otakuhn

Veteran
Veteran
Joined
Aug 13, 2015
Messages
93
Reaction score
4
First Language
English
Primarily Uses
You should make the font for the character levels smaller and add levels that show on each of the characters multiple character rows would be nice as well
 

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
here's some picture of what i was talking about.

when i have a game saved, i can go to continue, and when i choose a saved game, i have the option to save.

don't think i should be able to save while im still on the title screen.

on a side note, is there any way to use this for a 6 man party instead of just 4? if not, I can't use this on my game.
You aren't, if you try it will buzz at you.... Did you even read what I said? I need to know how did you configurate the params. This is not normal behavior for this plugin to to this. 

And about the 6 man party, as I said before, this plugin supports it. :p

You should make the font for the character levels smaller and add levels that show on each of the characters multiple character rows would be nice as well
Well, it is possible to make addons for this purpose. Feel free to modify whatever you want to. 
 
Last edited by a moderator:

Aidensmercy

Veteran
Veteran
Joined
Oct 29, 2015
Messages
121
Reaction score
24
First Language
english
You aren't, if you try it will buzz at you.... Did you even read what I said? I need to know how did you configurate the params. This is not normal behavior for this plugin to to this. 

And about the 6 man party, as I said before, this plugin supports it. :p

Hahaha, the 6 man party was my mistake, I just never added more than 4 people to test it.... dumb.

I figured out the rest of it by messing around with the settings some more.

here's a picture of what i have come up with.

thanks for this plugin, it nice.
 

demantis

Villager
Member
Joined
Aug 15, 2015
Messages
11
Reaction score
2
First Language
english
Thanks for sharing this plugin. I like the fact that we can delete the saved game without having to go into our folder and delete the file. I also like how it shows the map. Keep up the good work.
 

Rito

Veteran
Veteran
Joined
Jun 29, 2015
Messages
107
Reaction score
50
First Language
French
Magnificent plugin :

 

DustyCat Media

Indie Game Purrfector
Veteran
Joined
Oct 15, 2012
Messages
115
Reaction score
71
First Language
English
Hello ArkDG,

Great plugin! I've finally found a save plugin that i like! :)

However, i can't seem to make the thumbnail appear. Are there any values in the parameters that i need to configure before the thumbnail shows up? (the Show_MapThumbnail is already set to 0).

Thanks!
 

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
Hello ArkDG,

Great plugin! I've finally found a save plugin that i like! :)

However, i can't seem to make the thumbnail appear. Are there any values in the parameters that i need to configure before the thumbnail shows up? (the Show_MapThumbnail is already set to 0).

Thanks!
Well, if you are using a custom menu plugin, your game must be not making the thumbnail, so you have to use this script call before entering the menu scene:

Scene_File.generateFileData();

You can add this on the call method of the menu, or just do it a way that a common event is called before the menu is oppened. If you are using the "Call Save Menu"  default command of the RPG Maker MV on an event, you have to put this line in a script call before the command too.

If you do not manage to solve the problem, please post here a picture of the plugin manager so I can see what plugin you are using, and a picture of the game console right after you save. ^^
 

DustyCat Media

Indie Game Purrfector
Veteran
Joined
Oct 15, 2012
Messages
115
Reaction score
71
First Language
English
@ArkDG

Thanks! The script call did the trick! I was using a custom save point using an event.

Thanks again! ^^
 

Torqus

Veteran
Veteran
Joined
Aug 2, 2015
Messages
169
Reaction score
26
First Language
English
Primarily Uses
What I'm trying to accomplish is to show the Screenshot in the back of the Scene, in the entire screen, but using the vanilla save scene. I'll have to study your plugin for a looooooooooooong time.
 

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
You will have to overwirte the methods to create the list window contents to acomplish what you want. My code create a new window that shows the picture, but you have just the normal window. So you have to focus on that one, adding to it the draw methods that I used. 


And look you if are not forgeting to call Scene_File.generateFileData(); before the menu scene or save scene (if you are calling it direct from the map scene)
 

Torqus

Veteran
Veteran
Joined
Aug 2, 2015
Messages
169
Reaction score
26
First Language
English
Primarily Uses
You will have to overwirte the methods to create the list window contents to acomplish what you want. My code create a new window that shows the picture, but you have just the normal window. So you have to focus on that one, adding to it the draw methods that I used. 

And look you if are not forgeting to call Scene_File.generateFileData(); before the menu scene or save scene (if you are calling it direct from the map scene)
Yes I did all that, there's no error, but there's also no screenshot. I also added the drawScreenshot in drawContents.

Don't worry about it, I'll figure it out later. Thanks.
 

ArkDG

Veteran
Veteran
Joined
May 26, 2013
Messages
143
Reaction score
47
First Language
portuguese
Primarily Uses
Really really cool plugin I like it!

and nice idea with the map location.

I would love if we could customize icons for Gold, Playtime and maybe Location too  BD

also is it possible to add variables to show ? for example lets say you could find 100 secrets in a game so you could show how much the player already has found.

that would be awesome :p

anyway great save scene so far keep up the good work!
@Yuudai

Well, now you can customize icons for the Save Status Window. I'm finalizing an addon to make the show variables thing, so please stay tunned. It's finished to be truth, but I want to improve some characteristics in it, so I will wait a little more to publish it. 

 

Yes I did all that, there's no error, but there's also no screenshot. I also added the drawScreenshot in drawContents.

Don't worry about it, I'll figure it out later. Thanks.

 
Well, I think you know what you are doing. But if you let me help... I think other thing that might be causing problem is the way the data of the picture is being stored. It works to store them in the save file for my plugin, but maybe you might save them in the global info file to the picture to works for you.

You must alias the "makesavefileinfo" method and add an info.thumbanail inside of it.

I do it with other informations in my plugin, just take a look. And show me the results when you acomplish what you want! ^^
 
Last edited by a moderator:

Yuudai

Burritoman!
Veteran
Joined
Dec 16, 2014
Messages
39
Reaction score
16
First Language
German, English
Primarily Uses
@Yuudai

Well, now you can customize icons for the Save Status Window. I'm finalizing an addon to make the show variables thing, so please stay tunned. It's finished to be truth, but I want to improve some characteristics in it, so I will wait a little more to publish it. 
wow! awesome work!

can't wait for that addon  :p

keep it up!
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Profile Posts

I've developed a habit of thanking cleaning ladies for their work.
Sorry Aerith... I will abandon your shoes... :guffaw:
Spent a whole bunch of time today reworking the area in the video because someone said it was too illusory. So I reworked it so it changes less, moved the grass up to the same level as the player.... And found enough extra resources to make the grass moves when the player touches it. Also lots more water, because it looks amazing. I'll probably put up a short updated video later today.
I never noticed how NOISY birds can be in the morning..
The worst part of writing the thesis is getting to a point where it's nearly done and you feel like an 8th-grader could've written something on that level.

Forum statistics

Threads
95,766
Messages
931,712
Members
126,169
Latest member
Stearen
Top