I need help with Mcc meltdown heater skript

  • Welcome to skUnity!

    Welcome to skUnity! This is a forum where members of the Skript community can communicate and interact. Skript Resource Creators can post their Resources for all to see and use.

    If you haven't done so already, feel free to join our official Discord server to expand your level of interaction with the comminuty!

    Now, what are you waiting for? Join the community now!

  • LOOKING FOR A VERSION OF SKRIPT?

    You can always check out skUnity Downloads for downloads and any other information about Skript!

Baseface009

Member
Jan 10, 2025
1
0
1
24
I am trying to recreate Meltdown from mcc for me and some friends to play but I can not get the heaters to work. I need the heater to be given back to the person who placed it when broken, but right now when It is broken it just disappears and does not give a heater to the placer.
Code:
on right click with red shulker box:
    if player's tool's display name is "&cHeater":
        if player's gamemode is adventure:
            if {group::%player%} is "red":
                set {_targetBlock} to target block of player
                if distance between player and {_targetBlock} is less than 5:
                    set {_aboveTarget} to location of {_targetBlock}
                    add 1 to y-coordinate of {_aboveTarget}
                    if block at {_aboveTarget} is air:
                        set block at {_aboveTarget} to red shulker box
                        set name of block at {_aboveTarget} to "&cHeater"
                        set {heater-placer::%{_aboveTarget}%} to player
                        remove 1 red shulker box named "&cHeater" from player's inventory
                        loop all players:
                            if {frozen::%loop-player%} is set:
                                if distance between {_aboveTarget} and {freeze-location::%loop-player%} is less than 3:
                                    if {tag::%loop-player%} is "red":
                                        set {heater::%loop-player%} to block at {_aboveTarget}
                                        send "A &cHeater &rhas been placed near you. You will be unfrozen in 8 seconds!" to loop-player
                                        wait 8 seconds
                                        if {heater::%loop-player%} is block at {_aboveTarget}:
                                            delete {frozen::%loop-player%}
                                            delete {freeze-location::%loop-player%}
                                            delete {heater::%loop-player%}
                                            execute console command "tag %loop-player% remove frozen"
                                            execute console command "/kill @e[type=block_display,name=IceDisplay]"
                                            execute console command "/kill @e[type=block_display,name=IceDisplay2]"
                                            set {_slot} to 0
                                            loop 36 times:
                                                set slot {_slot} of loop-player's inventory to {frozen-inventory::%loop-player%::%{_slot}%}
                                                add 1 to {_slot}
                                            set offhand item of loop-player to {frozen-offhand::%loop-player%}
                                            delete {frozen-inventory::%loop-player%::*}
                                            delete {frozen-offhand::%loop-player%}
                                            send "You can move again!" to loop-player


on left click on shulker box:
    if name of event-block is "&cHeater":
        if player's gamemode is adventure:
            if {frozen::%player%} is not set:
                break event-block
                set {_placer} to {heater-placer::%event-block%}
                give {_placer} red shulker box named "&cHeater"
                delete {heater-placer::%event-block%}
                loop all players:
                    if {heater::%loop-player%} is event-block:
                        if {frozen::%loop-player%} is set:
                            delete {heater::%loop-player%}
                            send "The &cHeater &rwas broken! The unfreeze timer has been reset." to loop-player


on right click:
    if name of event-block is "&cHeater":
        cancel event
 
I am trying to recreate Meltdown from mcc for me and some friends to play but I can not get the heaters to work. I need the heater to be given back to the person who placed it when broken, but right now when It is broken it just disappears and does not give a heater to the placer.
Code:
on right click with red shulker box:
    if player's tool's display name is "&cHeater":
        if player's gamemode is adventure:
            if {group::%player%} is "red":
                set {_targetBlock} to target block of player
                if distance between player and {_targetBlock} is less than 5:
                    set {_aboveTarget} to location of {_targetBlock}
                    add 1 to y-coordinate of {_aboveTarget}
                    if block at {_aboveTarget} is air:
                        set block at {_aboveTarget} to red shulker box
                        set name of block at {_aboveTarget} to "&cHeater"
                        set {heater-placer::%{_aboveTarget}%} to player
                        remove 1 red shulker box named "&cHeater" from player's inventory
                        loop all players:
                            if {frozen::%loop-player%} is set:
                                if distance between {_aboveTarget} and {freeze-location::%loop-player%} is less than 3:
                                    if {tag::%loop-player%} is "red":
                                        set {heater::%loop-player%} to block at {_aboveTarget}
                                        send "A &cHeater &rhas been placed near you. You will be unfrozen in 8 seconds!" to loop-player
                                        wait 8 seconds
                                        if {heater::%loop-player%} is block at {_aboveTarget}:
                                            delete {frozen::%loop-player%}
                                            delete {freeze-location::%loop-player%}
                                            delete {heater::%loop-player%}
                                            execute console command "tag %loop-player% remove frozen"
                                            execute console command "/kill @e[type=block_display,name=IceDisplay]"
                                            execute console command "/kill @e[type=block_display,name=IceDisplay2]"
                                            set {_slot} to 0
                                            loop 36 times:
                                                set slot {_slot} of loop-player's inventory to {frozen-inventory::%loop-player%::%{_slot}%}
                                                add 1 to {_slot}
                                            set offhand item of loop-player to {frozen-offhand::%loop-player%}
                                            delete {frozen-inventory::%loop-player%::*}
                                            delete {frozen-offhand::%loop-player%}
                                            send "You can move again!" to loop-player


on left click on shulker box:
    if name of event-block is "&cHeater":
        if player's gamemode is adventure:
            if {frozen::%player%} is not set:
                break event-block
                set {_placer} to {heater-placer::%event-block%}
                give {_placer} red shulker box named "&cHeater"
                delete {heater-placer::%event-block%}
                loop all players:
                    if {heater::%loop-player%} is event-block:
                        if {frozen::%loop-player%} is set:
                            delete {heater::%loop-player%}
                            send "The &cHeater &rwas broken! The unfreeze timer has been reset." to loop-player


on right click:
    if name of event-block is "&cHeater":
        cancel event
Try using debug statements to print what {heater-placer::*} is (Like the event-block) and what happens when it's removed. It likely isn't being set properly and by adding print statements you should be able to find out why