diff -ruN --text "../../../Etterna-temp/Themes/Rebirth/BGAnimations/ScreenEvaluation decorations/mainDisplay.lua" "./BGAnimations/ScreenEvaluation decorations/mainDisplay.lua"
--- "../../../Etterna-temp/Themes/Rebirth/BGAnimations/ScreenEvaluation decorations/mainDisplay.lua"	2023-03-22 00:33:34.000000000 -0300
+++ "./BGAnimations/ScreenEvaluation decorations/mainDisplay.lua"	2024-06-23 16:05:13.423768500 -0300
@@ -1345,6 +1345,68 @@
             self:xy(actuals.RightHalfLeftGap + actuals.RightHalfRightAlignLeftGap, actuals.RightHorizontalDivider1UpperGap)
         end,
 
+        UIElements.SpriteButton(1, 1, THEME:GetPathG("", "warning-64")) .. {
+            Name = "WarningIcon",
+
+            InitCommand = function(self)
+                warningTooltipString = THEME:GetString("ScreenEvaluationWarnings", "TooltipHeader")
+                rateTooLowString = THEME:GetString("ScreenEvaluationWarnings", "RateTooLow")
+                rateTooHighString = THEME:GetString("ScreenEvaluationWarnings", "RateTooHigh")
+                halfrateString = THEME:GetString("ScreenEvaluationWarnings", "HalfRate")
+                songTooShortString = THEME:GetString("ScreenEvaluationWarnings", "SongTooShort")
+                self:visible(false)
+            end,
+
+            SetCommand = function(self, params)
+                if params.score ~= nil then
+                    doShow = false
+                    if getCurRateValue() < 0.7 then
+                        warningTooltipString = warningTooltipString .. rateTooLowString
+                        self:visible(true)
+                        doShow = true
+                    end
+                    if getCurRateValue() > 2.0 then
+                        warningTooltipString = warningTooltipString .. rateTooHighString
+                        self:visible(true)
+                        doShow = true
+                    end
+                    local percent = params.score:GetWifeScore() * 100
+                    if params.judgeSetting ~= nil then
+                        local rescoreTable = gatherRescoreTableFromScore(params.score)
+                        percent = getRescoredWife3Judge(3, 4, rescoreTable)
+                    end
+                    if params.steps:GetMSD(getCurRateValue(), 1) > params.score:GetSkillsetSSR("Overall") and
+                       string.len(tostring(getCurRateValue())) > 3 and -- hehe
+                       percent > 93 then 
+                        warningTooltipString = warningTooltipString .. halfrateString
+                        self:visible(true)
+                        doShow = true
+                    end
+                    if params.song:GetStepsSeconds() < 70 then
+                        warningTooltipString = warningTooltipString .. songTooShortString
+                        self:visible(true)
+                        doShow = true
+                    end
+                    self:halign(1):valign(1.2)
+                    self:zoomto(32, 32)
+                    if doShow then
+                        MESSAGEMAN:Broadcast("BumpLeft")
+                    end
+                end
+            end,
+
+            MouseOverCommand = function(self)
+                self:diffusealpha(0.7)
+                TOOLTIP:SetText(warningTooltipString)
+                TOOLTIP:Show()
+            end,
+
+            MouseOutCommand = function(self)
+                self:diffusealpha(1)
+                TOOLTIP:Hide()
+            end,
+        },
+
         LoadFont("Common Large") .. {
             Name = "Grade",
             InitCommand = function(self)
@@ -1420,6 +1482,9 @@
                 else
                     self:settext("")
                 end
+            end,
+            BumpLeftMessageCommand = function(self, params)
+                self:addx(-40)
             end
         }
     },
