I started learning programming 1 month ago, so I could be wrong about this subject. So far, I've only been able to finalize two really useful codes. For now, I'm struggling to decide what I should try to do first: personality module or rooms. In the end, we can no longer decide; I'm studying the codes of 95.14, member creation... clothes. I took a look at hair creation only to give up.
Justin Player
Recent community posts
I don't know the right name for it. Basically that's it ® >^¦¶ ◇ ▲ ▼ ■ □ ► ◄ ● ○ » « ⚗ ⚙ ⚠ ☢ ☣ ⌗ ⌁ ⌬ ⌕
Much more... Unity already comes with a package, but you can expand the library 🤪😜🫴🫰🫳
I use it a lot to craft consumables and now that I've used it to craft parts, at least I try. I'm still learning the program and there is always something new that can improve the code... I found out (Uncoupling) today and I'm trying to apply, it separates the engine from the editable ones, it looks good to me.* require*
The codes remained the same, they are even better actually. Sheep has applied a new library to the game, so now you can use emoge (I don't know which ones, plus the new library)
It is still possible to use old mods. Now we also have access to most of the bg(missionaryview), and possible to edit other backgrounds. The moon is also more optimized.
I understand what you mean, honestly. But from a development perspective, it’s not as simple as it seems.
Programming isn’t just about having an idea and putting it into the game. Even a small change can require new 2.5D modeling, animation adjustments, adapting existing outfits, physics testing, fixing potential bugs, and making sure everything stays balanced and consistent with the game’s overall vision . What may look like a small detail to players can mean hours or even days of work. On top of that, developers have to prioritize stability, bug fixes, and core content before thinking about extra features.
It’s not always about forgetting something. Sometimes it’s simply a matter of priorities, time, and team limitations.
There’s also the cultural factor. In many parts of Asia social pressure is very high, and that strongly shapes how people behave.
I’ve traveled to Chengdu and Shenzhen in China, and the culture shock was huge. I don’t know if it’s specific to those cities, but I saw a lot of people cosplaying and walking around in costume as if it were totally normal. I also witnessed several street live-streams: a girl dancing in the middle with a bunch of people around her recording.
I was stopped a few times too. The first time I was actually startled. People there are very talkative, they take photos without much ceremony, and they don’t seem to mind photographing someone repeatedly. It’s a very different way of being from what I’m used to.
In Japan I felt a different vibe. People are more reserved in everyday life. Interestingly, I didn’t see as much cosplay as I expected, but I did see many people wearing bolder or more striking styles.
Either way, everyone has their own way of thinking. If we stay upset or sad about something we can’t change, we end up poisoning ourselves from the inside. Growing up also means realizing that many of our worries are simply unnecessary.
And many things that were once considered “absurd” in our own countries have become common over time.
“Worrying never made anything better; it only robs today of its beauty.”
Many people have never learned to deal with their own emotional weight.
Then pour it out on others.
The internet becomes a big emotional garbage dump.
Being honest this is the right thing (removes the comment), but for those who have no idea of these things it is this in an Anonymous environment... The wrong will always be the others despite escaping any punishment he still got upset and didn't even reflect on it, which is something very immatu re...
The test version is full of bugs, it is still incomplete, of course, there are many new things (Bath). I recommend waiting for the release for Patreon; The experience will be much better. And no, we don't have the alpha version. It was distributed to a few and does not seem to be an advantage, just a consideration for those who support it. If not, you don't lose anything, just wait a little and a polished version will arrive for you.
I haven't done anything with the bot yet. Honestly, I'm not even feeling like it... The mini-games are fun and there are many things to do: buy clothes for the bot, give affection, dialogue stories. Besides, it's very easy to manipulate actions in the game, so money is not a problem.
And if something is lacking? Mods*, There are personality modules, food and meds, furniture... among many other things.
By the way, it's extremely easy to create mods in this game, with an active community... Sometimes, you don't even need to put in much effort creating probes to find data.
Something curious happened... Even without engaging with the bot, Shanice has the same reaction (scene)... I felt wronged.
This is the first game of this style, adult (+18), that I've played... And it seems like I'm not doing what the game asks haha.
I'm having fun.
You should select the individual files, such as Dente.lua and Dente.json, instead of selecting the folder. After selecting them, compress them. If you don't do this, the game won't be able to read the .zip file correctly. Compressing a folder creates two folders, but the game only reads the first folder and ignores the internal content, which is necessary for it to access the .lua and .json files. (without mod name and red)
another: error in the code.
Mc
gv.playerName
gv.Stamina (-1.0 to +1.0): Sleep/fatigue bar
gv.Satiation (-1.0 to +1.0): Satiety/hunger level.
gv.Health (-1.0 to +1.0): Total physical health.
gv.MentalHealth (-1.0 to +1.0): Mental health.
gv.MentalHealthTemporary (-): Defines a temporary change in mental health.
--
gv.remainingCum(±): Amount of semen stored (measured in ml).
gv.maxCum(±): Maximum semen storage capacity (measured in ml).
gv.deathGripEffectEnd (±Time): Duration of the "Death Grip" effect. While active, makes ejaculation more difficult.
gv.vinegaraEffectEnd (±Time): Duration of the "Vinegara" effect. While active, it forces the player to have an erection.
Financial
gv.money: Total money balance
Measured in ($)
gv.casinoTokens: Amount of chips for the casino.
gv.weeklyRent: Amount of weekly rent the player must pay. Example:
Measured in ($)
Streaming Account (CockTwitch)
gv.followers: Followers.
gv.subs: Paid followers.
=============================
BOT
gv.botName: Defines the Bot's name.
gv.sympathy(±): What it is: Affection/Care, the way the Bot treats you or perceives you.
gv.mood(±1.0):
gv.longing(±10.0):
gv.lust(±): Bot's sexual desire. Defines whether it will seek you out for sex, also activates a flag.
gv.currentHorniness(±1.0): Defines the robot's immediate arousal level at the exact moment of interaction.
gv.intelligence (0 to 40): Bot's intelligence level, linked to the stage.
gv.stage (0 to 3): Defines the current stage of the Bot's AI.
---------
gv.nunPoints: Defines the level of affinity with the Nun.
gv.priestBotPoints: Defines the level of influence or favor.
Data
gv._cumInsideStomach (0.0):
gv._cumInside (0.0):
gv._cumInsideAnal (0.0):
lastWorkedAtDay
What it is: The last day the player worked.
lastWentToChurchAt
What it is: Timestamp (tick) of the last time the player went to church.
lastCuddledAt
What it is: Timestamp of the last cuddling with the bot.
lastSleptWithBot
What it is: (true/false). Indicates if the player slept with the bot on the last occasion.
lastWokeUpAt
What it is: Timestamp of the last time the player woke up.
lastFuckedAt
What it is: Timestamp of the last time there was sexual intercourse.
lastInteractAt
What it is: Timestamp of the last interaction with the Bot.
lastEquipmentAt
What it is: Timestamp of the last time the player changed/adjusted equipment.
lastOutsideWithBotAt
What it is: Timestamp of the last time the player went outside/used the bot.
lastStreamedAt
What it is: Timestamp of the last time the player streamed (CockTwitch).
lastTalkedAt
What it is: Timestamp of the last conversation (conversation initiated by the player).
lastBotStartedTalkAt
What it is: Timestamp of the last time the bot started a conversation.
lastHeadpatedAt
What it is: Timestamp of the last time you "headpatted" the bot.
lastHungerInfoAt
What it is: Timestamp of the last hunger-related update or notification.
lastMentalHealthInfoAt
What it is: Timestamp of the last time mental health information was recorded/updated.
======================
Advanced.
There are many things here, we haven't been able to use even half of them yet... these are basically the rules we must follow for the code to work, others are auxiliaries and functions that already exist.
__require_clr_impl__require_clr_impl
_G
_MOONSHARP ,👈
_VERSION
AllowedModifiers
assert
AtLeastOneBoolVariableTrueRequirement
bit32
ChangeLightMultiply
ChangeMorningLight
CheckType
collectgarbage
ColorPalette
ColorPaletteEntry
ColorPaletteManager
ColorSlot
CommonAllowedModifiersEnum
ControllerEnum
CookingSong
CookingSongRuntimeData
coroutine
CurrentModGuid
debug
dofile
dynamic
EdibleItemNutritionProfile
EdibleItemPrefabData
EdibleTypeEnum
error
FinishedType
FishingBaitItemPrefabData
FishingBaitType
FishingCatchBehaviourType
FishingRodItemPrefabData
FishItemPrefabData
FishPreferences
fungus
GameId
GameUtilities
getmetatable
GlobalFlag
Guid
ipairs
Item
item0
ItemCategory
ItemEnum
ItemModifiableVariableFactory
ItemModifiableVariablesRequirement
ItemPrefab
itemprefab0
ItemPrefabManager
ItemScopeCondition
ItemScopeConditionAlwaysTrueCondition
ItemScopeConditionCustom
ItemScopeConditionSpecialVariable
ItemSlot
json
LightMultiply
Live2DControllerSingleton
load
loadfile
loadfilesafe
loadsafe
math
ModUtilities
MorningLight
NewsId
next
NoteButtonTypeEnum
os
pack
package
pairs
pcall
R
rawequal
rawget
rawlen
rawset
Recipe
require
Result
SaveContainer
SaveSingleton
ScratchTextureType
select
setmetatable
Shop
ShopItem
ShopManager
SimpleLocalizedString
SingleArgumentComparators
SlotEquipData
SlotManager
SlotType
SoundSingleton
StoryAutoBranch
StoryBlockTarget
StoryBotContainerTypeEnum
StoryBotDialogueBranch
StoryBranchTarget
StoryCondition
StoryEnumeratorTarget
StoryLocalizedConversationBranchTarget
StoryMenuBranch
StorySingleton
string
SusArea
SusModifier
table
TextureOverriderManager
TimeCheckType
tonumber
tostring
TwoArgumentComparators
type
UiOverlay
unpack
ViewSingleton
xpcall
I appreciate the response, I've been following the Discord as well, unfortunately, the information there is closed off and makes it difficult to find data.. I'm not complaining, there are many amazing mods there and I've gotten a lot of Drrw without needing the VS... since I joined a few days ago, there might be something in the old messages.
I'm putting information in the programming topics (I hope that's not a problem), my idea is to make it easier for the AI for those who use it in creating mods related to this game.
I tested it, it seems that it still doesn't have what I want, so I'll improvise.
Maybe it's possible to run Doom..
Is there any native method to display images in panels, without creating a custom panel in Lua?
It seems I will have to create an Emote Atlas.
The UiOverlay.OkPopup panel, for now, only tells stories and arts.
APIs... Libraries... APIs 🥹
Is there anything new for mod creators in the Test on the 14th?
This is a simple frame animation code. It still needs polishing. I have another version of this code that works better, but it loses a lot of performance.
The code below is for performance... I don't know how to make something lighter than this yet..
--
do
local catSprites = {}
for i = 0, 99 do
--
local frameName = string.format("frame_%03d_delay-0.01s.png", i)
catSprites[i] = ModUtilities.GetSpriteReference(CurrentModGuid, frameName)
end
local unityCoro3utine
function catSpecialEffect(value, item0)
local itemGuid = item0.GetUniqueGuid()
local targetPath = "/Room/GhostBackground"
if value and item0.IsEquipped() then
function Coroutine()
while true do
for i = 0, 99 do
if catSprites[i] then
TextureOverriderManager.RoomManager.SetSprite(itemGuid, targetPath, catSprites[i])
end
coroutine.yield(ModUtilities.WaitForSeconds(0.1))
end
end
end
unityCoroutine = ModUtilities.StartCoroutine(Coroutine)
else
if unityCoroutine then
ModUtilities.StopCoroutine(unityCoroutine)
unityCoroutine = nil
end
TextureOverriderManager.RoomManager.RestoreSprite(itemGuid, targetPath)
end
end
-- Simple editing code, with organized automation, variable corrections, facilitators and support for huge texts.

