478 lines
19 KiB
HTML
478 lines
19 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" dir="ltr" id="page-top">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
|
|
<meta property="og:title" content="On Me Taking Over the Management and Development of DarthTyren's PartySwap Mod | Articles | Star Wars: Knights of the Old Republic Shrine">
|
|
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="Official announcement about me taking over the management and development of DarthTyren's PartySwap mod for Star Wars: Knights of the Old Republic II.">
|
|
<meta name="generator" content="Eleventy v2.0.1">
|
|
<meta property="og:type" content="website">
|
|
<meta property="og:url" content="https://leilukin.neocities.org/shrines/starwarskotor/articles/partyswap-management-takeover/">
|
|
<meta property="og:site_name" content="Leilukin's Hub">
|
|
<meta property="og:locale" content="en_MY">
|
|
<meta property="og:description" content="Official announcement about me taking over the management and development of DarthTyren's PartySwap mod for Star Wars: Knights of the Old Republic II.">
|
|
<meta name="twitter:card" content="summary">
|
|
<meta name="twitter:url" content="https://leilukin.neocities.org/shrines/starwarskotor/articles/partyswap-management-takeover/">
|
|
<meta name="twitter:description" content="Official announcement about me taking over the management and development of DarthTyren's PartySwap mod for Star Wars: Knights of the Old Republic II.">
|
|
<link rel="canonical" href="https://leilukin.neocities.org/shrines/starwarskotor/articles/partyswap-management-takeover/">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/assets/css/main.css">
|
|
|
|
<link rel="stylesheet" href="/assets/css/starwarskotor.css">
|
|
|
|
|
|
|
|
<link rel="stylesheet" href="/assets/fonts/noto-sans/noto-sans.css">
|
|
|
|
|
|
<link href="/assets/fonts/fontawesome/css/fontawesome.css" rel="stylesheet" />
|
|
<link href="/assets/fonts/fontawesome/css/brands.css" rel="stylesheet" />
|
|
<link href="/assets/fonts/fontawesome/css/solid.css" rel="stylesheet" />
|
|
|
|
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/assets/shrines/starwarskotor/images/kotor-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/shrines/starwarskotor/images/kotor-icon.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/shrines/starwarskotor/images/kotor-icon.png">
|
|
<link rel="manifest" href="/assets/favicon/site.webmanifest">
|
|
|
|
|
|
<title>
|
|
|
|
On Me Taking Over the Management and Development of DarthTyren's PartySwap Mod | Articles | Star Wars: Knights of the Old Republic Shrine | Leilukin's Hub
|
|
|
|
</title>
|
|
</head>
|
|
<body>
|
|
<header class="hero">
|
|
<div class="hero__top-bar hidden"></div>
|
|
<div class="hero__img">
|
|
|
|
<picture>
|
|
<source srcset="/assets/shrines/starwarskotor/images/swkotor-header-320.png" media="(orientation: landscape)" />
|
|
<img src="/assets/shrines/starwarskotor/images/swkotor-header.jpg" alt="anner of Star Wars: Knights of the Old Republic Shrine" />
|
|
</picture>
|
|
|
|
</div>
|
|
</header>
|
|
|
|
<style>
|
|
.hero {
|
|
width: 100%;
|
|
background-color: var(--clr-hero-bg);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
text-align: center;
|
|
}
|
|
|
|
.hero__top-bar {
|
|
background-color: var(--clr-navbar-bg);
|
|
width: 100%;
|
|
padding: 0.5em 0.7em;
|
|
}
|
|
|
|
.hero__img {
|
|
display: grid;
|
|
place-content: center;
|
|
}
|
|
|
|
.hero img {
|
|
object-fit: contain;
|
|
overflow: hidden;
|
|
max-height: 16rem;
|
|
|
|
}
|
|
</style>
|
|
|
|
<script defer>
|
|
const hero = document.querySelector(".hero");
|
|
const heroTopBarEl = document.querySelector(".hero__top-bar");
|
|
const headerImgEl = document.querySelector(".hero__img");
|
|
|
|
|
|
const todayEvent = getTodayEvent();
|
|
|
|
if (todayEvent) {
|
|
heroTopBarEl.classList.remove('hidden');
|
|
heroTopBarEl.innerHTML = todayEvent;
|
|
}
|
|
|
|
function getTodayEvent() {
|
|
const date = new Date();
|
|
const month = date.getMonth() + 1;
|
|
const day = date.getDate();
|
|
const year = date.getFullYear();
|
|
|
|
const kotor1ReleaseDate = new Date("2003-07-15").getFullYear();
|
|
const kotor2ReleaseDate = new Date("2004-12-06").getFullYear();
|
|
const kotor1Anniversary = year - kotor1ReleaseDate;
|
|
const kotor2Anniversary = year - kotor2ReleaseDate;
|
|
|
|
if (month === 7 && day === 15)
|
|
return `
|
|
Today is the ${kotor1Anniversary}-year anniversary of the release of <cite>Star Wars: Knihgts of the Old Republic</cite>
|
|
`;
|
|
else if (month === 12 && day === 6)
|
|
return `
|
|
Today is the ${kotor2Anniversary}-year anniversary of the release of <cite>Star Wars: Knights of the Old Republic II — The Sith Lords</cite>
|
|
`;
|
|
else
|
|
return null;
|
|
}
|
|
|
|
</script>
|
|
<nav class="navbar">
|
|
<button class="navbar__toggle" aria-label="Navigation menu toggle">
|
|
<i class="fa-solid fa-bars"></i>
|
|
<h2 class="navbar__title">Navigation</h2>
|
|
</button>
|
|
<ul class="navbar__links">
|
|
|
|
|
|
|
|
|
|
<li>
|
|
<a href="/shrines/starwarskotor/">Shrine Home</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/articles/">Articles</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/guides/">Guides</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/resources/">Resources</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/universes/">Universes</a>
|
|
</li>
|
|
<li><a href="/shrines/">Shrine Index</a></li>
|
|
<li><a href="/">Main Site</a></li>
|
|
|
|
</ul>
|
|
</nav>
|
|
|
|
<style>
|
|
.navbar {
|
|
background: var(--clr-navbar-bg);
|
|
padding: 0.6em 1em;
|
|
width: 100%;
|
|
z-index: 999;
|
|
position: sticky;
|
|
top: 0;
|
|
}
|
|
|
|
.navbar__toggle,
|
|
.navbar__title {
|
|
color: var(--clr-navbar-link);
|
|
font-size: 1.3rem;
|
|
}
|
|
|
|
.navbar__toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.5em;
|
|
border: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
background-color: inherit;
|
|
}
|
|
|
|
.navbar__toggle:focus,
|
|
.navbar a:focus {
|
|
outline: 0.15em solid var(--clr-navbar-link);
|
|
}
|
|
|
|
.navbar a {
|
|
color: var(--clr-navbar-link);
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.navbar a:hover {
|
|
color: var(--clr-link-hover);
|
|
}
|
|
|
|
.navbar a:focus {
|
|
outline-offset: 0.3em;
|
|
}
|
|
|
|
.navbar__links {
|
|
list-style: none;
|
|
display: none;
|
|
gap: 1em;
|
|
padding: 0.5em 1.8em;
|
|
overflow: auto;
|
|
}
|
|
|
|
.navbar__links--show {
|
|
display: grid;
|
|
}
|
|
|
|
/* Tablet screen size */
|
|
@media only screen and (min-width: 43.75rem) {
|
|
.navbar {
|
|
padding: 0 0.6em;
|
|
}
|
|
|
|
.navbar__toggle {
|
|
display: none;
|
|
}
|
|
|
|
.navbar__links {
|
|
display: flex;
|
|
justify-content: space-evenly;
|
|
gap: 0.5em;
|
|
flex-wrap: wrap;
|
|
padding: 0;
|
|
overflow: unset;
|
|
}
|
|
}
|
|
</style>
|
|
|
|
<script defer>
|
|
const navbarToggle = document.querySelector('.navbar__toggle');
|
|
const navbarLinks = document.querySelector(".navbar__links");
|
|
|
|
navbarToggle.addEventListener('click', () => {
|
|
navbarLinks.classList.toggle("navbar__links--show");
|
|
});
|
|
</script>
|
|
|
|
<main>
|
|
<header class="main__header">
|
|
|
|
<ul class="breadcrumbs">
|
|
|
|
<li>
|
|
<a href="/shrines/">Shrines</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/">Star Wars: Knights of the Old Republic Shrine</a>
|
|
</li>
|
|
<li>
|
|
<a href="/shrines/starwarskotor/articles/">Articles</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
<h1>On Me Taking Over the Management and Development of DarthTyren's PartySwap Mod</h1>
|
|
<div class="article__info">
|
|
<p>Posted on 12 July 2023 by Leilukin
|
|
|
|
• Last updated on 11 October 2023</p>
|
|
|
|
|
|
<p>Categories:
|
|
|
|
<a href="/categories/star-wars-kotor-2">star wars kotor 2</a>,
|
|
|
|
<a href="/categories/modding">modding</a>
|
|
|
|
</p>
|
|
|
|
<p>🍿 4 min. read</p>
|
|
</div>
|
|
|
|
</header>
|
|
|
|
<div class="content__wrapper">
|
|
|
|
|
|
|
|
<article class="article">
|
|
<p>Starting from 11 July 2023, I, Leilukin, have officially taken over the management and development of DarthTyren's <a href="https://deadlystream.com/files/file/544-partyswap/" target="_blank">PartySwap</a> mod for Star Wars: Knights of the Old Republic: The Sith Lords.</p>
|
|
<p><img src="/assets/shrines/starwarskotor/articles/partyswap-ownership-takeover.png" alt="Screenshot of the PartySwap mod's download page, showing Leilukin as the owner"></p>
|
|
<p>PartySwap is a mod that allows you to recruit both Handmaiden and Disciple as party members in a single playthrough regardless of the player character's gender. Since its release on May 21, 2015, PartySwap has been one of the most popular KotOR 2 mods, for very good reasons: it is an excellent mod from concept and execution on both story and technical standpoints. Even though PartySwap was not the first <a href="/shrines/starwarskotor/resources/kotor2-female-exile-recruit-handmaiden-mods">mod that allows a female player character to recruit Handmaiden as a party member</a>, it was the first that actually makes both Handmaiden and Disciple join your party in the same playthrough, regardless of the player character's gender. It is a further testament to PartySwap's quality that it has been included in the <a href="https://kotor.neocities.org/modding/" target="_blank">KotOR Community Portal's mod builds</a>, which are known for high-standards for mod quality, and described by the mod builds as a legendary mod.</p>
|
|
<p>Developing and maintaining a highly regarded mod like PartySwap is no small task, as it requires both time and skill. At the end of the day, video game modding is a hobby, and generally modders create mods out of passion for and interest in the source material, and not for profit. Interests can change, especially when it is caused by real-life factors. Therefore, it is understandable that on 2 May 2023, nearly 8 years after the initial release of PartySwap, DarthTyren <a href="https://deadlystream.com/topic/3220-modpartyswap/?do=findComment&comment=89194" target="_blank">announced his intention of stepping away from KotOR modding and transferring the management of PartySwap</a> in the mod's thread on the Deadly Stream forums:</p>
|
|
<blockquote>
|
|
<p>CONFESSION TIME: I've kinda taken a break from KotOR modding and Star Wars in general, as I have far greater pursuits to occupy myself with. I've been doing a lot of writing and playing other games that before I never would have given thought to, not to mention taking my faith far more seriously. Logically, that means certain things would have to fall to the side to make room, and Star Wars ended up being one of those things I lost interest in, something I never thought possible.</p>
|
|
<p>This puts the future of the mod in a bit of a pickle: I can't spend much time working on keeping it updated, because that would require sinking hours of productivity into playtesting that I can't commit to anymore. I apologize for my silence and my absence, but only now have I actually gained the courage to say as much. So, though it pains me greatly, and I'll probably regret it in the short-term, after much careful contemplation on the matter, I have to believe this is what's best:</p>
|
|
<p>PartySwap is up for adoption.</p>
|
|
<p>If you would be interested in taking over future development, send me a DM explaining why you're the right person for the role and what your plans for the mod would be going forward. Why such a fuss? It sounds lame, but this mod is the biggest contribution I've made to the world to date. I don't want to just hand it over and suddenly have it botched and butchered beyond recognition like Disney's Star Wars - so yes, there's a bit of pride here. I feel like I'm handing over my child.</p>
|
|
<p>Until next time.</p>
|
|
</blockquote>
|
|
<p>After seeing DarthTyren's announcement, I contacted him via Deadly Stream's private message system to volunteer myself to take over future development of PartySwap, since I believed I am qualified for the task for a couple of reasons: I have used PartySwap in my own playthroughs, and as a KotOR modder with a fair amount of experience myself (I had started making mods for the KotOR games since 2016), I am very familiar with how the PartySwap works technical-wise, which is why I was able to make a <a href="https://deadlystream.com/files/file/1304-partyswap-and-extended-enclave-compatibility-patch/" target="_blank">compatibility patch for PartySwap and Extended Enclave</a>. I am still involved in KotOR modding, and regularly participating in the <a href="https://discord.gg/kotor" target="_blank">KotOR Subreddit Discord server</a> to provide support for KotOR modding.</p>
|
|
<p>In 11 July 2023, DarthTyren announced his decision to <a href="https://deadlystream.com/topic/3220-modpartyswap/?do=findComment&comment=89688" target="_blank">hand over the development and management of PartySwap to me</a>:</p>
|
|
<blockquote>
|
|
<p>Everyone give a nice, warm welcome to the new manager of PartySwap: @Leilukin!</p>
|
|
<p>I'm aware how long I took with this announcement. I sat on this decision for months, but with Leilukin's current activity level in the community and as a modder, as well as her familiarity with the mod and how it works and her vision for the future, there really was no one else this mod could be passed off to.</p>
|
|
<p>I want to thank everyone who supported me and PartySwap over the last several years, and even as I step away from modding and Star Wars entirely, I hope you'll join me in wishing Leilukin the best.</p>
|
|
<p>For the last time...</p>
|
|
<p>Darth Tyren has spoken!</p>
|
|
</blockquote>
|
|
<p>It is a huge honour to be trusted with the task of managing one of the most popular mods for the KotOR games by the mod's author himself. I totally understand that Tyren did not make this decision lightly, and I fully intend to use my new role as the new manager of PartySwap responsibly.</p>
|
|
<p>In order to make future management of the mod file hosted on Deadly Stream smoother, Snigaroo, one of the administrators of Deadly Stream, has also transferred PartySwap's file ownership on the website to me upon DarthTyren's request. As a result, from now on, when you visit PartySwap's download page on Deadly Stream, you will see me as the file owner.</p>
|
|
<p>My plan for the future of PartySwap would be maintaining the mod and keeping the mod as bug-free as possible, and ensuring compatibility with the KotOR subreddit's mod builds. I might also add compatibility patches for other mods if such a need arises. Therefore, if you encounter any bug or issue with PartySwap, I am the person to report to.</p>
|
|
<p>I would like to thank DarthTyren for his effort in making and maintaining PartySwap throughout the years, and his trust in my capability in managing his mod.</p>
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
<aside class="right-sidebar">
|
|
<div class="shrine__info sidebar--sticky">
|
|
<h2>About</h2>
|
|
|
|
<p>Welcome to Leilukin's shrine for <cite>Star Wars: Knights of the Old Republic</cite>, a series of role-playing video games set in the <cite>Star Wars</cite> universe, taking place almost 4,000 years before the events of the Skywalker film saga.</p>
|
|
|
|
<h3>Links</h3>
|
|
<ul>
|
|
|
|
<li><a href="https://kotor.neocities.org/" target="_blank">KOTOR Community Portal</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</aside>
|
|
|
|
<style>
|
|
.right-sidebar {
|
|
background-color: var(--clr-content-bg);
|
|
font-size: clamp(0.9rem, 0.9rem + 3vw, 1rem);
|
|
}
|
|
|
|
.shrine__info {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.shrine__info h2 {
|
|
font-size: clamp(1.5rem, 1rem + 3vw, 1.7rem);
|
|
margin-bottom: 0.2em;
|
|
}
|
|
|
|
.shrine__info h3 {
|
|
font-size: clamp(1.3rem, 1rem + 3vw, 1.5rem);
|
|
margin-top: 1em;
|
|
}
|
|
|
|
.shrine__info ul {
|
|
margin-top: 0.5em;
|
|
}
|
|
</style>
|
|
</div>
|
|
|
|
<style>
|
|
.breadcrumbs {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0 0 0.7em 0;
|
|
display: flex;
|
|
gap: 0.5em;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
}
|
|
|
|
.breadcrumbs li::after {
|
|
content: '➔';
|
|
padding-left: 0.3em;
|
|
}
|
|
</style>
|
|
</main>
|
|
<footer class="footer">
|
|
<p>Made with ♥ and the Force by Leilukin | Shrine Launched: 17 February 2023</p>
|
|
|
|
<p>Back to: <a href="/shrines/">Shrine Index</a> | <a href="/">Leilukin's Hub</a></p>
|
|
</footer>
|
|
|
|
<style>
|
|
.footer {
|
|
margin-top: auto;
|
|
width: 100%;
|
|
background: var(--clr-main-footer-bg);
|
|
padding: 1rem 1rem 3rem 1rem;
|
|
text-align: center;
|
|
display: grid;
|
|
}
|
|
|
|
.footer p {
|
|
padding: 0;
|
|
}
|
|
|
|
.footer__links {
|
|
justify-self: center;
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
gap: 0.7em;
|
|
}
|
|
|
|
.footer__links li:not(:last-child)::after {
|
|
content: '|';
|
|
padding-left: 0.6em;
|
|
}
|
|
|
|
/* Screen sizes larger than mobile */
|
|
@media only screen and (min-width: 30rem) {
|
|
.footer {
|
|
padding: 1rem 1rem 2rem 1rem;
|
|
}
|
|
}
|
|
|
|
/* Tablet screen size */
|
|
@media only screen and (min-width: 43.75rem) {
|
|
.footer {
|
|
padding: 1rem;
|
|
}
|
|
}
|
|
</style>
|
|
<button class="top-btn hidden" aria-label="Scroll to top">
|
|
<i class="fa-solid fa-chevron-up"></i>
|
|
</button>
|
|
|
|
<style>
|
|
.top-btn {
|
|
position: fixed;
|
|
margin: 0;
|
|
padding: 0;
|
|
bottom: 0.5rem;
|
|
right: 0.5rem;
|
|
z-index: 999;
|
|
border: none;
|
|
background-color: var(--clr-top-btn-bg);
|
|
color: var(--clr-top-btn-txt);
|
|
border-radius: 50em;
|
|
width: 2rem;
|
|
aspect-ratio: 1 / 1;
|
|
}
|
|
|
|
.top-btn:focus {
|
|
outline: 0.25em solid var(--clr-top-btn-bg);
|
|
outline-offset: 0.15em;
|
|
}
|
|
</style>
|
|
|
|
<script defer>
|
|
const topButton = document.querySelector(".top-btn");
|
|
|
|
window.onscroll = () => {
|
|
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
|
topButton.classList.remove("hidden");
|
|
} else {
|
|
topButton.classList.add("hidden");
|
|
}
|
|
}
|
|
|
|
topButton.addEventListener('click', () => {
|
|
window.scrollTo({
|
|
top: 0,
|
|
left: 0,
|
|
behavior: "smooth",
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html> |