diff -ruN --text ../../../Etterna-temp/Themes/Rebirth/Graphics/warning-64.png ./Graphics/warning-64.png
--- ../../../Etterna-temp/Themes/Rebirth/Graphics/warning-64.png	1969-12-31 21:00:00.000000000 -0300
+++ ./Graphics/warning-64.png	2024-06-23 12:35:38.235932900 -0300
@@ -0,0 +1,11 @@
+‰PNG
+
+
IHDR@@ªiqÞ„iCCPICC profile(‘}‘=HÃ@Å_Sµ"•QˆP�ì¢"Ž¥ŠE°PÚ
+­:˜\úM’GÁµààÇbÕÁÅYWWAüqvpRt‘ÿ—ZÄzpÜ�w÷wï¡^fªÙTÍ2’±¨˜É®Š¾Wô`ŒaTb¦O-¦Ñq|ÝÃÃ×»0Ïê|îÏÑ¯äLxDâÓ
‹xƒxvÓÒ9ïYQRˆÏ‰'
º ñ#×e—ß8xfÐH'ç‰ƒÄb¡�å6fEC%ž!)ªFùBÆe…ógµ\eÍ{òúsÚJŠë4GÃâH@„Œ*J(ÃB˜V�IÚ�vð;þ¹dr•ÀÈ±€
+THŽü~wkæ§§Ü$è~±í�qÀ·4j¶ý}lÛ�Àû\i-¥Ì}’^ki¡# °
\\·4y¸Ü†žtÉ�ÉKSÈç�÷3ú¦,0pô­¹½5÷qú¤©«åàà˜(Pöz‡w÷¶÷öï™f?Æ¶rÈÅxÕQbKGDÿÿÿ ½§“	pHYs
×
×B(›xtIMEè#&µh£IDATxÚí›ÉkAÆÓYÐDƒŠ‚àAŠ‰š€âA-‰ËAzÌ!Ä5ð 1"ILŒâ G×‹‡r9¹€Š .	åAOŠ§à!JÇÃ<É8N’ž¥×™æÒ]Uï}_Õ]õ¦*¨ ‚rF"ˆ Ö°8´)à%pYinÇ^kNNszPiNÅVkØ
Üœ¥Ù¥¹;¬¡x¬œ¥ég`µÒLø‘—ã£N» �´9+XÃJ¹úu.»ü|Š‹.åA`.0XÃVàA�Ý·)ÍÃÈ
+`
5Àk`M�C¼Ö)Í¯¨N�Î"È#};#ékX
+ŒŠjhTšoQs@_	È#c\ˆ”¬¡x^B�•æEè`
	`¤Äc;ÀˆŒú)pHz0nRÆï°†`XîÑ”ý*7ÄïauÀY—ä‡�…òë’c³a™ÄŸ¬¡xÔºhÞ¥4×²úwW]ô�Ö*ÍXØpÙ%y€9Ž]wÙ·Vb…ÇÖÐÜuÛ^éÜq­!•GØv¥¹¸¬a0„ÿ’Ø�O�ÀªX%±ƒÀV=‡É!0õ
+P/9ø/€5lö<öJ.þ	`
Õ²ÞO„@€„ìªýtÀ! ™ð Yrò^kXô>œ—Ü<w@/äÈ,*äÂ8y^ýf ƒð¢Cr,½§
+U! *ßÂ‰kR°
+ÜøˆÍ¤s-�Ö0è':è—œKæ€3PÜ’3KÐnŽ×KtÇE²%Ùtda¿ËcÅà¸ä>#Ü¬ž†¡ømgöÂšŠ û‹]ÓçÀÉ½­à‚ˆ5lîmìPzz‰È×’®ñ5F\€1Ò5ÄÉ|ïGb@áp4/XÃrÒõýâ�ï@“Ò|që€‹“Ú�ùòk>x¯A8ÍîkHO<Üë�I¥Ï±x4y7lRš§Ó:ÀàŠÇ…Žîlòr¬Û‡Â‰3Ó8´x<Ípî±Ç±[„ãÿˆûˆ?.d.»3pXêC[
+<W*,®S7AkXCúm®ê&˜‰_Àz¥yûw/0ây„à3kèÎ˜ó[ä1ÕäS5¤ÿ`Ý–°†]àßÛÙ!Ã8Fùâ¨l(cZÊðªŒù¿t¤jR®v”æ>½›2*Í�DÆBäï§l-ä÷qC”0Aú½a¹ðTPA™ã$7×¿¯fýIEND®B`‚
\ No newline at end of file
diff -ruN --text ../../../Etterna-temp/Themes/Rebirth/Languages/en.ini ./Languages/en.ini
--- ../../../Etterna-temp/Themes/Rebirth/Languages/en.ini	2023-03-22 00:33:34.000000000 -0300
+++ ./Languages/en.ini	2024-06-23 15:11:10.867791400 -0300
@@ -194,6 +194,13 @@
 CurrentRate=Current Rate
 AllRates=All Rates
 
+[ScreenEvaluationWarnings]
+TooltipHeader=Your score specific rating could be altered by the following:
+RateTooLow=\n - Used a rate below 0.7x:\nRates below 0.7x are extrapolated and may not correspond to the cached MSD value
+RateTooHigh=\n - Used a rate above 2.0x:\nRates above 2.0x are extrapolated and may not correspond to the cached MSD value
+HalfRate=\n - Used a halfrate:\nHalfrates are interpolated and may not correspond to the cached MSD value
+SongTooShort=\n - File is too short:\nFiles under 70 seconds are downscaled on SSR calculation
+
 [ScreenGameplay]
 ButtonPlay=Play
 ButtonPause=Pause