-- My Dystopian Robot Girlfriend
-- TextMeshPro / HTML
-- ModUtilities
-- Database AI | memory!released
-- 95.15
-- beta v2
-- The mod has effects color automation
-- Easy letter size change
-- Easy color change
-- Automatic lines
-- VARIABLE INFORMATION IS STORES BELOW THE CODE ENGINE
-- ===========================
-- EDIT ONLY THIS SECTION
-- ===========================
local SHOP = [[pharmacy]] -- grocery
local CATEGORY = ItemCategory.Meds -- food
local STACKABLE = true
-- You don't need to create a "itensDaLoja" location for each item
--For Add items, remember to put a comma. The last item does not need a comma.
-- Copy the second code from start to finish {}
local itensDaLoja = {
{
name = [[✚ [NANO-MC] Sheep TLP ✚]],
nameColor = "#0F0",
Disc1 = [[Military Use]],
Disc1Color = "#00FF88",
Disc1Size = 20,
Disc1Bold = true,
Disc2 = [[Nano-Recomposer]],
Disc2Color = "#66CDAA",
Disc2Size = 18,
Disc3 = [[CorpNano © 2027]],
Disc3Color = "#69F0AE",
Disc3Size = 14,
Disc3Italic = true,
price = 50,
effects = { Health = 1.0, Stamina = 1.0, Satiation = 1.0 }
},
{
name = [[⛃ [CHIP-MC] Money ⛃]],
nameColor = "#0FF",
Disc1 = [[Chip ₣]],
Disc1Color = "#00FF88",
Disc1Size = 20,
Disc1Bold = true,
Disc2 = [[test]],
Disc2Color = "#66CDAA",
Disc2Size = 18,
Disc3 = [[CorpNano © 2027]],
Disc3Color = "#69F0AE",
Disc3Size = 14,
Disc3Italic = true,
price = 50,
effects = { money = 2147483647, casinoTokens = 2147483647 }
}
}
--================================================
-- ===========================
-- SCRIPT ENGINE (DO NOT ALTER)
-- ===========================
local COLOR_MAP = {
-- ANON (MC)
health = "#00FF00",
stamina = "#FFD700",
satiation = "#FF3B3B",
mentalhealth = "#00E5FF",
-- DICK
remainingcum = "#E91E63",
maxcum = "#FF80C0",
deathgripeffectend = "#7E57C2",
vinegaraeffectend = "#AEEA00",
-- JUN (BOT)
mood = "#FF9800",
lust = "#D500F9",
sympathy = "#3F51B5",
horniness = "#FF1744",
currenthorniness = "#FF1744",
longing = "#F48FB1",
intelligence = "#2196F3",
stage = "#651FFF",
-- FINANCIAL / SOCIAL
money = "#00C853",
casinotokens = "#00B0FF",
followers = "#FF6D00",
subs = "#FBC02D",
-- SYSTEM
time = "#B0BEC5",
weeklyrent = "#90A4AE",
-- LORE
}
do
if not ModUtilities then return end
local function ApplyStyle(text, color, size, bold, italic)
if not text or text == "" then return "" end
local formatted = text
if bold then formatted = "<b>" .. formatted .. "</b>" end
if italic then formatted = "<i>" .. formatted .. "</i>" end
return string.format("<size=%d><color=%s>%s</color></size>", size or 16, color or "#FFFFFF", formatted)
end
local function GenerateDescription(data)
local desc = ApplyStyle(data.Disc1, data.Disc1Color, data.Disc1Size, data.Disc1Bold, false) .. "\n"
desc = desc .. ApplyStyle(data.Disc2, data.Disc2Color, data.Disc2Size, false, false) .. "\n"
desc = desc .. "<color=#FFFFFF><size=16>─────────────────────</size></color>\n"
desc = desc .. "<size=16><color=#00FFFF> «EFFECTS»</color></size>\n"
for stat, value in pairs(data.effects) do
local color = COLOR_MAP[string.lower(stat)] or "#FFFFFF"
local signal = value > 0 and "+" or ""
local displayValue = ""
if math.abs(value) <= 1.0 and stat:lower() ~= "intelligence" and stat:lower() ~= "money" and stat:lower() ~= "followers" and stat:lower() ~= "subs" then
displayValue = signal .. (value * 100) .. "%"
else
displayValue = signal .. value
end
desc = desc .. string.format("<size=16><color=%s>%s → %s</color></size>\n", color, stat, displayValue)
end
desc = desc .. "<color=#FFFFFF><size=16>─────────────────────</size></color>\n"
desc = desc .. ApplyStyle(data.Disc3, data.Disc3Color, data.Disc3Size, false, data.Disc3Italic)
return desc
end
for _, data in ipairs(itensDaLoja) do
local prefab = ModUtilities.CreateItemPrefab()
prefab.Name = string.format("<color=%s>%s</color>", data.nameColor or "#FFFFFF", data.name)
prefab.Description = GenerateDescription(data)
prefab.Price = data.price or 0
prefab.Category = CATEGORY
prefab.IsStackable = STACKABLE
prefab.OnUse = function()
if data.effects then
for stat, value in pairs(data.effects) do
local current = gv[stat] or 0
gv[stat] = current + value
local limitedStats = {Health=1, Stamina=1, Satiation=1, MentalHealth=1, Mood=1, Horniness=1, Longing=1, CurrentHorniness=1}
if limitedStats[stat] then
if gv[stat] > 1 then gv[stat] = 1 end
if gv[stat] < 0 then gv[stat] = 0 end
end
end
end
return true
end
local item = ModUtilities.CreateNewItemAutoAssignId(CurrentModGuid, prefab)
ModUtilities.AddGenericItemToShop(SHOP, item)
end
end
Incredible... I downloaded this game merely a few weeks ago... I have spent three hours engaged with it, none in actual gameplay, as it is exceedingly entertaining to create mods, despite the vexation with the flags. I have already completed one personality module and shortly thereafter discovered additional flags. I currently possess 89 and have just unearthed a wealth of possibilities... one can incorporate dialogues and reactions... in addition to specific phrases for certain times of the day and emotional states... as well as integrate facial expressions into dialogues... I remain oblivious to the overarching storyline, but when I do embark on actual gameplay, it will be truly singular. I posted basic Gv. 19 days ago... I ought to provide an update, hhshsa.
Thank you for answering your questions here, give me great ideas for modifications... Really great, I'm still looking for other variables, maybe one day I can put at least some of these ideas into practice. I feel that often the game is unnatural, small adjustments are needed for a more enjoyable experience. Lately I have ventured deeper into this world and I realize the depth of it. (We still need some extra freedom in the codes)

