diff --git a/macrovision.js b/macrovision.js
index 861f8fb8..9402f27c 100644
--- a/macrovision.js
+++ b/macrovision.js
@@ -1337,7 +1337,20 @@ function toggleBodyClass(cls, setting) {
const settingsData = {
"auto-scale": {
name: "Auto-Size World",
- desc: "Automatically zoom to fit the largest entity",
+ desc: "Constantly zoom to fit the largest entity",
+ type: "toggle",
+ default: false,
+ get value() {
+ return config.autoFit;
+ },
+ set value(param) {
+ config.autoFit = param;
+ checkFitWorld();
+ }
+ },
+ "manual-scale": {
+ name: "Zoom to Fit",
+ desc: "Zoom to fit entities",
type: "toggle",
default: false,
get value() {
diff --git a/media/attribution.js b/media/attribution.js
index 306b54f6..65cd497d 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -9478,6 +9478,34 @@ const attributionData = {
"alter-dims"
]
},
+ {
+ prefix: "./media/characters/aki/",
+ files: [
+ { name: "front.svg", source: "https://www.furaffinity.net/view/35940985/" },
+ { name: "front-nsfw.svg", source: "https://www.furaffinity.net/view/35940961/", nsfw: true },
+ { name: "back.svg", source: "https://www.furaffinity.net/view/35940985/" },
+ { name: "rump.svg", source: "https://www.furaffinity.net/view/35940961/", nsfw: true },
+ { name: "dick.svg", source: "https://www.furaffinity.net/view/35940961/", nsfw: true },
+ ],
+ authors: [
+ "sikabutt"
+ ],
+ owners: [
+ "sikabutt"
+ ]
+ },
+ {
+ prefix: "./media/characters/bolt/",
+ files: [
+ { name: "side.svg", source: "https://www.furaffinity.net/view/35652410/" }
+ ],
+ authors: [
+ "psycholine"
+ ],
+ owners: [
+ "jasmith"
+ ]
+ },
//characters
{
prefix: "./media/fiction/halo/halo/",
@@ -13162,6 +13190,14 @@ const attributionData = {
"name": "alter_dims",
"url": "https://twitter.com/alter_dims",
},
+ "sikabutt": {
+ "name": "sikabutt",
+ "url": "https://twitter.com/sikabutt",
+ },
+ "psycholine": {
+ "name": "Psycholine",
+ "url": null,
+ },
}
}
diff --git a/media/characters/aki/back.svg b/media/characters/aki/back.svg
new file mode 100644
index 00000000..4bc70511
--- /dev/null
+++ b/media/characters/aki/back.svg
@@ -0,0 +1,338 @@
+
+
+
diff --git a/media/characters/aki/dick.svg b/media/characters/aki/dick.svg
new file mode 100644
index 00000000..9c9e8e93
--- /dev/null
+++ b/media/characters/aki/dick.svg
@@ -0,0 +1,42 @@
+
+
+
diff --git a/media/characters/aki/front-nsfw.svg b/media/characters/aki/front-nsfw.svg
new file mode 100644
index 00000000..4d9a19f7
--- /dev/null
+++ b/media/characters/aki/front-nsfw.svg
@@ -0,0 +1,344 @@
+
+
+
diff --git a/media/characters/aki/front.svg b/media/characters/aki/front.svg
new file mode 100644
index 00000000..3856b1a1
--- /dev/null
+++ b/media/characters/aki/front.svg
@@ -0,0 +1,338 @@
+
+
+
diff --git a/media/characters/aki/rump.svg b/media/characters/aki/rump.svg
new file mode 100644
index 00000000..ff709d9b
--- /dev/null
+++ b/media/characters/aki/rump.svg
@@ -0,0 +1,117 @@
+
+
+
diff --git a/media/characters/ari/front.svg b/media/characters/ari/front.svg
new file mode 100644
index 00000000..43e0d087
--- /dev/null
+++ b/media/characters/ari/front.svg
@@ -0,0 +1,486 @@
+
+
+
diff --git a/media/characters/bolt/side.svg b/media/characters/bolt/side.svg
new file mode 100644
index 00000000..7fd7957a
--- /dev/null
+++ b/media/characters/bolt/side.svg
@@ -0,0 +1,401 @@
+
+
+
diff --git a/presets/characters.js b/presets/characters.js
index 19581282..916efc36 100644
--- a/presets/characters.js
+++ b/presets/characters.js
@@ -21839,6 +21839,141 @@ characterMakers.push(() => makeCharacter(
]
))
+characterMakers.push(() => makeCharacter(
+ { name: "Aki" },
+ {
+ front: {
+ height: math.unit(1.78, "meters"),
+ weight: math.unit(65, "kg"),
+ name: "Front",
+ image: {
+ source: "./media/characters/aki/front.svg",
+ extra: 452/415
+ }
+ },
+ frontnsfw: {
+ height: math.unit(1.78, "meters"),
+ weight: math.unit(65, "kg"),
+ name: "Front-nsfw",
+ image: {
+ source: "./media/characters/aki/front-nsfw.svg",
+ extra: 452/415
+ }
+ },
+ back: {
+ height: math.unit(1.78, "meters"),
+ weight: math.unit(65, "kg"),
+ name: "Back",
+ image: {
+ source: "./media/characters/aki/back.svg",
+ extra: 452/415
+ }
+ },
+ rump: {
+ height: math.unit(2.05, "feet"),
+ name: "Rump",
+ image: {
+ source: "./media/characters/aki/rump.svg"
+ }
+ },
+ dick: {
+ height: math.unit(0.95, "feet"),
+ name: "Dick",
+ image: {
+ source: "./media/characters/aki/dick.svg"
+ }
+ },
+ },
+ [
+ {
+ name: "Micro",
+ height: math.unit(15, "cm")
+ },
+ {
+ name: "Normal",
+ height: math.unit(178, "cm"),
+ default: true
+ },
+ {
+ name: "Macro",
+ height: math.unit(214, "m")
+ },
+ {
+ name: "Macro+",
+ height: math.unit(534, "m")
+ },
+ ]
+))
+
+characterMakers.push(() => makeCharacter(
+ { name: "Ari" },
+ {
+ front: {
+ height: math.unit(5 + 5/12, "feet"),
+ weight: math.unit(120, "lb"),
+ name: "Front",
+ image: {
+ source: "./media/characters/ari/front.svg",
+ extra: 714.5/682,
+ bottom: 8/722.5
+ }
+ },
+ },
+ [
+ {
+ name: "Normal",
+ height: math.unit(5 + 5/12, "feet")
+ },
+ {
+ name: "Macro",
+ height: math.unit(100, "feet"),
+ default: true
+ },
+ {
+ name: "Megamacro",
+ height: math.unit(100, "miles")
+ },
+ {
+ name: "Gigamacro",
+ height: math.unit(80000, "miles")
+ },
+ ]
+))
+
+characterMakers.push(() => makeCharacter(
+ { name: "Bolt" },
+ {
+ side: {
+ height: math.unit(9, "feet"),
+ weight: math.unit(400, "kg"),
+ name: "Side",
+ image: {
+ source: "./media/characters/bolt/side.svg",
+ extra: 1126/896,
+ bottom: 60/1187.3,
+ }
+ },
+ },
+ [
+ {
+ name: "Micro",
+ height: math.unit(5, "inches")
+ },
+ {
+ name: "Normal",
+ height: math.unit(9, "feet"),
+ default: true
+ },
+ {
+ name: "Macro",
+ height: math.unit(700, "feet")
+ },
+ {
+ name: "Max Size",
+ height: math.unit(1.52e22, "yottameters")
+ },
+ ]
+))
//characters
function makeCharacters() {