Full notes
Full Ultimate JOI update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- UI and audio
- Balance
- Fixes
NOTE: This update is very big, and changes some core mechanics!
IT IS HEAVILY RECOMMENDED THAT YOU MAKE A NEW SETTINGS PROFILE!
Regarding future updates:
The game is now in a state I am happy with, and while there are many things I would consider adding, I can't financially support myself enough to work on this game a lot at the moment. So there will be more updates, but they will be very in-frequent.
THAT BEING SAID, I have set up a patreon at https://www.patreon.com/c/UltimateJOIDev, and if we gain enough members I will be able to dedicate a lot more time to working on this game.
Members will get early access to any future updates, and will get to vote on what features are included in those updates (Once there are enough members to vote that is) Check it out :)
Changes:
Overhauled the trigger system with the new TriggerTask system!
Added a Metronome with configurable BPM to the bottom of the screen. The metronome will hide while the BPM is set to 0.
Replaced "Round Difficulties" with "Round Types". (Note: Old settings will automatically convert difficulties to round types, which may cause unintended behavior. Resetting your settings is recommended.)
Overhauled the settings quiz to a single page scrolling view including dropdown selections and sliders.
Replaced the Insert Dropdown with a popup menu that contains categories and descriptions for variables and methods.
Added the ability to push 'E' while in-game to 'Emergency Edge' which will temporarily pause the game and make all current trigger tasks disappear, reappearing later in the round.
Added a new settings menu to edit and create trigger tasks.
Added a copy / paste button for trigger tasks.
Added the ability for tasks to follow up with other tasks instantly or after a certain time. Allowing for multi-step and status change tasks.
Added the ability to assign different text options for a trigger task, with customizable weights to determine their probability of appearing.
Added the ability for trigger tasks to adjust the Metronome's BPM while the task is on screen, and with an optional delay after it is completed.
Added the ability to adjust the Metronome's BPM at the start of every round, and whenever a trigger occurs.
Added the ability to hide or show the Metronome during the rolling phase of each round
Added the variable [METRONOME_BPM] to get the current BPM of the metronome.
Added the variable "ConfirmTaskCompletion" which allows trigger tasks to either be time based, or confirmation based (With an optional time limit)
Added the variable "TaskTime" which allows trigger tasks to adjust the content swap cooldown when they appear
Added the variable "CooldownAfterTask" which allows trigger tasks to adjust the content swap cooldown after they are completed
Added the variable "MinCompletions" which allows for trigger tasks to prevent a game over until they have appeared a certain amount of times
Added the variable "MissedTriggerAdd", which adds a specified number of guaranteed tasks to the round if the initial task is not completed in time.
Added the variable "IsLuckyTask" which allows trigger tasks to be considered "lucky" which will interact with the lucky rating in reverse, and become unaffected by the mercy / punish mechanics
Added the variable "CanTriggerRoundModifier" which allows trigger tasks to prevent the round modifier from triggering at the same time as the task
Added the variable "NextTaskOdds" which allows for trigger tasks to have a chance of being followed up by another task
Added the variable "NextTaskDelay" which allows for the trigger tasks to delay the next task by a certain amount of time
Added the variable [ROUND_DIFFICULTY] to replace the old round difficulty system
Added the variable "EmergencyEdgeCooldown" which allows you to modify how long the game pauses after an emergency edge
Added the method 'TRIGGERS_APPEARED_SINCE({taskID}, {minutes})' which persists between games on the same settings profile
Added the method 'TRIGGERS_COMPLETED_SINCE({taskID}, {minutes})' which persists between games on the same settings profile
Added the method 'TRIGGERS_MISSED_SINCE({taskID}, {minutes})' which persists between games on the same settings profile
Added the method 'GAMES_STARTED_SINCE({hours})' which persists between games on the same settings profile
Added the method 'GAMES_WON_SINCE({hours})' which persists between games on the same settings profile
Added the method 'GAMES_FAILED_SINCE({hours})' which persists between games on the same settings profile
Added the method 'SECONDS_SINCE_TRIGGER_APPEARED({taskID})' which persists between games on the same settings profile
Added the method 'SECONDS_SINCE_TRIGGER_COMPLETED({taskID})' which persists between games on the same settings profile
Added the method 'SECONDS_SINCE_TRIGGER_MISSED({taskID})' which persists between games on the same settings profile
Added the method 'MINUTES_SINCE_GAME_WON()' which persists between games on the same settings profile
Added the method 'MINUTES_SINCE_GAME_FAILED()' which persists between games on the same settings profile
Added the Variable [EXPECTED_TRIGGERS] which represents the amount of triggers you should have completed to keep up with the Min Game Time
Added the Variable [ROUND_MODIFIERS_THIS_GAME] which represents the amount of Round Modifiers that have occured in the game
Added, removed, or changed pretty much every preset value in the settings menu
The variable "NoBonusConditionWeight" has been deleted, as setting "RoundModifierOdds" to 0 now has the same outcome.
The variable "MaxBonusTriggerOdds" was replaced with "RoundModifierOdds"
The variable "DisplayTriggerAndBonusOdds" was replaced with "DisplayTriggerOdds"
The variable "DisplayBonusCondition" was replaced with "DisplayRoundModifierOdds"
The variable "InstantEndConditionWeight" was replaced with "InstantEndRoundModifierWeight"
The variable "HalveContentBonusConditionWeight" was replaced with "HalveContentRoundModifierWeight"
The variable "ResetBonusConditionWeight" was replaced with "ResetRoundModifierWeight"
The variable "DoubleContentBonusConditionWeight" was replaced with "DoubleContentRoundModifierWeight"
The variable "RollTimeForBonusCondition" was replaced with "RollTimeForRoundModifier"
The variable "BONUS_ODDS" was replaced with "ROUND_MODIFIER_ODDS"
The variable "RAND_PER_BONUS" was replaced with "RAND_PER_ROUND_MODIFIER"
The variable "RollTimeForRoundDifficulty" was replaced with "RollTimeForRoundType"
Removed "Bonus Conditions" and replaced them with "Round Modifiers" which work in a similar way, but instead of being tied to a unique condition, they have a chance to occur during a trigger once per round.
PunishLevel is now unique to each settings profile
Altered the way PunishLevel is stored (this means your current punish level will be reset to 0)
Removed all help videos and replaced them with slideshows, which are easier to update and maintain.
GameDifficulty now displays as text instead of a number in the initial roll
GameDifficulty now scales from 0 to 9 instead of 0 to 5
Added default Edge riding tasks to the game
Added default Faster! and Slower! tasks to the game
Added default Stroke style tasks to the game (Hands used, area, toys)
Added default Position tasks to the game (stand, sit, etc)
Added default Anal tasks to the game (25% chance for the day to contain anal tasks by default)
Added default Vibrator tasks to the game (25% chance for the game to contain vibrator tasks by default)
Added default Stroke round type
Added default Anal round type
Added default Vibrator round type
Added default Edge Ladder round type
The quiz now saves previously set values so they can be easily adjusted.
Added Logs folder for storing game logs
Updated the descriptions of all Variables and methods
Altered the appearance of trigger tasks in the game
Added a button "Test Mode" which prevents the game from saving log data, hold CTRL down in the menu to use it
The round difficulty and round types are now rolled at the same time
Changed a lot of default values
Altered some text and text sizes in the rolling phase
OnlyDisplayStatsWhenCursorMoving now displays stats until the next content change, the same as the Flag buttons.
TriggerOdds are now calculated just before a content change rather than just after
Altered the size of text in some places to prevent overflow
The info display box now appears in the pause screen
Made the info display box invisible while there's a task active in the top-right
Made the info display box adjust smoothly rather than instantly when text changes
Adjusted the cooldown bar to be purely black
Heavily optimized the game by only calculating variables when they are actually being used within a value expression
Added a popup for new players if they click Play before modifying their settings profile, suggesting the settings quiz
The game now opens with the last played settings profile automatically selected
Removed the "MinTriggerCount" value, as it is now applied per task
Removed some of the blacklisted variables for some value formulas
Adjusted which values count as Advanced
Changed the starting color of the menu to blue from yellow
Adjusted the order that values appear in the settings
Altered the screen layout system to provide better content layouts during the game
Added more info to the debug button output in the pause menu
Removed the 'How to play' video screen
Removed some debug logging
Removed "TestMode"
Removed Hash file system for PunishLevel
Removed some duplicate methods
Removed some useless variables
Fixed some spelling mistakes throughout the game
Fixed a bug where pushing space would sometimes flag content, or mark the wrong trigger task as completed
Fixed a bug where using '<=' in IIF methods did not work as intended
Fixed a bug where not adding a 0 before a decimal in settings values resulted in the number being treated as a whole number (.x -> x)
Fixed a bug where some values would not evaluate properly because of system language settings
Source
Changelog.gg summarizes and formats this update. How we read updates.
