So, I've found out that SECOND problem comes from my script, but yet I can't find the problem.

I've ripped the text loading part from my diary, and here it is:
Code:
// include lib:
#include <acknex.h>
#include <default.c>
#include <strio.c>

// an empty string:
STRING* str_file = "#999";				// used to read the stuff from the file
// document strings:
STRING* document_str = "notes.txt";			// the name of the document file
STRING* document_page = "#999";				// same as above
STRING* text_str = "#999";				// used to display text

// documents stuff:
var document_id = 0;					// used to read document ID from external file

// background for the text:
PANEL* documentPan = {
	// set it's layer:
	layer = 1;
	// set it's bmap:
	bmap = "#340x450x24";
	// flags:
	flags = SHOW | UNTOUCHABLE;
}

// document description text:
TEXT* doc_desc_txt = {
	// no strings:
	strings = 0;
	// set layer:
	layer = 2;
	// set font:
	font = "Arial#18i";
	// set flags:
	flags = SHOW | LIGHT | WWRAP;
}

// document description text:
TEXT* doc_debug_txt = {
	// no strings:
	strings = 0;
	// set layer:
	layer = 2;
	// set font:
	font = "Arial#18i";
	// set flags:
	flags = SHOW | LIGHT | WWRAP;
}

// reads a string from file and puts it to global pointer:
function file_for_str(var fhandle){
	// read string from file, don't have to be comma separrated:
	var result = file_str_read(fhandle, str_file);
	// copy string into the debug text:
	str_cpy((doc_debug_txt.pstring)[0], str_file);
	// convert the string to right format:
	str_replaceall((doc_debug_txt.pstring)[0], "_", " ");
	str_replaceall((doc_debug_txt.pstring)[0], "\\\\n", "\n");
	// if we succeeded:
	if(result != -1){
		// if we were able to read data from the file, use var_for_name to pass the value to global pointer:
		var d = var_for_name(str_file);
		// if we weren't able to read data:
		if(d == 0){
			// write it down in diag:
			diag("\nUnkwon string or var given:");
			// write it down in diag:
			diag(_chr(str_file));
		}
	}
	// return result:
	return(result);
}

// laod document title, pages and maximum pages by ID
function loadDoc(var id){
	// open the document file:
	var fhandle = file_open_read(document_str);
	// if the file was null, safe return this function:
	if(fhandle == NULL){ return(0); }
	// variables:
	var i, a;
	// cycle throw all documents:
	for(a = 0; a < 1; a++){
		// get global string/variable from the file:
		i = file_for_str(fhandle);
		// if result was -1, we're at the end of the file:
		if(i == -1){ break; }
		// if the id fetched from the file matched the ID we're searching for:
		if(document_id == id){
			// load pages with maximum apge variable:
			for(i = 0; i < 1; i++){
				// load page of the document:
				file_for_str(fhandle);
				// convert the string to right format:
				str_replaceall(document_page, "_", " ");
				// convert the string to right format:
				str_replaceall(document_page, "\\\\n", "\n");
				// copy the currect page to the corresponding page array:
				str_cpy(text_str, document_page);
			}
			// break the loop:
			break;
		}
	}
	// close the document file:
	file_close(fhandle);
	// if we succeeded here, return 1:
	return(1);
}

// toggle the currect document:
function loadText(){
	// copy currect page:
	str_cpy((doc_desc_txt.pstring)[0], text_str);
	// make description visible:
	set(doc_desc_txt, SHOW);
}

// document's title is clicked in choice panel:
function titleClicked(){
	// load document with real value:
	loadDoc(1);
	// load text into the text (lol):
	loadText();
}

// main function:
void main(){
	// limit fps:
	fps_max = 60;
	// load empty level:
	level_load(NULL);
	// wait for while:
	wait(3);
	// set delemeter:
	str_cpy(delimit_str, ";");
	// load text from the .txt file:
	titleClicked();
	// loop:
	while(!key_esc){
		// show current documents ID:
		DEBUG_VAR(document_id, 10);
		// set notebook at the center of the screen:
		documentPan.pos_x = (screen_size.x / 2) - (bmap_width(documentPan.bmap) / 2) + 150;
		documentPan.pos_y = (screen_size.y / 2) - (bmap_height(documentPan.bmap) / 2);
		// set proper position for text itself:
		doc_desc_txt.pos_x = documentPan.pos_x + 15;
		doc_desc_txt.pos_y = documentPan.pos_y + 15;
		// set the size for the text (description) - used by WWRAP:
		doc_desc_txt.size_x = bmap_width(documentPan.bmap) - 25;
		doc_desc_txt.size_y = bmap_height(documentPan.bmap) - 25;
		// set debug text:
		doc_debug_txt.pos_x = 45;
		doc_debug_txt.pos_y = doc_desc_txt.pos_y;
		// set the size for the text (description) - used by WWRAP:
		doc_debug_txt.size_x = 300;
		doc_debug_txt.size_y = 500;
		// wait one frame:
		wait(1);
	}
	// exit:
	sys_exit("");
}


Here how the 'notes.txt' file looks like (can't be displayed here correctly):
Quote:
document_id = 1;
document_page = This_is_just_an_example_of_my_diary_system_I've_created_so_far!\\n\\nIt_works_pretty_nice_and_I'm_happy_with_the_results.\\n\\nBut_I've_found_out_that_only_about_300_characters_of_this_string_will_be_visible...\\n\\nHopefully_this_example_will_show_you_what_kind_of_a_problem_I'm_currently_facing_and_you'll_be_able_to_help_me_out_guys.;


Take a look at this screen:


If you want to give it a try, you may download ready to use demo:
Download link

What could cause the problem? It seems (at least to me) that everything should work fine!
The text on the left, displayed right after it was read from the .txt file by file_for_str.
Second one (the one with the background) is displayed after the string receives the text and get's edited.

Greets


Looking for free stuff?? Take a look here: http://badcom.at.ua
Support me on: https://boosty.to/3rung