Add 'Good Pet'

This commit is contained in:
Bad Manners 2024-10-06 10:27:44 -03:00
parent 81db8a35e0
commit ecb8618a67
Signed by: badmanners
GPG key ID: 8C88292CCB075609
6 changed files with 90 additions and 5 deletions
package.json
src
assets/thumbnails/stories
content
utils

View file

@ -1,7 +1,7 @@
{
"name": "gallery.badmanners.xyz",
"type": "module",
"version": "1.10.3",
"version": "1.11.0",
"scripts": {
"postinstall": "astro sync",
"dev": "astro dev",

Binary file not shown.

After

(image error) Size: 14 KiB

View file

@ -32,6 +32,7 @@ tags:
- size difference
- implied full tour
- lesbian sex
- pet play
- Vore Day
---

View file

@ -0,0 +1,82 @@
---
title: Good Pet
pubDate: 2024-10-06
authors: bad-manners
wordCount: 800
contentWarning: >
Contains: Same size safe vore/endosoma (anal vore), with willing male anthro otter pred, and semi-willing male anthro dog prey, and pet play.
thumbnail: /src/assets/thumbnails/stories/bm_ff_16_good_pet.png
description: |
Jake has an unusual idea for play time with his 'pet'.
This is my shortest and quickest story so far, but still a very self-indulgent one. (They always are!)
posts:
eka: https://aryion.com/g4/view/1057203
furaffinity: https://www.furaffinity.net/view/58363412/
inkbunny: https://inkbunny.net/s/3442516
sofurry: https://www.sofurry.com/view/2185882
# sofurrybeta: TODO
weasyl: https://www.weasyl.com/~badmanners/submissions/2422380/good-pet
mastodon: https://meow.social/@BadManners/113260697648221209
tags:
- anthro predator
- anthro prey
- male predator
- male prey
- willing predator
- semi-willing prey
- anal vore
- same size
- pet play
- flash fiction
copyrightedCharacters:
"Brad": bad-manners
---
Jake unlocked the front door, eager to be home after work. But the otter kept his cool, even knowing that his roommate Brad would be similarly eager, waiting for him inside.
"O-Oh! Master!" The naked border collie was excited as a puppy to see him, despite also being a fully grown anthro. "Welcome home! What are we doing tonight, Master? Is it more BDSM, or"
"Quiet, pet." Jake commanded. "Sit."
Brad only seemed more excited to comply, hopping onto the couch in the blink of an eye. His legs shook anxiously as he watched the otter undress, a dumbfounded smile plastered on his white and dark-gray face.
"Stay," another order in the otter's dominating tone. With only fur on his skin, the brown mustelid walked towards the border collie. He stepped up on the couch, his right paw to the dog's right, turning around to face away from Brad. Jake's butt was now level with his roommate's snout. "Lick."
The dog's tongue was already out from panting in excitement, only having to lean slightly forward to nudge itself between those furry cheeks. At the same time, the otter leaned backwards, giving that snout better access to his ass.
The ring of flesh loosely gaped to accommodate the slimy appendage. As Brad eagerly savored his Master, the otter sat down more, until the snout slipped into his hole and plugged it. A confused 'mrf?!' came from the muzzled dog.
"Don't move," Jake panted. "Deeper..."
Unsure of what was going on, Brad simply froze. Not like it made a difference. The otter sat further down, squelching the rest of his face into his rectum. His guts gurgled at the snout-shaped intrusion within his midriff, and he gasped when his anus slipped past the dog's ears.
"D-Deeper."
Putting more of his weight onto the helpless collie, Jake did his best to spread his legs and take in those shoulders without using his hands. Slowly, the whimpering mass shifted upwards into his bowels. His hips felt numb as they stretched incredibly wide to take the shoulders in, which finally happened with a loud and satisfying 'plop!'.
"Mrf... Lick me, pet."
Despite some hesitation at first, Brad did as he was told. The otter gasped, his insides melting and easing his roommate's upper half further in. The licks to his slimy, groaning walls reluctant or not reached deeper still into his body, but Jake wanted more.
With Brad's chest firmly lodged within, he shifted more of his weight down. Slowly, his anus slipped around the lubricated dog fur, forcing more of the massive improvised dildo into his bowels' wet embrace.
Soon enough, Jake's hips were straining to fit the collie's own, a broad flex that seemed impossible if not for the otter's stubbornness. With some diligent and careful wiggling, more of Brad's spine went past his hole, rubbing it pleasantly like a set of beads, until his butt finally plopped against the cushion on the couch.
Then, with his belly already obscenely large, the otter stood up from the couch, forcing his roommate's legs to straighten out as well. With all of their lower paws planted on the ground, Jake continued his descent. With his body forcing more of his prey through another bend in his abdomen, he'd never felt so full yet he still craved more.
Brad's whines were drowned out by the tunnel's groans, which were clearly too narrow for such an ordeal. The oppressive tightness and stifling heat were uncomfortable and overbearing, but the canine took solace in being an obedient pet for his Master.
Between gasps and moans, Jake took in the rest of the legs, and the fluffy tail tucked between them. By now, the prominent bulges seemed to show that Brad's head was facing down, what with being forced to curl tightly in his ravenous guts. With relatively little effort, he squished the last of those paws into his rectum, clenching to greedily slurp the toes into his body.
Sitting on a mess of his anal juices over the carpet, the otter hummed as he admired his handiwork. He'd devoured his whole pet, who'd been reduced to nothing but a wonderful weight in his incredibly distended torso.
"Hmmmf..." Jake carefully got up to sit back on the couch. "You were a good pet, but you make for an even better toy..."
Brad spoke apprehensively. "M-Master, I"
"Quiet. Keep licking."
There wasn't any room to shuffle or move his head, but the border collie obliged anyway. Licking the reachable section of the intestinal tract in front of his snout, he could hear his Master's moans over the thundering heartbeat and gurgles.
"Mrr... Keep this up, and I'll let you out in the morning," Jake said as he rubbed his belly. "Maybe."

View file

@ -18,12 +18,14 @@ tags:
- name: inflation
description: Scenarios where a character expands out with the excessive intake of fluids, including semen.
- name: daddy play
description: Scenarios where a character refers to another as their "daddy" in a kinky manner as part of a sexual situation.
description: Scenarios where a character refers to another as their "daddy" in a kinky manner, as part of a sexual situation or roleplay.
- name: BDSM
description: Scenarios related to bondage, sadism, masochism, dominance, and/or submission in a kinky manner.
description: Scenarios related to bondage, sadism, masochism, dominance, and/or submission in a kinky manner, such as roleplay.
- name: dubcon
description: Scenarios where sexual consent is dubious.
- name: plushie
description: Scenarios with sexual action involving stuffed toys or plushie-like characters.
- name: wardrobe malfunction
description: Scenarios where a mishap happens with someone's clothes, such as accidentally revealing body parts and/or bursting open.
- name: pet play
description: Scenarios with roleplay where one (or more) of the participants plays the part of "pet".

View file

@ -74,7 +74,7 @@ export async function storyFeedItem(
: "") +
`<hr><p><em>${t(data.lang, "story/warnings", data.wordCount, data.contentWarning)}</em></p>` +
`<hr>${await container.renderToString(content)}` +
`<hr>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`,
`<hr><h2>Description</h2>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`,
site,
),
{
@ -112,7 +112,7 @@ export async function gameFeedItem(
`<hr><p>${t(data.lang, "game/platforms", data.platforms)}</p>` +
`<hr><p><em>${data.contentWarning}</em></p>` +
`<hr>${await container.renderToString(content)}` +
`<hr>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`,
`<hr><h2>Description</h2>${await markdown(await qualifyLocalURLsInMarkdown(data.description, data.lang, site))}`,
site,
),
{