stacktrace.js v2.0 is out, featuring ES6 support, better stack frames, and more!
Some security software may quarantine mod files; checking your protection history and adding an exclusion for your game folder can resolve this.
In the modding community, there isn't a literal jigsaw puzzle; "putting together the piece" refers to the installation process of combining the base game files with the English translation and mod loader.
The AA2 community has evolved its installation methods, but the core process remains simple. The easiest method for beginners is using . aa2hairv1 repack
In the anime character customizer ecosystem, a "repack" refers to a community-managed archive that bundles loose plugins, textures, and geometry meshes into an easily deployable file structure. The specifically acts as a bridge for classic hairstyle assets.
The (commonly known as the AA2 Hair Repack v1 ) is a comprehensive collection of community-created hair assets for the 3D life simulation game Artificial Academy 2 (AA2). This repack is designed to significantly expand the character customization options by consolidating hundreds of separate hair mods into a single, organized installation. Key Features of the Repack
The is a highly sought-after community modification package that ports classic hairstyles from Artificial Academy 2 (AA2) into modern Illusion engine games like Koikatsu (KK). Originally created and compiled by modders like Creamstar, this specific asset pack (often distributed as [Creamstar] AA2 Hair.zipmod ) has become a staple inclusion in community megamal Repacks and the famous HF Patch modpacks.
Updated original Illusion textures for higher fidelity in modern shaders. Optimized as a side-loading to prevent overwriting base game files. 3. Installation & Integration Replace or merge the existing file in the Update Logic:
More than meets the eye
5 tools in 1!
stacktrace.js - instrument your code and generate stack traces
stacktrace-gps - turn partial code location into precise code location
In version 1.x, We've switched from a synchronous API to an asynchronous one using Promises because synchronous ajax calls are deprecated and frowned upon due to performance implications.
All methods now return stackframes. This Object representation is modeled closely after StackFrame representations in Gecko and V8. All you have to do to get stacktrace.js v0.x behavior is call .toString() on a stackframe.
Use Case: Give me a trace from wherever I am right now
var error = new Error('Boom');
printStackTrace({e: error});
==> Array[String]
v1.x:
var error = new Error('Boom');
StackTrace.fromError(error).then(callback).catch(errback);
==> Promise(Array[StackFrame], Error);
If this is all you need, you don't even need the full stacktrace.js library! Just use error-stack-parser!
ErrorStackParser.parse(new Error('boom'));
Use Case: Give me a trace anytime this function is called
Instrumenting now takes Function references instead of Strings.
v0.x:
function interestingFn() {...};
var p = new printStackTrace.implementation();
p.instrumentFunction(this, 'interestingFn', logStackTrace);
==> Function (instrumented)
p.deinstrumentFunction(this, 'interestingFn');
==> Function (original)
v1.x:
function interestingFn() {...};
StackTrace.instrument(interestingFn, callback, errback);
==> Function (instrumented)
StackTrace.deinstrument(interestingFn);
==> Function (original)
Repack Updated | Aa2hairv1
.parseError()
Error: Error message
at baz (http://url.com/file.js:10:7)
at bar (http://url.com/file.js:7:17)
at foo (http://url.com/file.js:4:17)
at http://url.com/file.js:13:21
Parsed Error
.get()
function foo() {
console.log('foo');
bar();
}
function bar() {
baz();
}
function baz() {
function showTrace(stack) {
var event = new CustomEvent('st:try-show', {detail: stack});
document.body.dispatchEvent(event);
}
function showError(error) {
var event = new CustomEvent('st:try-error', {detail: error});
document.body.dispatchEvent(event);
}
StackTrace.get()
.then(showTrace)
.catch(showError);
}
foo();
StackTrace output
Repack Updated | Aa2hairv1
Some security software may quarantine mod files; checking your protection history and adding an exclusion for your game folder can resolve this.
In the modding community, there isn't a literal jigsaw puzzle; "putting together the piece" refers to the installation process of combining the base game files with the English translation and mod loader.
The AA2 community has evolved its installation methods, but the core process remains simple. The easiest method for beginners is using .
In the anime character customizer ecosystem, a "repack" refers to a community-managed archive that bundles loose plugins, textures, and geometry meshes into an easily deployable file structure. The specifically acts as a bridge for classic hairstyle assets.
The (commonly known as the AA2 Hair Repack v1 ) is a comprehensive collection of community-created hair assets for the 3D life simulation game Artificial Academy 2 (AA2). This repack is designed to significantly expand the character customization options by consolidating hundreds of separate hair mods into a single, organized installation. Key Features of the Repack
The core file structure and deployment specifics of the repack are built around standard Illusion engine modification standards:
The is a highly sought-after community modification package that ports classic hairstyles from Artificial Academy 2 (AA2) into modern Illusion engine games like Koikatsu (KK). Originally created and compiled by modders like Creamstar, this specific asset pack (often distributed as [Creamstar] AA2 Hair.zipmod ) has become a staple inclusion in community megamal Repacks and the famous HF Patch modpacks.
Updated original Illusion textures for higher fidelity in modern shaders. Optimized as a side-loading to prevent overwriting base game files. 3. Installation & Integration Replace or merge the existing file in the Update Logic:
Repack Updated | Aa2hairv1
Turn partial code location into precise code location
This library accepts a code location (in the form of a StackFrame) and returns a new StackFrame with a more accurate location (using source maps) and guessed function names.
Usage
var stackframe = new StackFrame({fileName: 'http://localhost:3000/file.min.js', lineNumber: 1, columnNumber: 3284});
var callback = function myCallback(foundFunctionName) { console.log(foundFunctionName); };
// Such meta. Wow
var errback = function myErrback(error) { console.log(StackTrace.fromError(error)); };
var gps = new StackTraceGPS();
// Pinpoint actual function name and source-mapped location
gps.pinpoint(stackframe).then(callback, errback);
//===> Promise(StackFrame({functionName: 'fun', fileName: 'file.js', lineNumber: 203, columnNumber: 9}), Error)
// Better location/name information from source maps
gps.getMappedLocation(stackframe).then(callback, errback);
//===> Promise(StackFrame({fileName: 'file.js', lineNumber: 203, columnNumber: 9}), Error)
// Get function name from location information
gps.findFunctionName(stackframe).then(callback, errback);
//===> Promise(StackFrame({functionName: 'fun', fileName: 'http://localhost:3000/file.min.js', lineNumber: 1, columnNumber: 3284}), Error)
Simple, cross-browser Error parser. This library parses and extracts function names, URLs, line numbers, and column numbers from the given Error's stack as an Array of StackFrames.
Once you have parsed out StackFrames, you can do much more interesting things. See stacktrace-gps.
Note that in IE9 and earlier, Error objects don't have enough information to extract much of anything. In IE 10, Errors are given a stack once they're thrown.