Forum

DnD Forum

Welcome to ChatDnD’s D&D Forum, adventurer! Our forum is a treasure trove of knowledge for all things Dungeons & Dragons. From campaign ideas to character building and DM tips, our community of experienced players is here to guide you on your quest. Our homebrew content section allows you to share and explore new classes, races, monsters, and more. We also provide a space for finding players or groups to play with. Whether you’re a seasoned player or a newbie, our D&D forum is the perfect place to hone your skills and connect with like-minded adventurers. Join us now and level up your D&D game!

Please or Register to create posts and topics.

What Is Janitor AI? Complete Guide to Features, Login, App, and AI Chatbots

Explore Janitor AI, a free AI chatbot platform for creating, discovering, and chatting with personalized fictional characters. Learn how Janitor AI works, whether it is free, how to use the Janitor AI app and login, create custom characters, understand built-in AI and DeepSeek options, manage common errors, and consider privacy and safety before using the platform.

Uploaded files:
  • You need to login to have access to uploads.
`); iframeDoc.close(); iframe.contentWindow.focus(); iframe.contentWindow.print(); setTimeout(() => document.body.removeChild(iframe), 1000); });shareBtn.addEventListener('click', async () => { const text = document.getElementById('npc-container').innerText;if (navigator.share) { try { await navigator.share({ title: 'NPC Details', text: text }); console.log('NPC shared successfully.'); } catch (err) { console.error('Share failed:', err); alert('Failed to share. Please try again.'); } } else { try { await navigator.clipboard.writeText(text); alert('NPC details copied to clipboard.'); } catch (err) { console.error('Clipboard copy failed:', err); alert('Failed to copy. Please try again.'); } } });let isFavorite = false; favoriteBtn.addEventListener('click', () => { isFavorite = !isFavorite; favoriteBtn.textContent = isFavorite ? '⭐ Favorited' : '⭐ Favorite'; favoriteBtn.style.backgroundColor = isFavorite ? '#f0ad4e' : ''; });window.onclick = (event) => { if (event.target === modal) modal.style.display = 'none'; };document.addEventListener('keydown', (e) => { if (e.key === 'Escape') modal.style.display = 'none'; }); }